InfluxDB - Referencia de API
Operaciones avanzadas con InfluxDB incluyendo validación automática, escritura paralela, downsampling y backup.
Clase Principal
- class ctrutils.database.influxdb.InfluxdbOperation(host=None, port=None, timeout=5, client=None, **kwargs)[fuente]
Bases:
objectClase para manejar la conexion y operaciones en una base de datos InfluxDB.
Esta clase proporciona una interfaz completa para interactuar con InfluxDB, incluyendo validacion avanzada de datos, limpieza de NaN, escritura por lotes de DataFrames grandes, y operaciones de administracion de base de datos.
- Ejemplos:
>>> # Crear instancia con credenciales >>> influx = InfluxdbOperation( ... host='localhost', ... port=8086, ... username='admin', ... password='password' ... )
>>> # O usar un cliente existente >>> client = InfluxDBClient(host='localhost', port=8086) >>> influx = InfluxdbOperation(client=client)
>>> # Escribir un DataFrame grande con validacion >>> df = pd.DataFrame(...) >>> influx.write_dataframe( ... measurement='mi_medicion', ... data=df, ... database='mi_db', ... batch_size=1000, ... validate_data=True ... )
- __init__(host=None, port=None, timeout=5, client=None, **kwargs)[fuente]
Inicializa la conexion y la clase InfluxdbOperation.
- Parámetros:
host (str | None) – Direccion del servidor InfluxDB (requerido si client no se proporciona).
port (int | str | None) – Puerto del servidor InfluxDB (requerido si client no se proporciona).
timeout (int | float | None) – Tiempo de espera para las operaciones en segundos.
client (InfluxDBClient | None) – Cliente InfluxDBClient existente (opcional). Si se proporciona, se usara este cliente en lugar de crear uno nuevo.
**kwargs (Any) – Argumentos adicionales para InfluxDBClient (username, password, etc.).
- Muestra:
ValueError – Si no se proporciona ni cliente ni host/port.
- enable_logging(level=20, logger=None)[fuente]
Activa el logging para debugging y monitoreo.
- Parámetros:
- Ejemplos:
>>> # Con logging estándar >>> influx = InfluxdbOperation(host='localhost', port=8086) >>> influx.enable_logging(logging.DEBUG)
>>> # Con LoggingHandler de ctrutils >>> from ctrutils.handler import LoggingHandler >>> handler = LoggingHandler() >>> custom_logger = handler.add_handlers([ ... handler.create_stream_handler(), ... handler.create_file_handler('influxdb.log') ... ]) >>> influx.enable_logging(logger=custom_logger)
- get_metrics()[fuente]
Obtiene métricas de rendimiento de las operaciones.
- Ejemplos:
>>> metrics = influx.get_metrics() >>> print(f"Total writes: {metrics['total_writes']}") >>> print(f"Avg write time: {metrics['avg_write_time']:.2f}s")
- transaction(database=None)[fuente]
Context manager para operaciones transaccionales.
- Parámetros:
database (str | None) – Base de datos para la transacción.
- Ejemplos:
>>> with influx.transaction('mi_db') as db: ... influx.write_dataframe(measurement='datos', data=df) ... influx.write_points(points=points)
- property get_client: InfluxDBClient
Obtiene el cliente actual InfluxDBClient.
- close_client()[fuente]
Cierra la conexion actual del cliente InfluxDBClient.
Nota: Si el cliente fue proporcionado externamente, no se cerrara automaticamente para evitar efectos secundarios en otros componentes que lo usen.
- get_data(query, database=None)[fuente]
Ejecuta una consulta en InfluxDB y devuelve los resultados en un DataFrame.
- query_to_dataframe(measurement, fields=None, start_time=None, end_time=None, where_conditions=None, limit=None, database=None, convert_to_local_tz=False)[fuente]
Consulta datos de un measurement y devuelve un DataFrame.
- Parámetros:
measurement (str) – Nombre del measurement.
fields (List[str] | None) – Lista de campos a consultar (None = todos).
start_time (str | None) – Tiempo de inicio (formato ISO8601 o string InfluxQL compatible).
end_time (str | None) – Tiempo de fin (formato ISO8601 o string InfluxQL compatible).
where_conditions (Dict[str, Any] | None) – Condiciones adicionales como dict {“tag”: “value”}.
limit (int | None) – Limitar numero de resultados.
database (str | None) – Base de datos (None = usa la actual).
convert_to_local_tz (bool) – Si True, convierte el indice a la timezone local.
- Devuelve:
DataFrame con los datos consultados, indice es time en UTC.
- Tipo del valor devuelto:
- Ejemplos:
>>> # Leer ultimos 100 puntos >>> df = influx.query_to_dataframe( ... measurement='temperatura', ... limit=100, ... database='mi_db' ... ) >>> >>> # Leer rango de tiempo especifico >>> df = influx.query_to_dataframe( ... measurement='temperatura', ... start_time='2024-01-01T00:00:00Z', ... end_time='2024-01-31T23:59:59Z', ... database='mi_db' ... )
- read_last_n_points(measurement, n=100, fields=None, database=None)[fuente]
Lee los ultimos N puntos de un measurement.
- Parámetros:
- Devuelve:
DataFrame con los ultimos N puntos.
- Tipo del valor devuelto:
- Ejemplos:
>>> # Leer ultimos 50 puntos >>> df = influx.read_last_n_points('temperatura', n=50)
- read_time_range(measurement, start_time, end_time, fields=None, database=None)[fuente]
Lee datos de un rango de tiempo especifico.
- Parámetros:
measurement (str) – Nombre del measurement.
start_time (str | datetime | Timestamp) – Tiempo de inicio (acepta string, datetime o Timestamp).
end_time (str | datetime | Timestamp) – Tiempo de fin (acepta string, datetime o Timestamp).
fields (List[str] | None) – Lista de campos a leer (None = todos).
database (str | None) – Base de datos (None = usa la actual).
- Devuelve:
DataFrame con los datos del rango de tiempo.
- Tipo del valor devuelto:
- Ejemplos:
>>> # Usando strings >>> df = influx.read_time_range( ... measurement='temperatura', ... start_time='2024-01-01T00:00:00Z', ... end_time='2024-01-31T23:59:59Z' ... ) >>> >>> # Usando datetime >>> from datetime import datetime, timedelta >>> now = datetime.now() >>> df = influx.read_time_range( ... measurement='temperatura', ... start_time=now - timedelta(hours=24), ... end_time=now ... )
- get_measurements(database=None)[fuente]
Obtiene la lista de mediciones (measurements) en una base de datos.
Este método es un alias conveniente de list_measurements() que devuelve solo los nombres en lugar de objetos Result completos.
- Parámetros:
database (str | None) – Nombre de la base de datos. Si es None, usa la base de datos por defecto configurada en el cliente.
- Devuelve:
- Lista de nombres de mediciones ordenadas alfabéticamente.
Devuelve lista vacía si no hay mediciones o si la base de datos no existe.
- Tipo del valor devuelto:
List[str]
- Muestra:
InfluxDBClientError – Si hay error de conexión o permisos insuficientes.
Ejemplos
>>> influx = InfluxdbOperation(host='localhost', port=8086) >>> measurements = influx.get_measurements('mi_db') >>> print(f"Encontradas {len(measurements)} mediciones") >>> for m in measurements: ... print(f" - {m}")
Ver también
list_measurements: Método original que devuelve objetos Result. get_databases: Obtiene lista de bases de datos.
- get_databases()[fuente]
Obtiene la lista de bases de datos disponibles en InfluxDB.
Este método es un alias conveniente de list_databases() para mantener consistencia de nomenclatura con get_measurements().
- Devuelve:
- Lista de nombres de bases de datos disponibles,
incluyendo bases de datos del sistema como “_internal”.
- Tipo del valor devuelto:
List[str]
- Muestra:
InfluxDBClientError – Si hay error de conexión al servidor.
Ejemplos
>>> influx = InfluxdbOperation(host='localhost', port=8086) >>> databases = influx.get_databases() >>> print("Bases de datos disponibles:") >>> for db in databases: ... print(f" - {db}") Bases de datos disponibles: - _internal - mi_db - produccion
Ver también
list_databases: Método original. get_measurements: Obtiene lista de mediciones en una BD.
- normalize_value_to_write(value)[fuente]
Normaliza el valor para su escritura en InfluxDB.
Esta funcion valida y convierte valores para asegurar compatibilidad con InfluxDB.
- write_points(points, database=None, tags=None, batch_size=5000, validate_data=True)[fuente]
Escribe una lista de puntos directamente en InfluxDB, asegurando que el timestamp este en UTC.
- Parámetros:
points (list) – Lista de puntos a escribir. Cada punto debe ser un diccionario con las claves “measurement”, “time”, “fields” y opcionalmente “tags”.
database (str | None) – Nombre de la base de datos donde escribir (opcional si ya esta configurada).
tags (dict | None) – Tags adicionales para agregar a todos los puntos.
batch_size (int) – Tamaño del lote para escritura. Por defecto 5000.
validate_data (bool) – Si True, valida y limpia los puntos antes de escribir.
- Devuelve:
- {
“total_points”: int, “written_points”: int, “invalid_points”: int, “batches”: int
}
- Tipo del valor devuelto:
Diccionario con estadisticas de escritura
- Muestra:
ValueError – Si no se proporciona base de datos o la lista de puntos esta vacia.
- write_dataframe(measurement=None, data=None, df=None, tags=None, database=None, batch_size=1000, validate_data=True, pass_to_float=True, convert_bool_to_float=False, suffix_bool_to_float='_bool_to_float', drop_na_rows=False, field_columns=None, tag_columns=None, convert_index_to_utc=True)[fuente]
Convierte un DataFrame en una lista de puntos y los escribe en InfluxDB, con validacion avanzada y limpieza de datos.
Este metodo maneja automaticamente: - Valores NaN, None, e infinitos - Conversion de tipos numpy a tipos nativos Python - Validacion de cada punto antes de escribir - Escritura por lotes para DataFrames grandes - Conversion de timestamps a UTC
- Parámetros:
measurement (str | None) – Nombre de la medicion en InfluxDB.
data (DataFrame | None) – DataFrame con los datos a escribir. El indice debe ser DatetimeIndex (acepta tambien “df”).
df (DataFrame | None) – Alias para “data” (por compatibilidad).
tags (dict | None) – Tags adicionales para todos los puntos (opcional).
database (str | None) – Base de datos donde escribir (opcional si ya esta configurada).
batch_size (int) – Tamaño del lote para escritura. Por defecto 1000. Reducir si tiene problemas de memoria con DataFrames grandes.
validate_data (bool) – Si True, valida y limpia datos antes de escribir.
pass_to_float (bool) – Si True, convierte enteros a float para compatibilidad InfluxDB.
convert_bool_to_float (bool) – Si True, convierte columnas booleanas a float.
suffix_bool_to_float (str) – Sufijo para columnas booleanas convertidas.
drop_na_rows (bool) – Si True, elimina filas donde todos los valores son NaN.
field_columns (List[str] | None) – Lista de columnas a usar como fields (None = todas excepto tag_columns).
tag_columns (List[str] | None) – Lista de columnas a usar como tags adicionales.
convert_index_to_utc (bool) – Si True, convierte el indice a UTC antes de escribir.
- Devuelve:
Diccionario con estadisticas de escritura.
- Muestra:
ValueError – Si no se proporciona DataFrame o measurement.
TypeError – Si el indice del DataFrame no es DatetimeIndex.
- Tipo del valor devuelto:
- Ejemplos:
>>> df = pd.DataFrame({ ... 'temperatura': [20.5, np.nan, 21.0, 22.5], ... 'humedad': [45.0, 50.0, np.nan, 55.0] ... }, index=pd.date_range('2024-01-01', periods=4, freq='H')) >>> >>> stats = influx.write_dataframe( ... measurement='clima', ... data=df, ... database='mi_db', ... batch_size=1000, ... validate_data=True ... ) >>> print(f"Escritos: {stats['written_points']}/{stats['total_points']}")
- write_dataframe_parallel(df, measurement, tags=None, field_columns=None, tag_columns=None, batch_size=5000, max_workers=4, progress_callback=None, database=None)[fuente]
Escribe un DataFrame a InfluxDB usando procesamiento paralelo.
- Parámetros:
df (DataFrame) – DataFrame con datos a escribir
measurement (str) – Nombre de la medicion
tags (Dict[str, str] | None) – Tags adicionales a agregar a todos los puntos
field_columns (List[str] | None) – Columnas a usar como fields (None = todas las numericas)
batch_size (int) – Tamaño de cada batch
max_workers (int) – Numero maximo de threads para procesamiento paralelo
progress_callback (Callable[[int, int], None] | None) – Funcion opcional(processed, total) para reportar progreso
database (str | None) – Nombre de la base de datos (None = usa la actual)
- Devuelve:
Diccionario con estadisticas de la operacion
- Tipo del valor devuelto:
- downsample_data(measurement, target_measurement, aggregation_window, aggregation_func='MEAN', fields=None, start_time=None, end_time=None, database=None)[fuente]
Crea una version downsampled de los datos.
- Parámetros:
measurement (str) – Measurement de origen
target_measurement (str) – Measurement de destino
aggregation_window (str) – Ventana de agregacion (ej: “1h”, “1d”)
aggregation_func (str) – Funcion de agregacion (MEAN, SUM, MAX, MIN, COUNT)
start_time (str | None) – Tiempo de inicio (formato RFC3339)
end_time (str | None) – Tiempo de fin (formato RFC3339)
database (str | None) – Base de datos (None = usa la actual)
- Devuelve:
Numero de puntos creados
- Tipo del valor devuelto:
- create_continuous_query(cq_name, measurement, target_measurement, aggregation_window, aggregation_func='MEAN', fields=None, database=None)[fuente]
Crea una continuous query para downsampling automatico.
- backup_measurement(measurement, output_file, start_time=None, end_time=None, database=None)[fuente]
Exporta un measurement a archivo CSV.
- Parámetros:
- Devuelve:
Numero de puntos exportados
- Tipo del valor devuelto:
- restore_measurement(measurement, input_file, tags=None, batch_size=5000, database=None)[fuente]
Restaura un measurement desde archivo CSV.
- Parámetros:
- Devuelve:
Estadisticas de la operacion
- Tipo del valor devuelto:
- calculate_data_quality_metrics(measurement, fields=None, start_time=None, end_time=None, database=None)[fuente]
Calcula metricas de calidad de datos para un measurement.
- Parámetros:
- Devuelve:
Diccionario con metricas por campo
- Tipo del valor devuelto:
- query_builder(measurement, fields=None, where_conditions=None, group_by=None, order_by='time DESC', limit=None, database=None)[fuente]
Constructor de queries InfluxQL avanzado.
- Parámetros:
measurement (str) – Nombre del measurement
fields (List[str] | None) – Campos a seleccionar (None = todos)
where_conditions (Dict[str, Any] | None) – Condiciones WHERE como diccionario
order_by (str) – Orden de resultados
limit (int | None) – Limite de resultados
database (str | None) – Base de datos
- Devuelve:
Query InfluxQL como string
- Tipo del valor devuelto:
- execute_query_builder(measurement, fields=None, where_conditions=None, group_by=None, order_by='time DESC', limit=None, as_dataframe=True, database=None)[fuente]
Construye y ejecuta una query.
- Parámetros:
- Devuelve:
DataFrame o resultado de query
- Tipo del valor devuelto:
- delete(measurement, start_time=None, end_time=None, filters=None, database=None)[fuente]
Elimina datos de una medición en InfluxDB.
Permite eliminar datos con filtros por rango de tiempo y/o tags específicos. PRECAUCIÓN: Esta operación es irreversible.
- Parámetros:
measurement (str) – Nombre de la medición de donde eliminar datos.
start_time (str | Timestamp | None) – Tiempo de inicio para el rango de eliminación (opcional). Acepta string ISO8601 o pd.Timestamp.
end_time (str | Timestamp | None) – Tiempo de fin para el rango de eliminación (opcional). Acepta string ISO8601 o pd.Timestamp.
filters (Dict[str, str] | None) – Diccionario de filtros adicionales por tags {tag: valor}.
database (str | None) – Base de datos donde ejecutar el DELETE. Si es None, usa la BD actual.
- Devuelve:
La operación no devuelve valor.
- Tipo del valor devuelto:
None
- Muestra:
ValueError – Si no se proporciona database y no hay BD configurada.
InfluxDBClientError – Si hay error ejecutando la operación.
Advertencia
Esta operación elimina datos permanentemente y no se puede deshacer. Considera hacer un backup antes de eliminar datos importantes.
Ejemplos
Eliminar todos los datos de una medición:
>>> influx.delete(measurement='temperatura_antigua', database='mi_db')
Eliminar datos de un rango de tiempo:
>>> influx.delete( ... measurement='sensores', ... start_time='2024-01-01T00:00:00Z', ... end_time='2024-01-31T23:59:59Z', ... database='mi_db' ... )
Eliminar datos con filtro por tag:
>>> influx.delete( ... measurement='sensores', ... filters={'sensor_id': 'sensor_001'}, ... database='mi_db' ... )
Ver también
drop_measurement: Elimina la medición completa incluyendo esquema. backup_measurement: Crea backup antes de eliminar.
- get_field_keys_grouped_by_type(measurement)[fuente]
Obtiene las claves de fields de un measurement, agrupadas por tipo de dato.
Este método es útil para construir queries dinámicas que necesitan aplicar diferentes operaciones según el tipo de dato del field.
- Parámetros:
measurement (str) – Nombre del measurement a consultar.
- Devuelve:
- Diccionario donde las claves son los tipos de datos
(“float”, “integer”, “string”, “boolean”) y los valores son listas de nombres de fields con ese tipo.
- Tipo del valor devuelto:
- Muestra:
InfluxDBClientError – Si el measurement no existe o hay error de conexión.
Ejemplos
>>> fields_by_type = influx.get_field_keys_grouped_by_type('sensores') >>> print(fields_by_type) { 'float': ['temperatura', 'humedad', 'presion'], 'integer': ['contador', 'nivel'], 'string': ['estado', 'ubicacion'], 'boolean': ['activo', 'alarma'] } >>> >>> # Usar para construir queries diferentes por tipo >>> float_fields = fields_by_type.get('float', []) >>> for field in float_fields: ... print(f"SELECT MEAN({field}) FROM sensores")
Ver también
list_fields: Obtiene lista simple de fields sin agrupar por tipo. build_query_fields: Construye parte de query aplicando operaciones por tipo.
- build_query_fields(fields, operation)[fuente]
Construye una parte de la consulta de InfluxDB aplicando una operación a cada campo.
Este método helper facilita la construcción de queries complejas que aplican operaciones agregadas (MEAN, MAX, MIN, etc.) a múltiples fields, respetando los tipos de datos para evitar errores.
- Parámetros:
- Devuelve:
- Diccionario con las partes construidas de la query.
Si fields es List, retorna {“fields”: “MEAN(«temp») AS «temp», …”}. Si fields es Dict, retorna {tipo: query_string} para cada tipo.
- Tipo del valor devuelto:
Ejemplos
Con lista simple de fields:
>>> fields = ['temperatura', 'humedad', 'presion'] >>> query_parts = influx.build_query_fields(fields, 'MEAN') >>> print(query_parts['fields']) MEAN("temperatura") AS "temperatura", MEAN("humedad") AS "humedad", MEAN("presion") AS "presion"
Con fields agrupados por tipo (no aplica operación a boolean/integer):
>>> fields_by_type = { ... 'float': ['temperatura', 'humedad'], ... 'integer': ['contador'], ... 'boolean': ['activo'] ... } >>> query_parts = influx.build_query_fields(fields_by_type, 'MEAN') >>> print(query_parts['float']) MEAN("temperatura") AS "temperatura", MEAN("humedad") AS "humedad" >>> print(query_parts['integer']) "contador" >>> print(query_parts['boolean']) "activo"
Uso en query completa:
>>> fields = influx.get_field_keys_grouped_by_type('sensores') >>> query_parts = influx.build_query_fields(fields, 'MEAN') >>> select_clause = ', '.join(query_parts.values()) >>> query = f"SELECT {select_clause} FROM sensores WHERE time > now() - 1h"
Ver también
get_field_keys_grouped_by_type: Obtiene fields agrupados por tipo. query_builder: Constructor de queries más completo.
- list_databases()[fuente]
Lista todas las bases de datos disponibles en InfluxDB.
- Ejemplos:
>>> influx = InfluxdbOperation(host='localhost', port=8086) >>> databases = influx.list_databases() >>> print(databases) ['_internal', 'mi_db', 'otra_db']
- create_database(database)[fuente]
Crea una nueva base de datos en InfluxDB.
- Parámetros:
database (str) – Nombre de la base de datos a crear.
- Ejemplos:
>>> influx.create_database('nueva_db')
- drop_database(database, confirm=False)[fuente]
Elimina una base de datos de InfluxDB.
- Parámetros:
- Muestra:
ValueError – Si confirm no es True.
- Ejemplos:
>>> influx.drop_database('vieja_db', confirm=True)
- list_measurements(database=None)[fuente]
Lista todas las mediciones en una base de datos.
- Parámetros:
database (str | None) – Nombre de la base de datos (opcional si ya esta configurada).
- Devuelve:
Lista con los nombres de las mediciones.
- Tipo del valor devuelto:
- Ejemplos:
>>> measurements = influx.list_measurements('mi_db') >>> print(measurements) ['temperatura', 'humedad', 'presion']
- measurement_exists(measurement, database=None)[fuente]
Verifica si una medicion existe en la base de datos.
- drop_measurement(measurement, database=None, confirm=False)[fuente]
Elimina una medicion (y todos sus datos) de la base de datos.
- Parámetros:
- Muestra:
ValueError – Si confirm no es True.
- Ejemplos:
>>> influx.drop_measurement('vieja_medicion', confirm=True)
- list_tags(measurement, database=None)[fuente]
Lista todos los tags de una medicion.
- Parámetros:
- Devuelve:
Lista con los nombres de los tags.
- Tipo del valor devuelto:
- Ejemplos:
>>> tags = influx.list_tags('temperatura', 'mi_db') >>> print(tags) ['sensor_id', 'location', 'type']
- list_tag_values(measurement, tag_key, database=None)[fuente]
Lista todos los valores de un tag especifico en una medicion.
- Parámetros:
- Devuelve:
Lista con los valores del tag.
- Tipo del valor devuelto:
- Ejemplos:
>>> values = influx.list_tag_values('temperatura', 'location', 'mi_db') >>> print(values) ['salon', 'cocina', 'dormitorio']
- list_fields(measurement, database=None)[fuente]
Lista todos los campos de una medicion con sus tipos.
- Parámetros:
- Devuelve:
Diccionario con nombres de campos como claves y tipos como valores.
- Tipo del valor devuelto:
- Ejemplos:
>>> fields = influx.list_fields('temperatura', 'mi_db') >>> print(fields) {'temperatura': 'float', 'humedad': 'float', 'activo': 'boolean'}
- get_measurement_cardinality(measurement, database=None)[fuente]
Obtiene la cardinalidad (numero de series unicas) de una medicion.
La cardinalidad es el numero de combinaciones unicas de tags en una medicion. Una cardinalidad alta puede afectar el rendimiento.
- Parámetros:
- Devuelve:
Numero de series unicas en la medicion.
- Tipo del valor devuelto:
- Ejemplos:
>>> cardinality = influx.get_measurement_cardinality('temperatura', 'mi_db') >>> print(f"Series unicas: {cardinality}")
- get_retention_policies(database=None)[fuente]
Lista las politicas de retencion de una base de datos.
- Parámetros:
database (str | None) – Nombre de la base de datos (opcional si ya esta configurada).
- Devuelve:
Lista de diccionarios con informacion de las politicas de retencion.
- Tipo del valor devuelto:
- Ejemplos:
>>> policies = influx.get_retention_policies('mi_db') >>> for policy in policies: ... print(f"{policy['name']}: {policy['duration']}")
- count_points(measurement, database=None, start_time=None, end_time=None)[fuente]
Cuenta el numero de puntos en una medicion.
- Parámetros:
- Devuelve:
Numero de puntos en la medicion.
- Tipo del valor devuelto:
- Ejemplos:
>>> # Contar todos los puntos >>> total = influx.count_points('temperatura', 'mi_db') >>> print(f"Total de puntos: {total}") >>> >>> # Contar puntos en un rango de tiempo >>> total = influx.count_points( ... 'temperatura', ... 'mi_db', ... start_time='2024-01-01T00:00:00Z', ... end_time='2024-01-31T23:59:59Z' ... )
- get_database_info(database=None)[fuente]
Obtiene informacion completa sobre una base de datos.
- Parámetros:
database (str | None) – Nombre de la base de datos (opcional si ya esta configurada).
- Devuelve:
name: Nombre de la base de datos
measurements: Lista de mediciones
retention_policies: Politicas de retencion
- Tipo del valor devuelto:
Diccionario con informacion de la base de datos
- Ejemplos:
>>> info = influx.get_database_info('mi_db') >>> print(f"Base de datos: {info['name']}") >>> print(f"Mediciones: {len(info['measurements'])}") >>> for measurement in info['measurements']: ... print(f" - {measurement}")
- get_measurement_info(measurement, database=None)[fuente]
Obtiene informacion completa sobre una medicion.
- Parámetros:
- Devuelve:
name: Nombre de la medicion
tags: Lista de tags
fields: Diccionario de campos con sus tipos
cardinality: Numero de series unicas
point_count: Numero total de puntos
- Tipo del valor devuelto:
Diccionario con informacion de la medicion
- Ejemplos:
>>> info = influx.get_measurement_info('temperatura', 'mi_db') >>> print(f"Medicion: {info['name']}") >>> print(f"Tags: {info['tags']}") >>> print(f"Campos: {info['fields']}") >>> print(f"Total puntos: {info['point_count']}")