====== InfluxDB ====== Base de datos para series temporales. * https://www.influxdata.com/ ===== Instalación ===== ==== Docker ==== [[https://hub.docker.com/_/influxdb|Imagen Docker oficial]]. La configuración se puede hacer mediante variables de entorno o utilizando un fichero de configuración. Para el segundo método, se puede crear un fichero de configuración por defecto mediante: docker run --rm influxdb:meta influxd-meta config > influxdb-meta.conf Se creará un fichero llamado ''influxdb-meta.conf'' que podremos configurar a nuestro gusto y luego pasárselo al contenedor Anotar cómo pasarle ese fichero de configuración al contenedor Ejemplo de ''docker-compose.yml'': services: influxdb: image: influxdb:latest ports: - "8086:8086" volumes: - ./data:/var/lib/influxdb environment: - INFLUXDB_DB=telegraf - INFLUXDB_USER=telegraf - INFLUXDB_USER_PASSWORD=supersecret - INFLUXDB_ADMIN_ENABLED=true - INFLUXDB_ADMIN_USER=admin - INFLUXDB_ADMIN_PASSWORD=supersecret ===== InfluxQL ===== **InfluxQL** es un lenguaje tipo SQL para interactuar con la información contenida en una base de datos InfluxDB. * https://docs.influxdata.com/influxdb/v1.8/query_language/spec/ La interacción con InfluxDB se hace con ''influx'' Si queremos que los valores de tiempo vengan en un formato más amigable, ejecutamos el cliente de esta manera: ''influx -precision rfc3339''. El tiempo vendrá de la forma ''YYYY-MM-DDTHH:MM:SS UTC''. También se le puede indicar la precisión una vez conectados a la base de datos ejecutando ''precision rfc3339'' Crear base de datos: CREATE DATABASE nombre_base_datos Eliminar base de datos: DROP DATABASE nombre_base_datos Mostrar bases de datos: SHOW DATABASES Seleccionar una base de datos: USE nombre_base_datos Crear usuario CREATE USER "usuario" WITH PASSWORD 'contraseña' Mostrar usuarios: SHOW USERS Mostrar las series de datos: SHOW SERIES ==== Mediciones ==== Describe el tipo de dato almacenado. Para ver las mediciones (//measurements//) que contiene el sistema: SHOW MEASUREMENTS Ejemplo de salida: name: measurements name ---- cpu disk diskio kernel mem processes swap system ==== Series ==== Agrupación de datos definida por una medición, conjunto de etiquetas o campo compartidos. Ejemplo de serie: # medida, conjunto de etiquetas, clave de campo h2o_level, location=santa_monica, h2o_feet ==== Puntos ==== Un punto representa un registro de información y tiene 4 componentes: * Medida * Conjunto de etiquetas * Conjunto de campos * Timestamp [,=...] =[,=...] [unix-nano-timestamp] Ejemplo: name: census ----------------- time butterflies honeybees location scientist 2015-08-18T00:00:00Z 1 30 1 perpetua * Medida: ''census'' * Conjunto de etiquetas: location = 1, scientist = perpetua * Conjunto de campos: butterflies = 1, honeybees = 30 * Timestamp: 2015-08-18T00:00:00Z ====== Recursos ====== * https://docs.influxdata.com/influxdb/v1.8/concepts/key_concepts/ * https://docs.influxdata.com/influxdb/v1.8/introduction/get-started/ * https://docs.influxdata.com/influxdb/v1.8/query_language/spec/ * https://docs.influxdata.com/influxdb/v1.8/query_language/sample-data/ * https://docs.influxdata.com/influxdb/v1.8/query_language/explore-data/#the-time-zone-clause