A la hora de escoger el producto más adecuado sobre el que implementar un Sistema de Business Intelligence (BI) una de las primeras decisiones que suele plantearse el responsable técnico del mismo es si adoptar una arquitectura de BI tradicional basada en un Data Warehouse o utilizar las llamadas tecnologías in memory (en memoria).
Obviamente la elección entre tecnologías in Memory vs. Data Warehouse estará condicionada por las necesidades concretas de los proyectos de BI, no obstante, en este tema prevalecen ciertos tópicos que, con el avance tecnológico, han quedado obsoletos y que ambas opciones no son necesariamente excluyentes, como intentaremos explicar en el presente artículo.
Empezaremos por definir en qué consisten ambos planteamientos, según el argumentario, deliberadamente simplista, que aún se suele esgrimir comercialmente, para terminar con nuestras conclusiones.
In Memory vs Data Warehouse
En un Sistema de BI tradicional generalmente se parte de varios orígenes de datos (BBDD transaccionales, ficheros Excel, etc.) y mediante procesos ETL (Extracción, Transformación y Carga) estos datos son integrados en un repositorio común conocido como Data Warehouse. Es sobre este repositorio, más en concreto sobre los Data Marts de las distintas áreas de información, sobre el que las herramientas de BI realizan las consultas para mostrar la información analítica y transformarla en conocimiento para la toma de decisiones.
Frente a este planteamiento, productos como QlikView se basan en procesamiento en memoria, que cargan en memoria las tablas de origen y mediante la lógica asociativa se establecen las relaciones entre ellas para mostrar al usuario final la información requerida para el análisis del negocio.
Esto se traduce en un menor coste de desarrollo, al no ser necesario crear un Data Warehouse y los procesos ETL que lo alimentan. Además, al estar los datos cargados en memoria, generalmente el rendimiento a la hora de explotar la información es mejor, a costa lógicamente de unos requisitos de servidor mayores (en especial en cuanto a la memoria RAM).
Ventajas e inconvenientes de elegir Data Warehouse
Existen diferentes arquitecturas de Data Warehouse. Generalmente se implementa en una estructura de datos separada de las utilizadas por los sistemas transaccionales utilizados para el día a día de la empresa y se alimenta mediante procesos ETL ejecutados periódicamente. Esta estructura puede ser una base de datos relacional con modelos en estrella o copo de nieve (ROLAP), un conjunto de cubos Multidimensionales (MOLAP) o una estructura híbrida (HOLAP).
Los principales beneficios que aporta son:
- Centralización:Integra fuentes de datos heterogéneas (bases de datos relacionales, documentales, archivos departamentales, etc.) en un repositorio único.
- Fiabilidad: Los procesos ETL deben incluir los mecanismos oportunos para asegurar no solo la consistencia de los datos cargados si no también la calidad de los datos, asegurando que la información es precisa y fiable.
- Homogeneidad:Los distintos hechos a analizar (p.e.: ventas, gastos, etc.) deben ser categorizados por las diferentes dimensiones de análisis (p.e.: tiempo, distribución geográfica, empleado, etc.). Este modelo dimensional permite homogeneizar la capa semántica de negocio, utilizando una denominación única para cada atributo o métrica definida, que evite equívocos a la hora de interpretar la información. Adicionalmente debe fomentarse el uso de dimensiones comunes para unificar las tablas maestras siendo los procesos ETL los encargados de realizar las transformaciones oportunas.
- Eficiencia: La estructura dimensional de los Data Marts permite la ejecución de consultas complejas con diferentes niveles de agrupación y totalización, con un alto rendimiento y sin interferir en los sistemas operacionales. Toda la información irrelevante no debe ser incorporada al Data Warehouse.
Con todo ello, el Data Warehouse debe convertirse en la fuente más idónea de información corporativa de la organización, evitando así ambigüedades y discrepancias derivadas de la utilización de fuentes particulares distintas.
Conviene en este punto hacer un breve inciso para comentar que la carga de datos en un Data Warehouse implica cierta latencia o desfase entre la información contenida en los Sistemas transaccionales (OLTP) y los Sistemas para su explotación analítica (OLAP). La extracción de datos crea una sobrecarga en los sistemas origen por lo que tradicionalmente ésta se realiza en “horas valle” (generalmente por la noche). Sin embargo, ante la necesidad de algunas organizaciones de tener cierta información en “tiempo real”, los sistemas de ETL se han ido sofisticando. En este sentido se enmarcan estrategias como extraer sólo los datos que han cambiado (para lo que se requiere incluir en las tablas de origen indicadores de última modificación) o soluciones de tipo “Change Data Capture” que alimentan el Data Warehouse con un flujo continuo de datos en línea.
Evidentemente, la implementación de un Data Warehouse conlleva unos costes:
- Inversión en hardware y software:Es altamente recomendable que el Data Warehouse disponga de su propio servidor o servidores en los que deberá instalarse un gestor de base de datos potente y escalable, cuyo dimensionamiento dependerá de factores como el volumen de datos total, la concurrencia de usuarios, los requisitos de rendimiento, etc. Los procesos ETL requerirán habilitar las conexiones oportunas a los distintos orígenes de datos, y en función de su complejidad, será conveniente disponer de una herramienta específica de integración de datos que permita definir dichos procesos, programar las cargas, gestionar errores, etc.
- Coste de desarrollo:Diseño y construcción del Data Warehouse y los procesos ETL.
- Coste de mantenimiento:Ejecución de las cargas y/o monitorización de los procesos programados, Mantenimiento adaptativo del Sistema a los cambios en los orígenes, Mantenimiento evolutivo para incorporar nuevas especificaciones (cambios en las reglas de negocio, nuevas necesidades de información, etc.).
Por tanto, la decisión de implementar un Data Warehouse debe basarse en si los beneficios que puede aportar a la organización compensan los costes derivados, independiente del producto de BI a utilizar.
Herramientas como QlikView también se benefician de disponer de un Data Warehouse. Por un lado, el tenerlo como origen de datos único o principal simplifica el diseño del sistema y la construcción de los scripts de carga, además de que la carga será más rápida. Por otro lado, al asegurarse la calidad de los datos así como la homogeneidad de conceptos y valores, redunda en la confianza del usuario respecto a la información mostrada y en facilitar su comprensión.
Base de datos en memoria (In Memory)
Como hemos comentado, tradicionalmente los Sistemas de Business Intelligence ejecutaban las consultas de los usuarios contra los datos cargados en un Data Warehouse ya sea en tablas (SQL) o en cubos multidimensionales (MDX), cuyo rendimiento es mejor pero requieren mayor tiempo de procesamiento para actualizar los datos y son poco flexibles a la hora de incorporar nuevos requisitos. El problema reside en que cuanto mayor es el volumen de datos, mayor degradación se produce en el rendimiento de las consultas, a pesar de los mecanismos incorporados por los distintos fabricantes para mejorar el rendimiento (agregaciones precalculadas, índices en función de las consultas más habituales, cachés, etc.).
Partiendo del hecho de que el acceso a datos en memoria es siempre muchísimo más rápido que la lectura de los mismos de un disco duro, el denominado BI en memoria, se basa en cargar inicialmente todos los datos necesarios en la memoria y ejecutar las consultas sobre ella sin tener que acceder al disco.
Esta carga de datos en memoria no debe confundirse con el almacenamiento en caché, ya que la caché contiene solo subconjuntos de datos específicos predefinidos.
La mejora en el rendimiento de las consultas, permite que su modificación sobre la marcha y la navegación en general sean mucho más fluidas, lo que mejora la experiencia de usuario.
Además se elimina la necesidad de optimizar la base de datos (índices, agregados, etc…) y se simplifican las cargas, con lo que el tiempo de desarrollo se ve reducido y el mantenimiento es más sencillo, siendo el Sistema fácilmente escalable incorporando más memoria al aumentar el volumen de datos.
Aunque estos productos utilizan algoritmos de compresión que reducen considerablemente el tamaño de los datos en la memoria, dada la gran cantidad de datos a cargar es muy importante dimensionar adecuadamente la memoria del servidor, cuyo precio ha condicionado en gran medida la adopción de estas tecnologías, aunque hoy en día éste ha descendido considerablemente.
Otro aspecto que preocupa a las organizaciones es la seguridad al exponer grandes cantidades de datos estratégicos en memoria, sin las restricciones de acceso que proporciona una base de datos tradicional. En este sentido, el procesamiento en memoria permite implementar los mismos niveles de seguridad (autenticación, encriptación, protocolos seguros de comunicación…) de modo que cada usuario tenga acceso solo a los datos para los que está autorizado.
Las ventajas evidentes que proporciona el procesamiento en memoria en escenarios muy dinámicos o con una alta exigencia en cuanto al rendimiento, han hecho que la mayor parte de fabricantes de BI tradicionales (Oracle, Microsoft, MicroStrategy, IBM-Cognos, Business Objects, etc.) lo hayan incorporado a sus productos o complementado éstos con nuevos productos.
In Memory Database vs Data Warehouse ¿Cuál elegir?
La elección de la solución más adecuada a cada situación depende de múltiples factores:
- Volumen de datos
- Número de usuarios y concurrencia de los mismos
- Necesidades funcionales y tipología de las consultas a realizar
- Requisitos de rendimiento
- Necesidad de consolidar la información corporativa
- Latencia tolerable de la información a analizar
- Estabilidad de las estructuras de datos (modelo)
- Integración con otros Sistemas
A ello se añade la amplia oferta de herramientas de BI disponibles actualmente. Cada fabricante posee sus puntos fuertes y sus debilidades, y unas políticas de precios a veces excesivamente complejas, por lo que no resulta sencilla la elección.
En este contexto es cuando el asesoramiento de un socio tecnológico capacitado y con amplia experiencia resulta indispensable para asegurar la idoneidad de la solución a sus necesidades y aquí entra hiberus y nuestro departamento de Data Analytics, que cuenta con los mejores expertos en el sector. Habla con nosotros y te ayudaremos a encontrar la solución idónea, totalmente adaptada a tu negocio.
¿Quieres más información sobre nuestros servicios de Business Intelligence?
Contacta con nuestro equipo de expertos en BI
Great comparison of in-memory and data warehouse technologies! Both have their unique strengths, and it’s fascinating to see how they serve different business needs. In-memory solutions are definitely powerful for real-time data processing, making them ideal for fast analytics. On the other hand, data warehouses provide the structure and scalability needed for long-term data storage and reporting. It all comes down to the specific use cases and how companies prioritize speed vs. storage. Thanks for breaking it down so clearly!
and also check https://www.sparkouttech.com/ui-ux-design-agency-germany/ f
Great information
check out – https://www.sparkouttech.com/ui-ux-design-agency-germany/