Cómo elegir la base de datos óptima en proyectos de analítica de predictiva

Cómo elegir la base de datos óptima en proyectos de analítica de predictiva

En Tyris.AI desarrollamos sistemas de análisis predictivo en industria y esto se traduce en la necesidad de métodos robustos para realizar la ingesta de datos, normalmente en grandes escalas. Eso implica leer información con frecuencias muy elevadas, en algunos casos de centenares de sensores, y, además, almacenarla de forma rápida, segura y en tiempo real. Todo esto es un reto de por sí, pero es que, además, muchas veces los sensores usados incluso cambiarán durante el desarrollo y la vida útil de la aplicación, y la estructura de la base de datos de nuestra solución ha de ser capaz de adaptarse. 

Así, es normal que nos surja una pregunta: ¿qué tipología de base de datos es la que mejores soluciones planteará a todos estos problemas?

Antes de responder, debemos tener en cuenta que más allá de la ingesta, las bases de datos usadas en análisis predictivo deben permitir un acceso eficiente en relación con el proceso. Los modelos inteligentes se nutren y aprenden de los datos, así que generar un dataset adecuado y suficiente con el que entrenar o reentrenar los algoritmos puede implicar trabajar con millones de datos, y esto requiere sistemas ágiles.

En Tyris.AI somos muy meticulosos a la hora de determinar la base de datos a implantar en cada proyecto, eligiendo en cada caso en función del escenario productivo donde se instalarán.

En muchas ocasiones no es para nada sencillo escoger la estructura de base de datos idónea que pueda proporcionarte una respuesta rápida en la ingesta y después en la lectura. Por ello, para soluciones de sistemas de análisis predictivo es importante analizar ciertas tipologías de bases de datos y conocer sus ventajas y desventajas.

Pasemos a analizar algunas de estas tipologías:

TIPOLOGÍAS

  • Relacionales:

Cuando pensamos en bases de datos, estas son las primeras que a todos nos vienen a la cabeza, ya que son las más extendidas. Un ejemplo de este tipo son las bases de datos SQL (SQLServer, Oracle, o PostgreSQL entre otras), que utilizan “relaciones” establecidas entre datos y tablas que son gobernadas por claves primarias y foráneas, lo cual facilita representar relaciones complejas.

Por lo general disponen de un sistema potente de lectura y consultas para explotar la complejidad de los datos y sus relaciones. Permiten garantizar la integridad de los datos y evitar duplicidades de información, aunque se caracterizan por tener una baja flexibilidad y escalabilidad.

  • No-Relacionales:

Son la alternativa a las bases de datos relacionales que más atención ha recibido en los últimos años, siendo algunas de las más conocidas MongoDB, Cassandra, o HBase. Nos permiten trabajar con diferentes estructuras de datos, en general de una forma más flexible que las de las bases de datos relacionales, a cambio de renunciar en general a una mayor capacidad para representar y navegar por relaciones complejas, mostrando por tanto una menor estructuración y peor integridad de los datos.

Ofrecen casi siempre mayores velocidades de lectura y escritura y mayor facilidad para trabajar con grandes volúmenes de datos heterogéneos, ya que no tienen que guardar una estructura de datos pre-definida. Son especialmente recomendables para proyectos o entornos productivos donde existen diferentes tipos de dato a integrar (más allá del numérico) y puede variar el número de variables integradas.

bases de datos
  • Orientadas a trabajo con series temporales:

Sin duda, estas tipologías son menos conocidas, ya que se trata de bases de datos altamente especializadas. Las bases de datos orientadas a series temporales, como su propio nombre indica, están optimizadas para para manejar datos en formato de series de tiempo (de tipo dato/marca temporal), siendo algunas de las más conocidas InfluxDB, TSI de Microsoft Azure, o Timestream de Amazon. En industria, y en general en entornos IoT, una gran cantidad de la información a procesar proviene de sensores que muestran información en forma de series. Las muestras integradas en este tipo de bases de datos incluyen una indexación en forma de marcas de tiempo con la precisión necesaria y se almacenan con una frecuencia periódica o de forma puntual. De esta manera, los datos pueden correlarse en el tiempo a lo largo de las distintas dimensiones de entrada (correspondientes a los sensores monitorizados).

Como característica principal, ofrecen velocidades de escritura estables y mucho mayores que las de lectura, y en general pocas facilidades para la actualización de datos.

  • Orientadas a trabajo en tiempo real:

Por último, en industria es importante poder considerar el trabajo en tiempo real. Esta tipología incluye bases de datos adaptadas para trabajar en entornos de alta demanda temporal, donde es necesario almacenar y analizar los datos en el mismo instante que se reciben, en muchos casos, en cuestión de milisegundos. Esto obliga a incidir en los rangos de tiempo en que un dato es válido, evitando que se tomen decisiones sobre datos “caducados” en el momento del análisis. Para que esto sea posible, esta tipología guarda los datos en memoria y no en disco, aunque por supuesto ofrecen modos de persistencia en disco una vez que el procesado en tiempo real ha concluido. Un ejemplo claro de esto es Redis, una base de datos más joven que el resto, pero que está ganando popularidad a medida que sus implantaciones aumentan.

Así pues, si conocemos las especificaciones de cada tipología, ya estamos en condiciones de, dado un proyecto concreto, determinar la mejor estructura de almacenamiento. Finalmente, otro aspecto importante a considerar antes de tomar la decisión última respecto a la base de datos a implantar es la gran variedad de marcas y estándares disponibles en el mercado, siendo que cada uno de ellos puede incorporar a su vez herramientas adicionales que nos ayudarán en última instancia durante su instalación y configuración, así como la interoperabilidad con otros sistemas.

Acabaremos aprovechando para recomendar algunas bases de datos que, en función de nuestra propia experiencia y teniendo en cuenta las características comentadas anteriormente, se podrían usar en entornos industriales.

bases de datos PARA entornos industriales

  • MongoDB

Es una opción ideal para entornos cambiantes, por ejemplo, proyectos en desarrollo donde las señales recibidas o la frecuencia con que se recogen puede variar en el tiempo. Permite almacenar señales o directamente secuencias de datos. A cambio ofrece un sistema de consultas menos flexible que otras opciones.

  • Cassandra

Cassandra nos permite consultas muy rápidas y facilidades para escalar horizontalmente con la entrada de nuevas variables o bases de datos en modo distribuido. Nos parece una opción ideal para sistemas maduros y donde es posible almacenar los datos directamente en un formato muy cercano al que necesitamos posteriormente en el momento de consumirlos para su procesado, gracias a su funcionamiento por columnas y su configuración clave-valor.

  • Redis

Si necesitamos directamente trabajo en memoria y tiempo real es la opción más rápida. Aunque en este modo no es persistente, nos permite almacenar datos para un procesado posterior o utilizarla a modo de buffer para la explotación inmediata, por ejemplo, en dashboards donde se realiza el control y monitorización del sistema.

  • PostgreSQL

En entornos con estructuras de datos fijadas y homogéneas nos permite almacenar y acceder a los datos con un sistema muy potente de consultas, y además es un sistema conocido casi por cualquier programador. A cambio, es poco flexible respecto a los cambios en la estructura. Es un sistema muy interesante, por ejemplo, para almacenar datos ya procesados, después de su ejecución contra los modelos de análisis predictivo, y relacionarlos con el resto de datos del entorno del sistema.

En resumen, vemos que es difícil definir un único tipo de base de datos que pueda obtener resultados eficientes en todos los escenarios planteados y por eso es importante realizar un trabajo de análisis del entorno y las necesidades actuales y futuras que permita seleccionar la tipología óptima. Teniendo en cuenta todo lo anterior, deberíamos estar ya un poco mejor preparados para enfrentarnos a estos retos. ¿Estás preparado?

Close Menu