Archivo de la etiqueta: inmon

Data Warehousing: Kimball vs Inmon, Data Vault y Virtualización

Dos formas completamente diferentes de enfocar el mismo problema. Dos formas no del todo contrapuestas y ambas válidas. Quizá el enfoque departamental de Kimball es un generador de Silos y es quizá por esto que desde la perspectiva del framework de DAMA se habla mucho más de Inmon y de su CIF (Corporate Information Factory)

En el desarrollo conceptual del data warehousing, se destacan dos figuras prominentes: Ralph Kimball y Bill Inmon (que he tenido la suerte de entrevistar hace unas semanas). Aunque ambas perspectivas comparten objetivos similares, difieren considerablemente en sus enfoques metodológicos, dando lugar a dos filosofías distintas en el diseño de estrategias de datos.

La visión de Kimball se fundamenta en la premisa de que los procesos de negocio deben dictar la arquitectura del datawarehouse. Parte de la premisa de la existencia previa de datos, ya sea en forma de datamarts organizados de manera más o menos estructurada, los cuales sirven como la base para la construcción del datawarehouse futuro.

Que sea rápido… y departamentalizado

Para Kimball, la velocidad en el procesamiento de datos destinados a la toma de decisiones es primordial. Por ende, estructura el datawarehouse conforme a patrones dimensionales, con el objetivo de agilizar las consultas y ofrecer una organización más intuitiva y natural de los datos para los usuarios.

La arquitectura propuesta por Kimball se caracteriza por ser una aproximación «bottom-up», donde se parte de los datos y procesos existentes para modelar el datawarehouse de manera que se adapte a ellos. Esta metodología prioriza la eficiencia temporal y la representación intuitiva de los datos sobre la normalización.

Esencialmente el modelo dimensional de Kimball se apoya en el modelo estrella donde las dimensiones no están normalizadas. Si de un lado su construcción resulta más rápida y sencilla puede generar problemas de redundancia.

El esquema en estrella es capaz de filtrar datos a partir de información denormalizada para satisfacer las necesidades de almacenamiento de datos. Se genera una clave única asociada a cada tabla de hechos para identificar cada fila. Este esquema permite realizar cálculos y agregaciones de manera rápida, como el total de ingresos obtenidos y la cantidad total de artículos vendidos al final de cada mes. Estos detalles pueden filtrarse según sea necesario mediante consultas apropiadas. El esquema en estrella se centra en la medición de eventos que incluyen valores numéricos finitos, que se vinculan a claves externas relacionadas con las tablas de dimensiones. Existen varios tipos de tablas de hechos que contienen valores a nivel atómico. Por ejemplo, la tabla de hechos de transacciones almacena datos sobre eventos específicos, como ventas y días festivos, mientras que los hechos de registro incluyen períodos específicos, como información de cuenta al final del año o cada trimestre. Por otro lado, las tablas dimensionales proporcionan datos detallados sobre los atributos o registros que se encuentran en la tabla central.

Que sea conformado y normalizado y a ser posible por entidades primarias

Por otro lado, el enfoque de su colega Inmon, reconocido como el pionero del concepto de data warehouse, presenta una estrategia «top-down» en la resolución del problema. En este enfoque, el primer paso en el desarrollo del datawarehouse consiste en establecer una estructura de datos en tercera forma normal (3FN), completamente normalizada y depurada. Los datos que ingresan a esta estructura suelen ser depurados previamente en un «área de carga» antes de ser integrados en el datawarehouse normalizado. Esto supone otro proceso ETL.

A partir de esta estructura central, se pueden crear datamarts que organicen de manera más lógica y, si se desea, multidimensional, la información contenida en el datawarehouse principal. Esta metodología, como se puede apreciar, es más organizada pero menos flexible que la anterior, ya que aquí es la estructura y la normalización de los datos lo que dicta el proceso de trabajo en lugar de los procesos de negocio existentes.

El enfoque de Inmon se apoya es encialmente en el esquema copo de nieve donde las dimensiones están normalizadas.

El esquema de copo de nieve requiere poco espacio en disco, lo cual es una ventaja significativa. Este modelo no es relativamente fácil de implementar aunque presenta una estructura modular y a las tablas de dimensiones bien definidas. Las tablas de dimensiones suelen contener al menos dos atributos para definir información en múltiples niveles de granularidad. Sin embargo, debido a la presencia de múltiples tablas de dimensiones y relaciones más complejas, el rendimiento del esquema de copo de nieve tiende a ser inferior en comparación con el esquema en estrella. A pesar de esto, el esquema de copo de nieve ofrece el más alto nivel de integridad de datos y baja redundancia gracias a su enfoque en la normalización de datos.

Donde tiramos…

¿Cuál es la preferible? No se puede afirmar que una sea superior a la otra; simplemente, cada una enfatiza diferentes aspectos en el diseño de un datawarehouse. Kimball representa la orientación hacia el usuario final, la flexibilidad y la rápida disponibilidad de la información. Por otro lado, Inmon destaca por su enfoque en el diseño meticuloso y el cumplimiento de normas que aseguren la precisión, integración y coherencia de los datos.

Con el tiempo, los profesionales del data warehousing han aprendido a combinar ambas tendencias en modelos híbridos que incorporan lo mejor de ambas soluciones. Estos modelos suelen cerrar el ciclo de vida de la información mediante procesos ETL (Extract, Transform, Load) y utilizan estructuras dimensionales para representar la información de manera que facilite su explotación.

Las diferencias entre los enfoques de Inmon y Kimball en el desarrollo de un Data Warehouse son notables y van más allá de simplemente variaciones en la estructura interna y el alcance. Estas diferencias afectan también a la intención y el propósito subyacentes de cada modelo.

El enfoque de Inmon se caracteriza por su orientación «top-down», donde se prioriza la construcción de un almacén de datos altamente normalizado y depurado desde el principio. Este enfoque busca asegurar la precisión y coherencia de los datos, estableciendo una sólida base estructural sobre la cual se pueden desarrollar datamarts y otras estructuras de información.

Por otro lado, el enfoque de Kimball es más «bottom-up», centrándose en la rápida disponibilidad de la información para la toma de decisiones. Kimball aboga por estructuras dimensionales que se adapten a las necesidades específicas de los usuarios finales, lo que permite una mayor flexibilidad y agilidad en la explotación de los datos.

En este debate también se encuentra el concepto de Data Vault, que es una metodología de modelado de datos que se ha vuelto popular en los últimos años. El enfoque de Data Vault se centra en la escalabilidad, la flexibilidad y la trazabilidad de los datos. Utiliza una estructura de modelado específica que consiste en hubs, enlaces y satélites, lo que permite una fácil adaptación a los cambios en los requisitos de negocio y una mayor capacidad para rastrear el historial y la procedencia de los datos.

Dicho esto, afirmar que uno de estos enfoques es «correcto» o «incorrecto» sería demasiado simplista. En lugar de eso, es importante comprender las fortalezas y debilidades de cada enfoque y seleccionar el que mejor se ajuste a las necesidades y objetivos específicos de cada proyecto de Data Warehouse. En muchos casos, la combinación de elementos de diferentes enfoques, como lo hacen los modelos híbridos, puede resultar ser la opción más adecuada para obtener los mejores resultados.

El Data Vault

El Data Vault es una metodología de modelado de datos diseñada para proporcionar una estructura flexible y escalable en entornos de data warehousing. Se caracteriza por su enfoque en la gestión de datos históricos, la trazabilidad y la capacidad para adaptarse a cambios en los requisitos empresariales. En un modelo de Data Vault, los datos se organizan en tres tipos principales de componentes:

Hubs: Representan entidades de negocio fundamentales y actúan como puntos centrales para conectar datos relacionados. Los hubs contienen claves de negocio y son la base para la integración y la trazabilidad de los datos.

Enlaces (Links): Establecen las relaciones entre los hubs y representan las asociaciones entre entidades de negocio. Los enlaces contienen claves foráneas que conectan dos o más hubs, permitiendo el modelado de relaciones complejas entre los datos.

Satélites: Almacenan atributos descriptivos adicionales relacionados con los hubs y enlaces. Los satélites contienen información detallada sobre los datos, como metadatos, fechas de validez y cualquier otra información contextual relevante.

El diseño en forma de Data Vault facilita la escalabilidad y la flexibilidad al permitir la incorporación de nuevos datos y cambios en los requisitos empresariales sin tener que modificar la estructura básica del modelo. Además, su enfoque en la trazabilidad y la gestión de datos históricos lo hace especialmente adecuado para entornos donde es crucial mantener un registro detallado de la evolución de los datos a lo largo del tiempo.

El ETL como cuello de botella

Cualquier enfoque queramos utilizar siempre nos toparemos con los problemas derivados de los procesos ETL.

Minimizar los procesos ETL (Extracción, Transformación y Carga) en datawarehousing puede ser beneficioso para reducir la complejidad y los costos asociados con la gestión de datos. Aquí hay algunas ideas para lograrlo:

Incrementar la integración en la fuente: En lugar de extraer datos de múltiples fuentes y luego transformarlos para la carga en el almacén de datos, se puede trabajar en integrar los datos en la misma fuente. Esto implica implementar estándares de integración de datos en las aplicaciones fuente para garantizar la coherencia y la calidad de los datos antes de que se extraigan.

Utilizar estructuras de datos flexibles: Emplear modelos de datos flexibles y dinámicos, como el Data Vault, que permiten agregar nuevas fuentes de datos con facilidad y minimizan la necesidad de transformaciones complejas durante el proceso ETL.

Automatizar la limpieza y transformación de datos: Utilizar herramientas de calidad de datos y transformación de datos para automatizar tareas como la limpieza, normalización y enriquecimiento de datos. Esto reduce la dependencia de procesos manuales y acelera el flujo de datos a través del proceso ETL.

Implementar cambios incrementales: En lugar de realizar extracciones completas de datos cada vez, implementar estrategias de extracción incremental (delta) o de cambio de datos (CDC) para identificar y cargar sólo los datos que han cambiado desde la última ejecución del proceso ETL. Esto reduce la cantidad de datos que se procesan y carga en cada ciclo de ETL.

Optimizar el rendimiento de las consultas: Diseñar modelos de datos eficientes y utilizar técnicas de indexación y particionamiento para optimizar el rendimiento de las consultas en el almacén de datos. Esto puede reducir la necesidad de realizar transformaciones complejas durante el proceso de carga.

Utilizar herramientas ETL de alto rendimiento: Emplear herramientas ETL de alto rendimiento y escalables que puedan manejar grandes volúmenes de datos de manera eficiente y procesar transformaciones complejas en paralelo para acelerar el proceso ETL.

La virtualización: no mover datos más bien consultarlos…

La virtualización de datos es una tecnología que puede desempeñar un papel significativo en la reducción o eliminación de los procesos ETL en data warehousing. Al aprovechar la virtualización de datos, las organizaciones pueden acceder y combinar datos de múltiples fuentes en tiempo real, sin necesidad de replicar o mover físicamente los datos a un almacén centralizado. Esto significa que los datos permanecen en su ubicación original y se integran de manera virtual en una capa de abstracción, lo que elimina la necesidad de realizar extracciones y transformaciones complejas.

La virtualización de datos permite a los usuarios acceder a los datos de manera transparente y unificada, independientemente de su ubicación física o formato subyacente. Esto significa que los procesos ETL tradicionales, que implican la extracción de datos de múltiples fuentes, su transformación y carga en un almacén de datos centralizado, pueden ser reemplazados por consultas virtuales que acceden y combinan los datos según sea necesario, en tiempo real.

Al eliminar la necesidad de replicar y mover grandes volúmenes de datos, la virtualización de datos reduce significativamente la complejidad y el costo asociado con los procesos ETL. Además, al permitir el acceso en tiempo real a los datos, la virtualización de datos puede mejorar la agilidad y la capacidad de respuesta de las organizaciones ante los cambios en los requisitos de negocio y las fuentes de datos. En resumen, la virtualización de datos ofrece una alternativa eficaz para minimizar o incluso eliminar los procesos ETL en datawarehousing, al tiempo que proporciona una integración de datos ágil y flexible.