InfluxDB: explicación, ventajas y primeros pasos

Al registrar datos científicos o técnicos de medición mediante sensores, se generan, en muy poco tiempo, enormes cantidades de datos que han de procesarse junto con la marca temporal del momento de la medición. Estos datos de series temporales requieren unas bases de datos especiales. Este artículo trata sobre el InfluxDB, un sistema de gestión de bases de datos (DBMS) que ha sido desarrollado específicamente para esta tarea.

¿Qué es InfluxDB?

InfluxDB es un sistema de gestión de bases de datos desarrollado por la empresa InfluxData, Inc. InfluxDB es un software de código abierto y se puede usar de manera gratuita. La versión comercial “InfluxDB Enterprise” ofrece contratos de mantenimiento y controles especiales de acceso para clientes comerciales y se instala en un servidor dentro de la red de la empresa.

La última versión, InfluxDB 2.0, también está disponible como servicio en la nube totalmente adaptable con una interfaz de usuario basada en la web para registrar y visualizar los datos.

El sistema de gestión de bases de datos InfluxDB ha sido desarrollado en Go, el lenguaje de programació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 fabricante. En cambio, InfluxDB 2.0 sirvió para presentar el nuevo lenguaje de programación Flux, publicado como software de código abierto por la empresa InfluxData en GitHub bajo la licencia MIT. Allí, siguen desarrollando este proyecto con la participación de otros desarrolladores que trabajan con datos de series temporales.

Flux es un lenguaje independiente de scripts y consultas para bases de datos de series temporales (TSDB, por sus siglas en inglés). Puede utilizarse a partir de la versión InfluxDB 1.7 o de forma totalmente independiente e, incluso, en combinación con bases de datos de otros proveedores.

Flux ha sido optimizado para el proceso ETL (Extract, Transform, Load) en bases de datos y no es compatible con el lenguaje de consulta InfluxQL que se empleaba anteriormente. Sin embargo, el proveedor tiene previsto desarrollar una ruta de migración para sus clientes habituales en la que se incluye la traducción del código InfluxQL a Flux.

La sintaxis de Flux se basa en el popular lenguaje de scripts JavaScript, por lo que es fácil de aprender y flexible en su uso. Una característica esencial de Flux es la compatibilidad con diferentes fuentes de datos, por ejemplo, mediante el uso de API de terceros.

De esta forma, Flux puede trabajar con herramientas de análisis como Jupyter. La interfaz de intercambio de datos Apache Arrow permite la comunicación con otros sistemas y la integració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 temporales. Estas bases de datos se usan, entre otras cosas, para almacenar y evaluar datos de sensores o protocolos con marcas temporales durante un período de tiempo determinado.

En estos casos es posible que entren millones de juegos de datos, como los que proporcionan los equipos del Internet de las cosas o los instrumentos científicos de medición a través de un flujo continuo de datos. Este tipo de datos deben procesarse rápidamente 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 garantizar que el tiempo está sincronizado 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 correspondiente.

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 distinción facilita el manejo de la base de datos y la evaluació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 relacionales a la hora de almacenar y procesar datos de medición con marcas temporales. Un sistema de gestión de bases de datos (DBMS) dedica parte de su rendimiento a la organización de un índice complejo, que en este ámbito de aplicación no se usa. InfluxDB también es capaz de mantener una elevada velocidad de escritura, ya que usa un índice muy sencillo.

A diferencia de la versión anterior 1.x, InfluxData 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 denominada Serverless-Computing (computación sin servidor) el cliente no necesita una infraestructura de servidor propia.

En la variante en la nube no hace falta reservar servidores individuales, ya que el sistema se adapta automáticamente a la carga de actividad que hay en cada momento. Esto supone una gran ventaja en aplicaciones industriales de IdC o aprendizaje automático, debido a la gran tendencia a la oscilación de los volúmenes de los datos. A la primera versión todavía le faltaban determinados componentes para funcionar, el denominado TICK-Stack con productos como Telegraf, Chronograf 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á disponible únicamente para Linux de 64 bits, Linux para procesadores ARM, macOS y como contenedor Docker. Telegraf puede seguir utilizándose como agente de recopilación para InfluxDB 2.0, al margen de otros agentes similares.

Primeros pasos en InfluxDB

Como regalo de bienvenida, 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 plataforma de datos para series temporales hospedada con capacidad de multiusuario. InfluxDB Cloud 2.0 también incluye módulos para recopilar, evaluar y visualizar los datos almacenados.

La versión gratuita está sujeta a restricciones de lectura y escritura: hasta un máximo de 10 000 juegos de datos y un período de almacenamiento máximo de 30 días. Por norma general, estas restricciones no impiden la realización de proyectos de aficionados, por lo que la versión gratuita es suficiente en estos casos. Esta versión gratuita puede ampliarse más adelante a una versión de pago sin perder los datos ya almacenados.

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 confirmación del correo electrónico.

Una vez verificada la cuenta de usuario, inicia sesión y selecciona un proveedor en la nube. En Europa, InfluxDB Cloud 2.0 solo funciona de momento en Amazon Web Services (AWS), pero esto no obstaculizar el poder utilizar la versión gratuita. Si ya eres usuario de Amazon Web Services o Google Cloud Platform (GCP), puedes suscribirte a los productos de InfluxDB-Cloud a través de las tiendas de los proveedores de servicios en la nube.

Una vez has iniciado sesión, InfluxDB te muestra tu panel personal en el que puedes recopilar y visualizar tus datos. Puedes recopilar datos mediante controladores de Telegraf, la API InfluxDB v2, la interfaz de líneas de comandos de Influx (CLI) o directamente en la interfaz de usuario InfluxDB. También hay disponibles bibliotecas de clientes para diferentes lenguajes de programación populares.

Puedes crear configuraciones Telegraf de forma interactiva o usar las ya existentes para enviar los datos a la instancia de InfluxDB-Cloud 2.0. Una vez configurada la InfluxDB-Cloud para recopilar datos, crea paneles personales para consultar y visualizar los datos.

En el explorador de datos InfluxDB, puedes explorar y visualizar los datos recopilados. Aquí puedes adaptar a tu antojo los tiempos de actualización y los períodos de tiempo de visualización. La interfaz de usuario de InfluxDB ofrece diferentes opciones de visualización muy atractivas. Mediante la interfaz web puedes alternar fácilmente 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 importantes de InfluxDB Cloud 2.0

Versión gratuita (con limitaciones): no necesitas descargas, instalaciones ni una infraestructura propia de servidores in-house; introducción directa a la tecnología InfluxDB 2.0, la versión gratuita ha sido diseñada para familiarizarse con InfluxDB y realizar pequeños proyectos de aficionado.

Compatibilidad de Flux: Flux es un lenguaje de scripts y consultas para bases de datos de series temporales que permite aumentar la productividad gracias a poder reutilizar el código fácilmente. Flux ha sido desarrollado y optimizado para trabajar con datos en InfluxDB 2.0, pero también se puede usar en combinación con otras fuentes de datos.

API homogénea: la API InfluxDB-v2 homogénea permite acceder a todos los componentes de InfluxDB, como la recopilación de datos, la consulta, el almacenamiento y la visualización. De esta forma, puede cambiarse de la versión de código abierto instalada a InfluxDB Cloud 2.0 sin ningún problema.

Visualización y paneles: basada en el fiable proyecto Chronograf de la primera versión de InfluxDB, la nueva interfaz de usuario en la nube permite visualizar y consultar los resultados mucho más rápido y en tiempo real.

Versiones de pago en función del uso: la facturación en función del uso ofrece mayor flexibilidad 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.

¿Le ha resultado útil este artículo?
Page top