====== 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