-
Como se guardan los datos en InfluxDB
InfluxDB no tiene tablas, tal y como las conocemos en SQL. Los datos son estructurados en series, compuestas por medidas, etiquetas y campos. Las medidas serían el «equivalente» a las tablas de SQL, las etiquetas serían las columnas indexadas y los campos son los datos en sí, no indexados.
Estos datos se escriben en InfluxDB mediante un protocolo de línea. Este protocolo se forma así:
medida, etiqueta1=valor,etiqueta2=valor2,... campo1=valor2,campo2=valor,... TimeStampDeLaFecha
Por ejemplo:
nipeserver,sensor=CPU temperatura=56 1465839830100400200
Entonces, si bien no existen las tablas como tal, si existen las base de datos. Las creamos y las usamos así:
create database hardware use hardware
Luego, para insertar datos en la base de datos podemos recurrir a varios métodos:
INSERT Mediante la CLI
Nos conectamos a la consola influx y ejecutamos:
insert nipeserver,sensor=cpu temperatura=76 1465839830100400200
POST HTTP
Lo hacemos efectuando POST request de HTTP especificando la base de datos en la que queremos insertar los datos. Por ejemplo:
curl -XPOST http://localhost:8086/write?db=hardware --data-binary "nipeserver,sensor=cpu temperatura=38 1465839830100400200"
Para visualizar esa consulta, podemos ejecutar:
select "sensor", "temperatura" from "nipeserver"
Lo que nos daría el siguiente resultado:
name: nipeserver time sensor temperatura ---- ------ ----------- 1465839830100400200 cpu 76
Lo loco de este sistema es que no hace falta crear la columna o la «estructura de la tabla» previamente. Podemos pasar más columnas creándolas en la misma consulta. Por ejemplo:
insert nipeserver,sensor=cpu,sistemaoperativo=debian temperatura=76 1465839830100400200
De forma que ahora, al ejecuta la consulta:
select * from nipeserver
..veríamos
name: nipeserver time sensor sistemaoperativo temperatura ---- ------ ---------------- ----------- 1465839830100400200 cpu 76 1465839830100400200 cpu debian 76
Como vemos, se ha agregado la columna «sistemaoperativo» y, aunque se haya creado después que las otras, se ordena alfabéticamente antes que «temperatura»