Al registrar datos cie­n­tí­fi­cos o técnicos de medición mediante sensores, se generan, en muy poco tiempo, enormes ca­n­ti­da­des de datos que han de pro­ce­sar­se junto con la marca temporal del momento de la medición. Estos datos de series te­m­po­ra­les requieren unas bases de datos es­pe­cia­les. Este artículo trata sobre el InfluxDB, un sistema de gestión de bases de datos (DBMS) que ha sido de­sa­rro­lla­do es­pe­cí­fi­ca­me­n­te para esta tarea.

¿Qué es InfluxDB?

InfluxDB es un sistema de gestión de bases de datos de­sa­rro­lla­do por la empresa In­flu­x­Da­ta, Inc. InfluxDB es un software de código abierto y se puede usar de manera gratuita. La versión comercial “InfluxDB En­te­r­pri­se” ofrece contratos de ma­n­te­ni­mie­n­to y controles es­pe­cia­les de acceso para clientes co­me­r­cia­les y se instala en un servidor dentro de la red de la empresa.

La última versión, InfluxDB 2.0, también está di­s­po­ni­ble como servicio en la nube to­ta­l­me­n­te adaptable con una interfaz de usuario basada en la web para registrar y vi­sua­li­zar los datos.

El sistema de gestión de bases de datos InfluxDB ha sido de­sa­rro­lla­do en Go, el lenguaje de pro­gra­ma­ción de Google, también conocido como Golang. En la primera versión, se usó el lenguaje de consulta InfluxQL para realizar las consultas de bases de datos externas, una creación original del fa­bri­ca­n­te. En cambio, InfluxDB 2.0 sirvió para presentar el nuevo lenguaje de pro­gra­ma­ción Flux, publicado como software de código abierto por la empresa In­flu­x­Da­ta en GitHub bajo la licencia MIT. Allí, siguen de­sa­rro­lla­n­do este proyecto con la pa­r­ti­ci­pa­ción de otros de­sa­rro­lla­do­res que trabajan con datos de series te­m­po­ra­les.

Flux es un lenguaje in­de­pe­n­die­n­te de scripts y consultas para bases de datos de series te­m­po­ra­les (TSDB, por sus siglas en inglés). Puede uti­li­zar­se a partir de la versión InfluxDB 1.7 o de forma to­ta­l­me­n­te in­de­pe­n­die­n­te e, incluso, en co­m­bi­na­ción con bases de datos de otros pro­vee­do­res.

Flux ha sido op­ti­mi­za­do para el proceso ETL (Extract, Transform, Load) en bases de datos y no es co­m­pa­ti­ble con el lenguaje de consulta InfluxQL que se empleaba an­te­rio­r­me­n­te. Sin embargo, el proveedor tiene previsto de­sa­rro­llar una ruta de migración para sus clientes ha­bi­tua­les en la que se incluye la tra­du­c­ción del código InfluxQL a Flux.

La sintaxis de Flux se basa en el popular lenguaje de scripts Ja­va­S­cri­pt, por lo que es fácil de aprender y flexible en su uso. Una ca­ra­c­te­rí­s­ti­ca esencial de Flux es la co­m­pa­ti­bi­li­dad con di­fe­re­n­tes fuentes de datos, por ejemplo, mediante el uso de API de terceros.

De esta forma, Flux puede trabajar con he­rra­mie­n­tas de análisis como Jupyter. La interfaz de in­te­r­ca­m­bio de datos Apache Arrow permite la co­mu­ni­ca­ción con otros sistemas y la in­te­gra­ción en entornos de Big Data.

¿Cuándo se usa InfluxDB?

InfluxDB ha sido concebido para bases de datos de time series (TSDB), que almacenan series te­m­po­ra­les. Estas bases de datos se usan, entre otras cosas, para almacenar y evaluar datos de sensores o pro­to­co­los con marcas te­m­po­ra­les durante un período de tiempo de­te­r­mi­na­do.

En estos casos es posible que entren millones de juegos de datos, como los que pro­po­r­cio­nan los equipos del Internet de las cosas o los in­s­tru­me­n­tos cie­n­tí­fi­cos de medición a través de un flujo continuo de datos. Este tipo de datos deben pro­ce­sar­se rá­pi­da­me­n­te en cuanto llegan a la base de datos.

Por ello, InfluxDB cuenta con un servicio de tiempo que usa el Network Time Protocol (NTP) para ga­ra­n­ti­zar que el tiempo está si­n­cro­ni­za­do en todos los sistemas.

Las bases de datos de InfluxDB suelen ser muy compactas y solo necesitan contar con dos o tres columnas. En ellas se guarda, por ejemplo, la fuente de los datos, el valor en sí y la marca temporal co­rre­s­po­n­die­n­te.

Sensor Valor Hora
Sensor 1 140,50 23/04/2020 @ 10:00
Sensor 2 110,02 23/04/2020 @ 10:00
Sensor 1 142,32 23/04/2020 @ 10:05
Sensor 2 110,50 23/04/2020 @ 10:05

InfluxDB distingue entre tags y fields. Mientras que los tags solo contienen metadatos incluidos en el índice, los fields incluyen valores que pueden evaluarse más adelante. Por lo tanto, en nuestro ejemplo, la primera columna es una tag y la segunda, un field. Esta di­s­ti­n­ción facilita el manejo de la base de datos y la eva­lua­ción de los datos de medición.

¿Cuáles son las ventajas de InfluxDB?

Las TSDB como InfluxDB son mucho más rápidas que las bases de datos re­la­cio­na­les a la hora de almacenar y procesar datos de medición con marcas te­m­po­ra­les. Un sistema de gestión de bases de datos (DBMS) dedica parte de su re­n­di­mie­n­to a la or­ga­ni­za­ción de un índice complejo, que en este ámbito de apli­ca­ción no se usa. InfluxDB también es capaz de mantener una elevada velocidad de escritura, ya que usa un índice muy sencillo.

A di­fe­re­n­cia de la versión anterior 1.x, In­flu­x­Da­ta ofrece una solución en la nube con el nuevo InfluxDB Cloud 2.0 para Amazon Web Services (AWS), Google Cloud Platform (GCP) o Microsoft Azure. En el caso de la de­no­mi­na­da Se­r­ve­r­le­ss-Computing (co­mpu­tación sin servidor) el cliente no necesita una in­frae­s­tru­c­tu­ra de servidor propia.

En la variante en la nube no hace falta reservar se­r­vi­do­res in­di­vi­dua­les, ya que el sistema se adapta au­to­má­ti­ca­me­n­te a la carga de actividad que hay en cada momento. Esto supone una gran ventaja en apli­ca­cio­nes in­du­s­tria­les de IdC o apre­n­di­za­je au­to­má­ti­co, debido a la gran tendencia a la os­ci­la­ción de los volúmenes de los datos. A la primera versión todavía le faltaban de­te­r­mi­na­dos co­m­po­ne­n­tes para funcionar, el de­no­mi­na­do TICK-Stack con productos como Telegraf, Ch­ro­no­graf y Kapacitor. En cambio, InfluxDB 2.0 ya incluye todo lo que necesita.

En la variante local, que se instala en un servidor propio, también se concentra todo el sistema de gestión de bases de datos en un solo archivo de programa que, hasta la fecha, está di­s­po­ni­ble úni­ca­me­n­te para Linux de 64 bits, Linux para pro­ce­sa­do­res ARM, macOS y como co­n­te­ne­dor Docker. Telegraf puede seguir uti­li­zá­n­do­se como agente de re­co­pi­la­ción para InfluxDB 2.0, al margen de otros agentes similares.

Primeros pasos en InfluxDB

Como regalo de bie­n­ve­ni­da, InfluxDB ofrece acceso gratuito a InfluxDB Cloud 2.0. Esto no solo permite acceder a la base datos a modo de prueba, sino también a toda la pla­ta­fo­r­ma de datos para series te­m­po­ra­les hospedada con capacidad de mu­l­tiu­sua­rio. InfluxDB Cloud 2.0 también incluye módulos para recopilar, evaluar y vi­sua­li­zar los datos al­ma­ce­na­dos.

La versión gratuita está sujeta a re­s­tri­c­cio­nes de lectura y escritura: hasta un máximo de 10 000 juegos de datos y un período de al­ma­ce­na­mie­n­to máximo de 30 días. Por norma general, estas re­s­tri­c­cio­nes no impiden la rea­li­za­ción de proyectos de afi­cio­na­dos, por lo que la versión gratuita es su­fi­cie­n­te en estos casos. Esta versión gratuita puede ampliarse más adelante a una versión de pago sin perder los datos ya al­ma­ce­na­dos.

Como primer paso, debes crear una cuenta de usuario gratuita en la página de registro de InfluxDB Cloud 2.0. Haz clic en el enlace de co­n­fi­r­ma­ción del correo ele­c­tró­ni­co.

Una vez ve­ri­fi­ca­da la cuenta de usuario, inicia sesión y se­le­c­cio­na un proveedor en la nube. En Europa, InfluxDB Cloud 2.0 solo funciona de momento en Amazon Web Services (AWS), pero esto no ob­s­ta­cu­li­zar el poder utilizar la versión gratuita. Si ya eres usuario de Amazon Web Services o Google Cloud Platform (GCP), puedes su­s­cri­bi­r­te a los productos de InfluxDB-Cloud a través de las tiendas de los pro­vee­do­res de servicios en la nube.

Una vez has iniciado sesión, InfluxDB te muestra tu panel personal en el que puedes recopilar y vi­sua­li­zar tus datos. Puedes recopilar datos mediante co­n­tro­la­do­res de Telegraf, la API InfluxDB v2, la interfaz de líneas de comandos de Influx (CLI) o di­re­c­ta­me­n­te en la interfaz de usuario InfluxDB. También hay di­s­po­ni­bles bi­blio­te­cas de clientes para di­fe­re­n­tes lenguajes de pro­gra­ma­ción populares.

Puedes crear co­n­fi­gu­ra­cio­nes Telegraf de forma in­ter­ac­ti­va o usar las ya exi­s­te­n­tes para enviar los datos a la instancia de InfluxDB-Cloud 2.0. Una vez co­n­fi­gu­ra­da la InfluxDB-Cloud para recopilar datos, crea paneles pe­r­so­na­les para consultar y vi­sua­li­zar los datos.

En el ex­plo­ra­dor de datos InfluxDB, puedes explorar y vi­sua­li­zar los datos re­co­pi­la­dos. Aquí puedes adaptar a tu antojo los tiempos de ac­tua­li­za­ción y los períodos de tiempo de vi­sua­li­za­ción. La interfaz de usuario de InfluxDB ofrece di­fe­re­n­tes opciones de vi­sua­li­za­ción muy atra­c­ti­vas. Mediante la interfaz web puedes alternar fá­ci­l­me­n­te entre el creador Flux y la edición manual de las consultas de bases de datos.

Asimismo, en la página “Usage” puedes consultar el uso de la base datos en todo momento para estimar si quizás te compensa una versión de pago.

Vista general de las novedades más im­po­r­ta­n­tes de InfluxDB Cloud 2.0

Versión gratuita (con li­mi­ta­cio­nes): no necesitas descargas, in­s­ta­la­cio­nes ni una in­frae­s­tru­c­tu­ra propia de se­r­vi­do­res in-house; in­tro­du­c­ción directa a la te­c­no­lo­gía InfluxDB 2.0, la versión gratuita ha sido diseñada para fa­mi­lia­ri­zar­se con InfluxDB y realizar pequeños proyectos de afi­cio­na­do.

Co­m­pa­ti­bi­li­dad de Flux: Flux es un lenguaje de scripts y consultas para bases de datos de series te­m­po­ra­les que permite aumentar la pro­du­c­ti­vi­dad gracias a poder re­uti­li­zar el código fá­ci­l­me­n­te. Flux ha sido de­sa­rro­lla­do y op­ti­mi­za­do para trabajar con datos en InfluxDB 2.0, pero también se puede usar en co­m­bi­na­ción con otras fuentes de datos.

API homogénea: la API InfluxDB-v2 homogénea permite acceder a todos los co­m­po­ne­n­tes de InfluxDB, como la re­co­pi­la­ción de datos, la consulta, el al­ma­ce­na­mie­n­to y la vi­sua­li­za­ción. De esta forma, puede cambiarse de la versión de código abierto instalada a InfluxDB Cloud 2.0 sin ningún problema.

Vi­sua­li­za­ción y paneles: basada en el fiable proyecto Ch­ro­no­graf de la primera versión de InfluxDB, la nueva interfaz de usuario en la nube permite vi­sua­li­zar y consultar los re­su­l­ta­dos mucho más rápido y en tiempo real.

Versiones de pago en función del uso: la fa­c­tu­ra­ción en función del uso ofrece mayor fle­xi­bi­li­dad que un sistema de bases de datos hospedado por uno mismo y además te da la garantía de que solo pagas lo que realmente usas.

Ir al menú principal