di

Resumen

En este documento se presentan una serie de notas sobre los contenidos del grupo docente de la asignatura de Almacenes de Datos del Grado en Ingeniería Informática de la Universidad de Almería. Esta asignatura aborda los conceptos y técnicas necesarios para el diseño e implementación de almacenes de datos y sistemas OLAP. Se estudian temas como el modelo de datos multidimensional, las operaciones OLAP, técnicas de diseño dimensional, extensiones OLAP de SQL y el lenguaje MDX.

Contenido generado con NotebookLM

NotebookLM es una herramienta de Google para el procesamiento de lenguaje natural que puede ser utilizado para ayudar a entender la información relevante de un texto. Entre las fuentes de información procesables por NotebookLM se encuentran URLs, documentos en Google Drive, archivos PDF, videos de YouTube, y demás.

Caution

Este contenido ha sido generado automáticamente por NotebookLM para facilitar el estudio de la asignatura. Sin embargo y en ningún caso, este resumen sustituye al contenido de la asignatura, sino que debe ser entendido como un complemento para facilitar su estudio.

1. Introducción

1.1. Data warehousing

Data Warehousing (almacenamiento de datos) es un concepto fundamental en el ámbito del análisis de datos y la inteligencia de negocios. Se refiere a la práctica de almacenar y gestionar grandes volúmenes de datos de diversas fuentes en un repositorio centralizado para facilitar el análisis y la toma de decisiones. A continuación, se presentan los aspectos clave del data warehousing basándose en la información proporcionada en las fuentes:

Definición y Propósito

  • Un data warehouse (DW) es un repositorio de gran tamaño de datos integrados obtenidos de diversas fuentes en una organización con el fin de analizar los datos.

  • Los data warehouses están optimizados para consultas que manejan grandes volúmenes de datos, necesitando el historial de los datos.

  • Su principal objetivo es proporcionar acceso a los datos de la organización para apoyar el análisis estratégico y la toma de decisiones.

  • A diferencia de las bases de datos operacionales (OLTP), que están optimizadas para las operaciones del día a día, los data warehouses se centran en el análisis y la generación de informes.

  • Un data warehouse es una colección de datos orientados a temas, integrados, no volátiles y dependientes del tiempo, diseñados para dar soporte a la toma de decisiones.

Características Clave

  • Orientación a temas: Los data warehouses se diseñan en torno a temas importantes relacionados con el negocio, facilitando el análisis. Por ejemplo, un data warehouse para un vendedor de libros podría centrarse en el análisis de las ventas, con entidades como libros, tiendas, vendedor, comprador y fecha.

  • Integración de datos: Los data warehouses consolidan datos de diversas fuentes heterogéneas, como catálogos de proveedores, sistemas de inventario y facturación, que pueden utilizar diferentes formatos y unidades. Los procesos ETL (Extracción, Transformación y Carga) son cruciales para extraer, limpiar y transformar los datos antes de cargarlos en el data warehouse.

  • No volatilidad: Los datos cargados en un data warehouse no se actualizan ni eliminan (salvo para correcciones), siendo el único cambio permitido la carga de nuevos datos. Esto contrasta con los sistemas operacionales, que se diseñan para soportar actualizaciones concurrentes.

  • Dependencia del tiempo: Los data warehouses almacenan datos históricos, lo que permite analizar tendencias y patrones a lo largo del tiempo.

Modelado Multidimensional

  • El modelado multidimensional es una técnica de diseño de bases de datos utilizada para analizar datos de negocio, que organiza los datos en dimensiones y hechos, facilitando la creación de informes y análisis.

  • Este modelo utiliza una estructura en forma de estrella o copo de nieve para organizar los datos del negocio. Las dimensiones son categorías de datos para el análisis, mientras que los hechos son los datos numéricos que se miden.

  • Los modelos de datos multidimensionales (MDM) están diseñados para dar soporte al análisis de datos, siendo la base de la industria de Business Intelligence.

Arquitectura y Componentes

  • Un data warehouse típicamente incluye las siguientes capas:

    • Fuentes: Datos heterogéneos orientados a aplicaciones con poca historia.

    • ETL: Sistema que transforma los datos de origen a un formato objetivo, conformando las dimensiones y realizando la normalización (opcional).

    • Área de presentación: Datos organizados por procesos de negocio, utilizando un esquema de estrella o cubo OLAP, con datos atómicos y resumidos.

    • Aplicaciones BI: Herramientas para realizar consultas ad hoc, informes estándar y análisis de datos.

  • Los data warehouses pueden ser departamentales (data marts) con datos muy resumidos, o globales/corporativos con registros históricos y datos poco resumidos.

Procesos ETL en Data Warehousing

  • Los procesos ETL (Extract, Transform, Load) son fundamentales en la construcción de data warehouses.

  • Estos procesos implican la extracción de datos de diversas fuentes, su transformación para que sean adecuados para el análisis, y su carga en el data warehouse.

  • Los pipelines de datos automatizan los procesos ETL y permiten definir flujos de trabajo complejos desde las fuentes transaccionales hasta los data warehouses.

  • En la operación continua de un data warehouse, los procesos ETL se encargan de actualizar los datos regularmente.

Tipos de Datos en Data Warehousing

  • Los data warehouses almacenan principalmente datos estructurados. Los datos suelen organizarse en tablas con filas y columnas, con relaciones entre los datos definidas mediante claves.

  • Sin embargo, también pueden manejar datos semi-estructurados y no estructurados a través de data lakes, que pueden integrarse en arquitecturas de data warehouses modernos.

Desafíos y Consideraciones

  • La implementación y gestión de un data warehouse puede ser compleja debido a la necesidad de integrar y estructurar grandes volúmenes de datos.

  • Los costos de licencias, hardware y mantenimiento pueden ser significativos.

  • Los procesos de limpieza y transformación de datos pueden ser largos y laboriosos.

  • Los datos en el data warehouse pueden no estar actualizados con los cambios más recientes en las bases de datos de origen.

  • Almacenar grandes cantidades de datos sensibles en una ubicación centralizada puede aumentar el riesgo de brechas de seguridad y violaciones de privacidad.

Evolución del Data Warehousing

  • La arquitectura de los data warehouses ha evolucionado hacia modelos más modernos como los data lakehouses, que combinan la flexibilidad de los data lakes con la capacidad de análisis de los data warehouses.

  • Los data lakes almacenan los datos en su formato nativo sin imponer un esquema fijo, mientras que los lakehouses añaden una capa de metadatos para facilitar el análisis.

  • Los data warehouses relacionales (RDW) siguen siendo necesarios debido a la dificultad de generar informes directamente desde un data lake, su valor continuo y la dependencia de los usuarios en ellos.

En resumen, el data warehousing es una práctica esencial para el análisis de datos y la toma de decisiones, que implica la creación de repositorios centralizados de datos integrados, limpios y transformados. Los data warehouses están diseñados para soportar consultas complejas y proporcionar una visión histórica de los datos, y su arquitectura y metodologías están en constante evolución para adaptarse a las nuevas necesidades y tecnologías.

1.2. Almacenes de datos

Un almacén de datos (Data Warehouse o DW) es un sistema donde se almacenan y gestionan de manera centralizada grandes volúmenes de datos estructurados, copiados de múltiples fuentes de datos, para su uso en informes de análisis histórico y de tendencias, con el fin de que una organización pueda tomar decisiones de negocio más informadas. Los almacenes de datos relacionales (RDW) centralizan datos de múltiples aplicaciones para mejorar la generación de informes.

Los almacenes de datos se pueden implementar usando el modelo relacional para la representación y organización de los datos. Se denominan almacenes de datos porque recopilan, almacenan y gestionan volúmenes masivos de datos estructurados provenientes de diversas fuentes, como bases de datos transaccionales, sistemas de aplicaciones y fuentes de datos externas.

Características de los almacenes de datos

  • Los almacenes de datos están optimizados para consultas que manejan grandes volúmenes de datos, necesitando el histórico de los datos.

  • Los datos cargados en un almacén de datos no se actualizan ni se eliminan, salvo para correcciones. El único cambio permitido es la carga de datos nuevos.

  • Los almacenes de datos están orientados a temas importantes relacionados con el negocio para facilitar el análisis. En cambio, los sistemas operacionales se crean en función de cómo se llevan a cabo los procesos.

  • Los almacenes de datos almacenan los datos en una base de datos multidimensional para dar respuesta a consultas de análisis.

  • Un almacén de datos es el lugar donde se almacenan los datos para los sistemas informacionales, que están orientados al análisis estratégico y a la toma de decisiones.

  • Los almacenes de datos permiten a los usuarios finales crear informes de manera autónoma sin depender del departamento de TI.

Objetivos de un almacén de datos (relacional)

  • Reducir la carga en el sistema de producción, minimizando el impacto en los sistemas operacionales al centralizar el análisis en el almacén de datos.

  • Optimizar el acceso de lectura para mejorar el rendimiento en la consulta y generación de informes.

  • Integrar múltiples fuentes de datos para consolidar datos de diversas fuentes y obtener una visión unificada.

  • Generar informes históricos precisos que proporcionen información detallada sobre tendencias y datos históricos.

  • Reestructurar y renombrar tablas para adaptar la estructura de datos para facilitar el análisis.

  • Proteger contra actualizaciones de aplicaciones, asegurando que los cambios en las aplicaciones no afecten a los informes.

  • Reducir las preocupaciones de seguridad implementando medidas para proteger los datos sensibles.

  • Mantener datos históricos a lo largo del tiempo para realizar análisis en profundidad.

  • Gestionar los datos maestros para garantizar una única fuente de verdad para los datos clave.

  • Mejorar la calidad de los datos corrigiendo los problemas en los sistemas de origen para asegurar datos precisos y completos.

Desafíos de un almacén de datos

  • Complejidad: La implementación y gestión de un DW puede ser complicada debido a la necesidad de integrar y estructurar grandes volúmenes de datos.

  • Altos costos: Los costos de licencias, hardware y mantenimiento pueden ser significativos.

  • Desafíos en la integración de datos: Consolidar datos de múltiples fuentes puede ser complicado y requerir soluciones personalizadas.

  • Transformación de datos que consume tiempo: Los procesos de limpieza y transformación de datos pueden ser largos y laboriosos.

  • Latencia de datos: Los datos en el almacén de datos pueden no estar actualizados con los cambios más recientes en las bases de datos de origen.

  • Ventana de mantenimiento: Las actualizaciones y el mantenimiento del sistema pueden requerir tiempos de inactividad programados.

  • Flexibilidad limitada: Los DW están diseñados para soportar tipos específicos de análisis, lo que puede limitar su flexibilidad para otros tipos de procesamiento o análisis de datos.

  • Preocupaciones de seguridad y privacidad: Almacenar grandes cantidades de datos sensibles en una ubicación centralizada puede aumentar el riesgo de brechas de seguridad y violaciones de privacidad.

Población de un almacén de datos

Una de las tareas más importantes en la implementación de un almacén de datos es la población inicial del almacén con datos de las fuentes de datos operacionales. La población inicial implica extraer, transformar y cargar (ETL) los datos desde las fuentes de datos operacionales al almacén de datos. No obstante, los procesos de ETL también están presentes en la operación continua del almacén de datos, ya que los datos deben actualizarse regularmente para mantener la información actualizada. Los pasos típicos en el proceso de población de un almacén de datos son:

  • Extracción: Los datos pueden ser extraídos de forma completa o incremental.

    • Extracción Completa: Se extrae todo el conjunto de datos desde el sistema de origen cada vez.

    • Extracción Incremental: Solo se extraen los datos que han cambiado desde la última extracción.

    • Para determinar los datos que han cambiado desde la última extracción se pueden usar marcas de tiempo (timestamps) o realizar una comparación entre una extracción completa actual y una anterior utilizando una sentencia MERGE.

  • Transformación: Los datos pueden ser transformados para adaptarlos al modelo de datos del almacén.

  • Carga: Los datos transformados se cargan en el almacén de datos.

Los almacenes de datos se optimizan para consultas que manejan grandes volúmenes de datos, necesitando la historia de los datos. Los datos de las fuentes de datos operacionales se copian en un almacén de datos, lo que permite a los usuarios ejecutar consultas e informes contra el almacén de datos en lugar de hacerlo directamente sobre las fuentes de datos. De esta manera, no se sobrecargan los sistemas que albergan las fuentes originales, evitando la ralentización de las aplicaciones para los usuarios finales.

Evolución de los almacenes de datos

Los almacenes de datos relacionales (RDW) han evolucionado hacia arquitecturas más modernas como los data lakes y los data lakehouses.

  • Data Lakes: Almacenan los datos en su formato natural o bruto, sin necesidad de estructurarlos o procesarlos primero. Los data lakes son especialmente útiles para almacenar y analizar datos semiestructurados y no estructurados. Sin embargo, los data lakes no contaban con características como el soporte de transacciones, la aplicación de esquemas y las trazas de auditoría.

  • Data Lakehouses: Combinan la capacidad de los data lakes para manejar datos en su formato bruto con la robustez de los almacenes de datos relacionales para realizar análisis complejos y mantener la calidad e integridad de los datos. Los data lakehouses eliminan la necesidad de tener un almacén de datos relacional y utilizan un data lake como único repositorio. Los data lakehouses utilizan una capa de software de almacenamiento transaccional llamada Delta Lake que se ejecuta sobre un data lake existente y hace que funcione de manera más parecida a una base de datos relacional.

  • Almacenes de datos modernos (MDW): Combinan la estructura de los RDWs con la flexibilidad de los data lakes, utilizando el data lake para la preparación y el almacenamiento de datos, y el RDW para la presentación y la seguridad.

  • Fábricas de datos: Integran y orquestan datos a través de múltiples entornos y plataformas, proporcionando una capa unificada de gestión de datos que abarca tanto datos estructurados como no estructurados. La arquitectura de una fábrica de datos se puede considerar como una evolución de la arquitectura del almacén de datos moderno.

Conceptos relacionados:

  • OLTP vs OLAP: Los sistemas OLTP (On-Line Transaction Processing) son bases de datos operacionales o transaccionales, optimizadas para soportar operaciones de inserción, actualización y borrado de datos. Los sistemas OLAP (On-Line Analytical Processing) se utilizan para realizar análisis de datos de forma eficiente y rápida. Los sistemas OLAP dan respuestas rápidas a consultas que agregan gran cantidad de datos y presentan los resultados en forma multidimensional.

  • Modelado dimensional: Técnica de diseño de bases de datos que se utiliza para analizar datos de negocios, organizando los datos en dimensiones y hechos.

  • Cubos OLAP: Estructura multidimensional para la captura y análisis de datos que se basa en el modelado dimensional.

En resumen, un almacén de datos es un componente fundamental en la infraestructura de análisis de datos de una organización. Permite centralizar y gestionar grandes volúmenes de datos estructurados para facilitar la generación de informes, el análisis histórico y la toma de decisiones informadas. Los almacenes de datos han evolucionado para adaptarse a las necesidades cambiantes del análisis de datos, dando lugar a arquitecturas como los data lakes, los data lakehouses, los almacenes de datos modernos y las fábricas de datos.

1.3. OLTP vs OLAP

Los sistemas de procesamiento de transacciones en línea (OLTP) y procesamiento analítico en línea (OLAP) son dos tipos distintos de sistemas de bases de datos diseñados para diferentes propósitos. Los sistemas OLTP están orientados a transacciones, mientras que los sistemas OLAP están orientados al análisis. A continuación se presenta una comparación detallada basada en la información proporcionada en las fuentes:

OLTP (Procesamiento de Transacciones en Línea)

  • Propósito: Los sistemas OLTP están diseñados para soportar las operaciones del día a día de una organización, como la inserción, actualización y eliminación de datos. Un ejemplo es un sistema de control de stock de libros, donde al venderse un libro, el stock disminuye.

  • Optimización: Estos sistemas están optimizados para recuperar y modificar un número reducido de tuplas, de manera eficiente.

  • Datos: Los sistemas OLTP almacenan sus datos en una base de datos relacional (BDR) normalizada para evitar anomalías de modificación. Los datos en un sistema OLTP suelen ser datos detallados (datos primitivos) y actuales.

  • Acceso: El acceso a los datos es repetitivo y se enfoca en transacciones pequeñas.

  • Usuarios: Los usuarios comunes de los sistemas OLTP son empleados sin función de dirección en la organización.

  • Redundancia: No hay redundancia en los datos.

  • Ejemplo: Un sistema para el control de stock de libros donde se reduce el stock cuando se vende una copia de un libro y aumenta el stock cuando se compran nuevos ejemplares.

  • Esquema: Los datos se organizan utilizando un enfoque conocido como schema-on-write, donde el esquema se define antes de almacenar los datos.

  • Bases de datos: Las bases de datos relacionales son la herramienta preferida para las aplicaciones operacionales que necesitan almacenar datos de manera permanente.

  • Limitaciones: Las bases de datos relacionales tienen limitaciones en cuanto a la escalabilidad y la gestión de grandes volúmenes de datos no estructurados.

OLAP (Procesamiento Analítico en Línea)

  • Propósito: Los sistemas OLAP están diseñados para el análisis de datos, permitiendo a los usuarios realizar consultas complejas sobre grandes conjuntos de datos. Estos sistemas dan respuestas rápidas a consultas que agregan grandes cantidades de datos y presentan los resultados en forma multidimensional.

  • Optimización: Estos sistemas están optimizados para consultas que manejan grandes cantidades de datos, necesitando la historia de los datos. Los datos en un sistema OLAP son datos resumidos y refinados (datos derivados) e históricos.

  • Datos: Los datos se almacenan en una base de datos multidimensional para dar respuesta a consultas de análisis. Los sistemas OLAP guardan cada venta individual, incluyendo detalles como dónde, cuándo, quién y a quién se realizó la venta.

  • Acceso: El acceso a los datos se realiza a través de consultas complejas.

  • Usuarios: Los usuarios principales de los sistemas OLAP son ejecutivos y analistas.

  • Actualizaciones: Los sistemas OLAP normalmente solo añaden datos periódicamente y no eliminan ni modifican los datos existentes. La actualización se realiza por lotes.

  • Redundancia: La redundancia es habitual.

  • Ejemplo: Un sistema que permite analizar el libro de cocina más vendido o el promedio de libros infantiles vendidos antes de un día festivo durante los últimos tres años.

  • Modelo: Los sistemas OLAP se basan en el modelo de datos multidimensional (MDM), que permite una manipulación más directa e intuitiva de los datos, incluyendo slicing y dicing.

  • Implementaciones: Los sistemas OLAP se pueden implementar mediante ROLAP (OLAP relacional), que almacena los datos en bases de datos relacionales, o mediante HOLAP (OLAP híbrido), que combina datos resumidos en MOLAP y datos detallados en ROLAP.

Tabla comparativa resumida

Característica OLTP OLAP

Orientación

Transacciones

Análisis

Propósito

Soporte de operaciones diarias

Soporte de la toma de decisiones

Optimización

Recuperación y modificación eficiente

Consultas complejas con grandes datos

Datos

Detallados y actuales

Resumidos e históricos

Almacenamiento

BDR normalizada

BD multidimensional

Acceso

Repetitivo y pequeño

Consultas complejas

Usuarios

Empleados sin capacidad de dirección

Ejecutivos y analistas

Actualización

Frecuente

Periódica (solo adición)

Redundancia

No

Habitual

Diferencias Clave

  • Enfoque: Los sistemas OLTP se centran en la gestión de transacciones, mientras que los sistemas OLAP se centran en el análisis de los datos.

  • Datos: Los sistemas OLTP manejan datos detallados y actuales, mientras que los sistemas OLAP trabajan con datos resumidos e históricos.

  • Consultas: Los sistemas OLTP están optimizados para consultas simples y rápidas, mientras que los sistemas OLAP están diseñados para consultas complejas que involucran grandes volúmenes de datos.

En resumen, OLTP y OLAP son sistemas complementarios que cumplen funciones distintas dentro de una organización. Los sistemas OLTP son esenciales para las operaciones diarias, mientras que los sistemas OLAP permiten el análisis estratégico y la toma de decisiones basadas en datos.

2. Modelo dimensional

El modelo de datos multidimensional es una técnica de diseño de bases de datos utilizada para el análisis de datos empresariales. En lugar de utilizar un modelo relacional orientado a transacciones, el modelo multidimensional emplea un modelo de estrella o copo de nieve para organizar los datos en dimensiones y hechos. Este modelo facilita la creación de informes y análisis, ya que organiza los datos de forma que refleja cómo las personas piensan sobre ellos.

Conceptos clave del modelo multidimensional:

  • Hechos: Son los datos numéricos que se miden. Representan las propiedades de los hechos a estudiar.

    • Tienen una propiedad numérica (por ejemplo, precio, beneficio) y una fórmula para combinar varios valores en uno.

    • Pueden ser aditivos, semiaditivos (aditivos sólo en ciertas dimensiones), o no aditivos.

    • Un ejemplo de hecho es la compra.

  • Medidas: Las medidas representan las propiedades de los hechos a estudiar, como la cantidad de unidades de un producto vendidas en un día.

    • Tienen dos componentes: una propiedad numérica de un hecho y una fórmula para combinar varios valores en uno.

    • Las medidas pueden ser aditivas, semiaditivas o no aditivas.

    • Ejemplos de medidas son la cantidad y el precio de la compra.

  • Dimensiones: Son las categorías de datos que se utilizan para analizar los hechos. Caracterizan los hechos y proporcionan el contexto para las medidas.

    • Las dimensiones se organizan en jerarquías, formadas por niveles. Cada nivel representa un nivel de detalle para el análisis de los datos.

    • Cada nivel puede tener sus propias propiedades.

    • Las instancias de las dimensiones se conocen como miembros.

    • Las dimensiones pueden tener jerarquías múltiples que comparten uno o más niveles inferiores.

    • Un ejemplo de dimensión es el lugar de compra, el libro comprado, o la fecha de compra.

  • Cubos: Estructura multidimensional para la captura y análisis de datos.

    • Generalización de la hoja de cálculo 2D.

    • Permiten el uso de jerarquías en las dimensiones.

    • Son la base de datos multidimensional, un conjunto de cubos relacionados.

    • Los cubos OLAP permiten analizar los datos desde cualquier punto de vista.

    • Los cubos pueden ser dispersos.

  • Modelos de estrella y copo de nieve: Son modelos de organización de datos en un esquema multidimensional.

    • En un modelo de estrella, hay una tabla central de hechos rodeada de tablas de dimensiones desnormalizadas.

    • En un modelo de copo de nieve, las dimensiones se normalizan.

    • Las tablas de dimensiones describen el quién, qué, dónde, cuándo, cómo y por qué asociado al evento o hecho.

  • Operaciones OLAP: Los sistemas OLAP ofrecen respuestas rápidas a consultas que agregan gran cantidad de datos y presentan los resultados en forma multidimensional. Las operaciones OLAP incluyen:

    • Roll-up/Drill-down: Reducir o aumentar el nivel de detalle en las dimensiones.

    • Slice/Dice: Proyección o selección que obtiene "rodajas" o cubos.

    • Drill-across: Permite combinar cubos con dimensiones comunes.

  • Lenguaje MDX: Permite consultar objetos multidimensionales, como los cubos, y devolver conjuntos de celdas multidimensionales que contienen los datos del cubo.

    • Los miembros son los valores de las dimensiones.

    • Las medidas son una dimensión.

    • Las dimensiones tienen una o más jerarquías.

    • El nivel superior de cada dimensión es "All".

    • La notación punto se utiliza para hacer referencia a los miembros.

    • Las sentencias MDX utilizan FROM, SELECT y WHERE.

Características del modelo multidimensional:

  • Técnica para la presentación de datos analíticos.

  • Ofrece a los usuarios de negocio datos fáciles de entender.

  • Ofrece alto rendimiento en consultas.

  • Es la base de los sistemas OLAP (On-Line Analytical Processing).

  • Permite una manipulación más directa e intuitiva de los datos.

  • Los modelos de datos multidimensionales (MDM) están diseñados para dar soporte al análisis de datos. Su objetivo no es dar soporte a la gestión de transacciones en línea.

  • Las consultas agregan valores de medidas sobre valores de rangos de dimensión.

Diseño de un modelo dimensional:

El diseño de un modelo dimensional se puede realizar siguiendo los siguientes pasos:

  1. Seleccionar el proceso de negocio a modelar. Por ejemplo, analizar qué productos se venden en función del supermercado, fecha y condiciones promocionales.

  2. Establecer la granularidad del proceso. Se debe elegir el máximo nivel de detalle posible. Por ejemplo, líneas de producto de cada ticket.

  3. Identificar las dimensiones. Se debe responder a la pregunta: "¿Cómo describen los expertos los datos resultantes de los eventos de medida del proceso de negocio?". Por ejemplo, fecha, producto, supermercado, promoción, cajero, método de pago y ticket.

  4. Identificar los hechos. Por ejemplo, unidades vendidas, importe unidades vendidas, coste unidades vendidas y beneficio.

Otros aspectos del modelo multidimensional:

  • Dimensiones degeneradas: Son dimensiones sin atributos, solo con identificador.

  • Dimensiones conformadas: Dos dimensiones están conformadas si son idénticas o una es subconjunto de otra en cuanto a valores y atributos.

  • Tablas de hechos con demasiadas dimensiones: Se pueden crear nuevas dimensiones para atributos relacionados y evitar confundir elementos de análisis con niveles de dimensión.

  • Minidimensiones: Se utilizan cuando los cambios son frecuentes, sobre todo con dimensiones con gran cantidad de filas.

  • Outriggers: Se añade un atributo clave de minidimensión a una dimensión.

  • Vistas de dimensión: Se utilizan para tratar con varias fechas.

En resumen, el modelo multidimensional es una forma de organizar los datos que facilita el análisis y la generación de informes. Se basa en la organización de los datos en hechos y dimensiones, y se puede implementar mediante diferentes esquemas como el modelo de estrella o copo de nieve.

2.1. Diseño dimensional

El modelado dimensional es una técnica de diseño de bases de datos utilizada para analizar datos de negocios. En lugar de utilizar un modelo relacional orientado a transacciones, el modelado dimensional utiliza un modelo de estrella o copo de nieve para organizar los datos del negocio en dimensiones y hechos. Las dimensiones son las categorías de datos que se utilizan para analizar los hechos, que son los datos numéricos que se miden. Por ejemplo, en un caso de estudio de ventas, las dimensiones podrían ser la fecha, el producto, la tienda y el cliente, mientras que los hechos podrían ser las ventas y los beneficios. El modelado dimensional facilita la creación de informes y análisis de datos, ya que los datos se organizan de una manera que refleja la forma en que las personas piensan sobre ellos.

El objetivo del modelado dimensional es proporcionar el mayor contexto posible a los hechos. Las dimensiones son la forma de proporcionar este contexto.

Características del modelado dimensional:

  • Es una técnica para la presentación de datos analíticos.

  • Ofrece a los usuarios de negocio datos fáciles de entender.

  • Ofrece alto rendimiento en las consultas.

  • Se basa en el modelo de datos multidimensional.

Componentes del modelo dimensional:

  • Hechos: Son los datos numéricos que se miden. Los hechos tienen medidas asociadas que se encuentran en las celdas de un cubo OLAP. Las medidas representan las propiedades de los hechos que se quieren estudiar. Las medidas pueden ser aditivas, semiaditivas o no aditivas.

    • Las medidas aditivas se pueden agregar a través de todas las dimensiones (por ejemplo, unidades vendidas).

    • Las medidas semiaditivas se pueden agregar solo en ciertas dimensiones (por ejemplo, stock de un producto no aditivo en el tiempo).

    • Las medidas no aditivas no se pueden agregar para obtener valores superiores (por ejemplo, las medias de ventas en niveles inferiores no se pueden usar para obtener valores superiores).

  • Dimensiones: Son las categorías de datos que se utilizan para analizar los hechos. Las dimensiones se utilizan para seleccionar y agrupar datos al nivel de detalle deseado. Las dimensiones se organizan en jerarquías, formadas por niveles, donde cada nivel representa un nivel de detalle de interés para el análisis de datos. Cada nivel puede tener sus propias propiedades. Las instancias de las dimensiones se conocen como miembros. Las dimensiones describen el quién, qué, dónde, cuándo, cómo y por qué asociado al evento o hecho. Las dimensiones suelen tener muchas menos filas que las tablas de hechos, pero tienen gran cantidad de columnas.

    • Jerarquías: Las dimensiones se organizan en jerarquías, formadas por niveles, donde cada nivel representa un nivel de detalle de interés para el análisis de datos. Puede haber jerarquías múltiples que compartan uno o más niveles inferiores. Algunos modelos imponen que las jerarquías formen árboles balanceados.

    • Miembros: Las instancias de las dimensiones se conocen como miembros.

  • Cubos: Estructura multidimensional para la captura y análisis de datos. Los cubos son una generalización de la hoja de cálculo 2D. Permiten el uso de jerarquías en las dimensiones. Un cubo es un conjunto de cubos relacionados, también considerado como la base de datos multidimensional. La intersección de los valores de los ejes forman celdas, cada celda vacía se denomina hecho y cada hecho tiene medidas asociadas. Los cubos pueden ser más o menos densos en función de la aplicación.

Esquemas:

  • Esquema en estrella: Tabla central (tabla de hechos) rodeada de tablas de dimensión desnormalizadas. Hay una tabla de dimensión para cada dimensión. La tabla de hechos contiene una fila para cada hecho, una columna para cada medida y una columna para cada dimensión que también es clave foránea a las tablas de dimensión. Las dimensiones en esquemas en estrella suelen ser generadas, facilitan los cambios en las dimensiones y contienen redundancia en los datos de los niveles superiores. Las dimensiones suponen un pequeño porcentaje del espacio total (1-5%). Las actualizaciones se realizan de forma centralizada por los procesos de carga y las consultas son más rápidas y sencillas. Un objetivo importante en el modelado multidimensional es proporcionar el mayor contexto posible a los hechos, y las dimensiones son la forma de proporcionar este contexto.

  • Esquema en copo de nieve: Algunas tablas de dimensión tienen relaciones con otras tablas de dimensión habiendo sufrido un proceso de normalización.

    • Normalización en modelado dimensional: La normalización es una obligación en sistemas operacionales, pero no en multidimensionales. La normalización en modelado dimensional puede llevar a un diseño complejo, dificultad de uso, descenso del rendimiento debido a joins, un ahorro de espacio despreciable y una penalización con índices bitmap.

Diseño de dimensiones:

  • Granularidad: Se debe establecer la granularidad del proceso, que responde a la pregunta: ¿qué representa cada fila de la tabla de hechos?. Se debe tratar de elegir siempre el máximo nivel de detalle posible.

  • Identificar dimensiones: Las dimensiones responden a la pregunta: ¿cómo describen los expertos los datos resultantes de los eventos de medida del proceso de negocio?. Las dimensiones dan contexto a las medidas y representan el quién, qué, dónde, cuándo, por qué y cómo asociado al evento.

  • Dimensiones de fecha: Las dimensiones de fecha son necesarias porque SQL no permite realizar operaciones extendidas con fechas. Se recomienda almacenar la clave como un valor numérico, usar flags e indicadores como texto y tener atributos dinámicos (por ejemplo, isCurrentDay, isCurrentMonth, isPrior60Days). La hora suele ir en una dimensión aparte.

  • Dimensiones de tienda: Pueden tener varias jerarquías en la misma tabla (por ejemplo, Tienda-Ciudad-Condado-Estado, Tienda-Distrito-Región).

  • Dimensiones de promoción: Es una dimensión causal, se debe incluir una fila "No promoción".

  • Dimensiones degeneradas: Dimensiones sin atributos, solo con identificador. Los atributos se han distribuido en otras dimensiones, pero se mantiene el número para poder realizar análisis de la cesta. Los números de control operacionales suelen dar lugar a dimensiones degeneradas.

  • Tablas factless: Comparten dimensiones con otras tablas, pero no tienen medidas, solo indican que se ha producido un evento. Se puede añadir un 1 a cada hecho para facilitar la cuenta.

  • Dimensiones junk: Agrupan atributos variados con dominios discretos y reducidos, como flags o indicadores. Guardan una fila para cada combinación de valores. Al crear una dimensión junk, se eliminan los flags de la tabla de hechos y se colocan en un marco dimensional útil.

Cambios en las dimensiones:

  • Las dimensiones pueden sufrir cambios. Es un error colocar todo lo que cambie en los hechos. Se debe definir una estrategia de cambio para cada atributo. Existen diferentes técnicas para manejar los cambios en las dimensiones (SCD, Slowly Changing Dimensions). Algunos de ellos son:

    • SCD Tipo 1: Sobrescribir el valor del atributo.

    • SCD Tipo 2: Añadir una nueva fila a la dimensión.

    • SCD Tipo 3: Añadir una nueva columna a la dimensión.

    • SCD Tipo 4: Añadir una minidimensión con los atributos cambiantes.

    • SCD Tipo 5: Minidimensión + Sobrescritura.

    • SCD Tipo 6: Añade una fila para capturar el cambio y una columna para poder hacer asignaciones previas.

    • SCD Tipo 7: Añadir una dimensión (vista) para asignaciones actuales.

Consideraciones adicionales:

  • La redundancia está en las dimensiones, nunca en los hechos.

  • Un almacén de datos se diseña sobre temas importantes relacionados con el negocio. Los sistemas operacionales se crean en función de cómo se llevan a cabo los procesos.

  • Es importante usar dimensiones compartidas comunes para diseñar modelos dimensionales que puedan integrarse.

  • La operación drill-across permite combinar cubos con dimensiones comunes que han de ser comparables (conformadas). Dos dimensiones están conformadas si son idénticas o una es subconjunto de otra en cuanto a valores y atributos.

  • En dimensiones conformadas, se debe ir a la mínima granularidad común.

  • Se deben usar varias tablas de hechos, cada una con su propia granularidad, medidas y dimensiones.

  • Si se siguen en la cadena de tiendas, la dimensión producto es la misma. Si es aprovisionamiento para la fabricación, hay que añadir otra dimensión diferente a los productos en venta.

  • Es importante no mezclar granularidades de hechos, como encabezado de pedido y líneas de pedido, en una única tabla de hechos. En su lugar, se debe asignar los hechos de nivel superior a un nivel más detallado o crear dos tablas de hechos separadas para manejar los hechos con diferente granularidad.

  • Es un error representar explícitamente la relación 1:M entre pedidos y líneas, ya que genera problemas al hacer slice/dice de líneas en atributos del pedido.

  • Es recomendable usar una dimensión de auditoría que permita saber si hay medidas fuera de límites, establecer la fiabilidad de los datos o utilizar técnicas de distribución de gastos generales.

En resumen, el modelado dimensional es un enfoque clave para diseñar bases de datos analíticas que faciliten la comprensión y el análisis de los datos. Se basa en la organización de los datos en hechos y dimensiones, utilizando modelos como el esquema de estrella o copo de nieve. El diseño dimensional implica decisiones importantes sobre la granularidad, la identificación de dimensiones, el manejo de cambios y el uso de dimensiones compartidas.

2.2. Gestión de datos multidimensionales

La gestión de datos multidimensionales es un enfoque para organizar y analizar datos que se caracteriza por el uso de modelos multidimensionales (MDM) diseñados para soportar el análisis de datos, en lugar de la gestión de transacciones en línea. Los modelos MDM son la base de la industria de Business Intelligence (BI) multimillonaria. A continuación se detallan los aspectos clave de la gestión de datos multidimensionales basándonos en las fuentes proporcionadas:

Características Clave de la Gestión de Datos Multidimensionales

  • Optimización para el Análisis: Los modelos MDM están diseñados para dar soporte al análisis de datos y no a la gestión de transacciones en línea. La gestión de datos multidimensionales facilita la creación de informes y análisis de datos, ya que los datos se organizan de una manera que refleja la forma en que las personas piensan sobre ellos.

  • Consultas Agregadas: Las consultas en un MDM agregan valores de medidas sobre valores de rangos de dimensión.

  • Flexibilidad: La gestión de datos multidimensionales ofrece flexibilidad para analizar los datos desde diferentes puntos de vista y combinarlos bajo cualquier dimensión.

  • Redundancia: En el modelado multidimensional es habitual la redundancia, lo que no es apropiado en sistemas transaccionales, pero la redundancia está en las dimensiones, nunca en los hechos.

OLAP y MDM

  • Base de los sistemas OLAP: El MDM es la base de los sistemas OLAP (On-Line Analytical Processing). Los sistemas OLAP dan respuestas rápidas a consultas que agregan gran cantidad de datos y presentan los resultados en forma multidimensional.

  • Almacenamiento multidimensional: Los sistemas OLAP almacenan sus datos en una base de datos multidimensional para dar respuesta a consultas de análisis.

Implementación y Diseño

  • Esquemas en estrella: Los datos se organizan utilizando un modelo de esquema en estrella o copo de nieve, en donde los datos del negocio se organizan en dimensiones y hechos. Los esquemas en estrella tienen una tabla central (tabla de hechos) rodeada de tablas de dimensión desnormalizadas. Una tabla de dimensión se crea para cada dimensión, que contendrá una columna clave, una columna para cada nivel (excepto la raíz), y una columna para cada propiedad de nivel. La tabla de hechos contiene una fila para cada hecho y una columna para cada medida y dimensión (que también son claves foráneas a las tablas de dimensión).

    • Las claves de las dimensiones suelen ser generadas, lo que supone un ahorro considerable de espacio en la tabla de hechos.

    • Las dimensiones desnormalizadas facilitan los cambios en las dimensiones y las consultas son más rápidas y sencillas.

  • Granularidad: Un aspecto importante en el diseño de un MDM es establecer la granularidad del proceso, que define qué representa cada fila de la tabla de hechos. Se debe tratar de elegir siempre el máximo nivel de detalle posible.

  • Dimensiones degeneradas: Son dimensiones sin atributos, solo con identificador, como los atributos ticket (Número, Fecha, Supermercado, etc.) que se han distribuido en otras dimensiones. Estas dimensiones se mantienen para poder realizar análisis de la cesta.

  • Dimensiones conformadas: La operación drill-across permite combinar cubos con dimensiones comunes que han de ser comparables (conformadas). Dos dimensiones están conformadas si son idénticas o una es subconjunto de otra en cuanto a valores y atributos. En dimensiones conformadas se debe ir a la mínima granularidad común.

  • Cambios en las dimensiones: Las dimensiones pueden sufrir cambios, por lo que es necesario definir una estrategia de cambio para cada atributo. No se debe colocar todo lo que cambie en los hechos.

  • Minidimensiones: Si los cambios en las dimensiones son frecuentes, sobre todo con dimensiones con gran cantidad de filas, se puede mover a una nueva dimensión los atributos cambiantes (minidimensión). En la minidimensión hay una fila para cada combinación (discretizada) de valores.

  • Vistas de Dimensión: Para manejar varias fechas se pueden definir varias claves externas en la tabla de hechos, pero puede haber problemas al hacer join de varias claves externas con la misma tabla de dimensión. La solución es crear la ilusión de varias tablas de fecha independientes mediante vistas de dimensión.

  • Tablas de hechos con demasiadas dimensiones: Se deben evitar nuevas dimensiones para atributos relacionados y confundir elementos de análisis con niveles de dimensión.

  • Manejo de varias granularidades: No se deben mezclar granularidades de hechos como cabecera de pedido y hechos de línea de pedido dentro de una única tabla de hechos. Se debe asignar los hechos de nivel superior a un nivel más detallado o crear dos tablas de hechos separadas para manejar los hechos con diferente granularidad. La asignación es el enfoque preferido.

  • Dimensiones junk: Las dimensiones junk son dimensiones auxiliares para evitar problemas de rendimiento al consultar en tablas con muchas filas.

En resumen, la gestión de datos multidimensionales es una técnica esencial para el análisis de datos, permitiendo una organización de los datos que facilita la consulta, el análisis y la toma de decisiones. Los modelos MDM, con sus cubos, hechos, medidas y dimensiones, son fundamentales para los sistemas OLAP y para la creación de informes de Business Intelligence.

2.3. Esquemas en estrella

Los esquemas en estrella son un modelo de organización de datos fundamental en el diseño de almacenes de datos y sistemas de gestión de datos multidimensionales. Este esquema se caracteriza por su estructura simple y eficiente, diseñada para facilitar las consultas y el análisis de datos.

Características principales de los esquemas en estrella

  • Tabla central de hechos: El esquema en estrella se compone de una tabla central, llamada tabla de hechos, que está rodeada de tablas de dimensiones. La tabla de hechos contiene las medidas o datos numéricos que se analizan, así como las claves foráneas que enlazan a las tablas de dimensiones.

  • Tablas de dimensiones desnormalizadas: Alrededor de la tabla de hechos se encuentran las tablas de dimensiones, que contienen los atributos que describen las dimensiones del negocio. Estas tablas están desnormalizadas, lo que significa que pueden contener redundancia, pero esto mejora el rendimiento de las consultas y simplifica el diseño.

  • Estructura: Una tabla de dimensión se crea para cada dimensión.

    • Cada tabla de dimensión contiene una columna clave, que es la clave primaria de la tabla de dimensión y se usa como clave foránea en la tabla de hechos.

    • Cada tabla de dimensión también contiene una columna para cada nivel de la jerarquía (excepto la raíz), y una columna para cada propiedad de nivel.

    • Las tablas de dimensión suelen tener menos filas que las tablas de hechos, pero tienen una gran cantidad de columnas.

  • Relaciones: La tabla de hechos se relaciona con cada tabla de dimensión a través de una relación uno a muchos, donde una fila en la tabla de dimensión puede estar relacionada con múltiples filas en la tabla de hechos. La tabla de hechos contiene una fila para cada hecho y una columna para cada medida y dimensión.

Ventajas de los esquemas en estrella

  • Simplicidad: La estructura simple del esquema en estrella facilita su comprensión e implementación.

  • Rendimiento de las consultas: Las consultas son más rápidas y sencillas debido a que hay menos joins y la desnormalización de las tablas de dimensión reduce la necesidad de múltiples joins.

  • Facilidad de uso: Los esquemas en estrella son muy útiles para presentar y consultar datos multidimensionales.

Consideraciones adicionales

  • Claves generadas: Las claves de las dimensiones suelen ser generadas, lo que supone un ahorro considerable de espacio en la tabla de hechos. También facilitan los cambios en las dimensiones y aíslan al Data Warehouse de cambios de clave en los sistemas operacionales. Las claves generadas también permiten manejar valores nulos o desconocidos y cambios en las dimensiones.

  • Redundancia: Las dimensiones desnormalizadas contienen redundancia en los datos de los niveles superiores. Sin embargo, las dimensiones suponen un pequeño porcentaje del espacio total (1-5%) y las actualizaciones se realizan de forma centralizada por los procesos de carga, lo que asegura la consistencia.

  • Contexto: Un objetivo importante en el modelado multidimensional es proporcionar el mayor contexto posible a los hechos, y las dimensiones son la forma de proporcionar este contexto.

  • Tablas de dimensión: Las tablas de dimensión describen el "Quién, Qué, Dónde, Cuándo, Cómo y Por qué" asociado al evento o hecho. Estas tablas incluyen atributos para elaborar informes, valores legibles y atributos para expresar parte de códigos con "significado".

  • Esquemas en copo de nieve: Un esquema en copo de nieve es un modelo en estrella con dimensiones normalizadas. La normalización de dimensiones implica una mayor complejidad y dificultad de uso, un descenso del rendimiento debido a joins adicionales, y un ahorro de espacio despreciable.

Ejemplos de un esquema en estrella

  • Un ejemplo común de esquema en estrella es el análisis de ventas, donde la tabla de hechos contendría las ventas y las tablas de dimensiones podrían ser tiempo, producto, y tienda.

  • Otro ejemplo es el análisis de datos de ventas de libros, con dimensiones como ciudad y libro. Se podrían incorporar más dimensiones como fechas y autores.

En resumen, los esquemas en estrella son una estructura simple, eficiente y ampliamente utilizada en el diseño de almacenes de datos, que facilitan la consulta y el análisis de datos multidimensionales. Su estructura clara y su capacidad para proporcionar contexto a los hechos, hacen que este esquema sea fundamental para la toma de decisiones y la generación de informes de Business Intelligence.

2.4. Tablas factless

Las tablas factless, también conocidas como tablas sin medidas, son un tipo especial de tabla de hechos que no contienen medidas numéricas, sino que se centran en las relaciones entre las dimensiones. Estas tablas se utilizan para registrar eventos o situaciones en las que la presencia del evento en sí mismo es el dato relevante, en lugar de una métrica cuantitativa asociada a ese evento.

Características principales de las tablas factless:

  • No tienen medidas numéricas: A diferencia de las tablas de hechos tradicionales, las tablas factless no almacenan valores numéricos como cantidades o importes. En cambio, pueden incluir un contador (=1) para indicar la ocurrencia de un evento.

  • Relación entre dimensiones: Su principal objetivo es registrar la relación entre las diferentes dimensiones involucradas en un evento. Por lo tanto, estas tablas comparten las dimensiones con otras tablas de hechos, pero tienen una granularidad diferente.

  • Granularidad: La granularidad de una tabla factless se define por la combinación de las dimensiones que la componen.

  • Utilidad: Las tablas factless son útiles cuando se quiere analizar eventos que no tienen una medida numérica asociada, o cuando el análisis se centra en la presencia o ausencia de una relación entre dimensiones. Por ejemplo, se pueden usar para analizar qué productos en promoción no se han vendido.

Ejemplos de uso de tablas factless:

  • Promociones: Se puede usar una tabla factless para registrar qué productos están en promoción, en qué fecha y en qué tienda.

  • Relación entre clientes y vendedores: Se puede usar una tabla factless para registrar las asignaciones de vendedores a clientes.

  • Eventos sin medidas: Se puede usar una tabla factless para registrar la asistencia a eventos, la participación en programas, etc.

Ejemplo específico: Análisis de promociones

Imagina que quieres saber qué productos en promoción no se han vendido. Si solo tuvieras una tabla de hechos con las ventas, solo podrías ver qué productos sí se han vendido. Para conocer lo que no se ha vendido, puedes utilizar una tabla factless que registre qué productos están en promoción en una tienda en un día específico. Esta tabla incluirá las dimensiones: Fecha Producto Tienda Promoción

Al combinar la tabla factless de promociones con la tabla de hechos de ventas, puedes obtener una visión completa de qué promociones fueron exitosas y cuáles no.

Ventajas de usar tablas factless:

  • Eficiencia: Permiten registrar la información de forma eficiente, sin tener que almacenar medidas numéricas que no son relevantes para el análisis.

  • Flexibilidad: Permiten analizar relaciones complejas entre dimensiones, facilitando la detección de patrones y tendencias.

  • Análisis de eventos: Son ideales para el análisis de eventos que no tienen una medida numérica asociada.

  • Evitan el crecimiento excesivo de tablas de hechos: Cuando queremos analizar eventos que no siempre se producen, es mejor usar una tabla factless que añadir un gran número de filas con valores nulos en la tabla de hechos principal.

Consideraciones de diseño:

  • Granularidad: Es importante definir correctamente la granularidad de la tabla factless, de modo que capture la información necesaria para el análisis.

  • Dimensiones: Se deben incluir todas las dimensiones relevantes para el análisis.

  • Relaciones: Se debe asegurar que la tabla factless tenga las relaciones adecuadas con otras tablas de hechos y dimensiones.

En resumen, las tablas factless son una herramienta poderosa para analizar eventos y relaciones entre dimensiones en un data warehouse. Permiten responder preguntas complejas que no se pueden resolver fácilmente con las tablas de hechos tradicionales. Su uso adecuado puede mejorar la calidad y la eficiencia del análisis de datos.

2.5. Dimensiones conformadas

Las dimensiones conformadas son un concepto clave en el diseño de almacenes de datos (Data Warehouses) y en el modelado dimensional. Se refieren a dimensiones que se utilizan en múltiples tablas de hechos dentro de un mismo modelo dimensional, lo que permite integrar y analizar datos de diferentes áreas del negocio de manera coherente.

Características de las dimensiones conformadas:

  • Reutilización: Son dimensiones que se comparten entre varias tablas de hechos. Esto significa que la misma dimensión se puede utilizar para analizar diferentes tipos de eventos o transacciones.

  • Consistencia: Las dimensiones conformadas deben ser idénticas o un subconjunto en cuanto a valores y atributos. Esto garantiza que la información se pueda agregar y comparar de manera consistente en diferentes tablas de hechos.

  • Integración: Permiten integrar datos de diferentes fuentes y procesos de negocio, facilitando el análisis global y la toma de decisiones estratégicas.

  • Operación drill-across: La principal ventaja de las dimensiones conformadas es que permiten la operación drill-across, la cual consiste en combinar cubos con dimensiones comunes que han de ser comparables.

Ejemplos de dimensiones conformadas:

  • Dimensión Fecha: Una dimensión fecha que se utiliza en diferentes tablas de hechos, como ventas, inventario, o compras. De esta forma, se puede analizar cómo evolucionan las ventas, el inventario y las compras a lo largo del tiempo.

  • Dimensión Producto: Una dimensión producto que se utiliza en las tablas de hechos de ventas y de inventario. Así, se puede analizar la relación entre las ventas y los niveles de inventario de cada producto.

  • Dimensión Tienda: Una dimensión tienda que se utiliza en las tablas de hechos de ventas y de devoluciones. De esta forma, se puede analizar el rendimiento de cada tienda en términos de ventas y devoluciones.

Importancia de las dimensiones conformadas:

  • Análisis multidimensional: Permiten realizar análisis multidimensionales complejos, combinando datos de diferentes tablas de hechos en función de las dimensiones compartidas.

  • Visión global del negocio: Facilitan la obtención de una visión global del negocio, al poder integrar y analizar datos de diferentes áreas y procesos.

  • Reducción de la complejidad: Al reutilizar las mismas dimensiones en diferentes tablas de hechos, se reduce la complejidad del modelo dimensional y se facilita su mantenimiento.

  • Calidad de los datos: Al utilizar dimensiones conformadas, se mejora la calidad de los datos, ya que se garantiza la consistencia y la integridad de la información.

Diseño de dimensiones conformadas:

  • Granularidad común: Las dimensiones conformadas deben tener la misma o la mínima granularidad común.

  • Identificadores: Las dimensiones conformadas deben tener los mismos identificadores.

  • Atributos: Las dimensiones conformadas deben tener los mismos atributos.

  • Jerarquías: Las jerarquías de las dimensiones conformadas deben estar bien definidas y ser coherentes entre las diferentes tablas de hechos.

Consideraciones al implementar dimensiones conformadas:

  • Planificación: Es importante planificar cuidadosamente las dimensiones conformadas, asegurándose de que satisfagan las necesidades de análisis de diferentes áreas del negocio.

  • Gobernanza de datos: Se debe establecer una gobernanza de datos para garantizar la consistencia y la calidad de las dimensiones conformadas a lo largo del tiempo.

  • Gestión de cambios: Se debe tener en cuenta que los atributos de las dimensiones pueden sufrir cambios con el tiempo.

  • Roles de dimensión: Una misma tabla de dimensión puede aparecer varias veces en la misma tabla de hechos, jugando diferentes roles. Por ejemplo, las fechas de pedido, envío, y entrega.

En resumen, las dimensiones conformadas son un elemento fundamental en el diseño de almacenes de datos, que permiten integrar y analizar datos de diferentes fuentes de manera coherente y consistente. Su uso adecuado es clave para obtener una visión global del negocio y tomar decisiones estratégicas basadas en la información. La operación drill-across se basa en la existencia de estas dimensiones comunes.

2.6. Minidimensiones

Las minidimensiones son una técnica de modelado dimensional que se utiliza para gestionar atributos de dimensiones que cambian con frecuencia, especialmente en dimensiones con gran cantidad de filas. El objetivo principal de usar minidimensiones es mejorar el rendimiento de las consultas y evitar la sobrecarga de las tablas de dimensiones cuando hay actualizaciones frecuentes de ciertos atributos.

Motivación y necesidad de las minidimensiones

  • Cambios frecuentes en atributos: En algunas dimensiones, ciertos atributos pueden cambiar con frecuencia. Por ejemplo, la edad, los ingresos o el estado civil de un cliente pueden cambiar a lo largo del tiempo.

  • Impacto en el rendimiento: Cuando se tienen dimensiones con una gran cantidad de filas y atributos que cambian con frecuencia, el rendimiento de las consultas puede verse afectado negativamente si estos cambios se gestionan directamente en la tabla de dimensiones principal.

  • Sobrecarga de la tabla de dimensiones: Almacenar todos los cambios de atributos directamente en la tabla de dimensiones puede llevar a un crecimiento excesivo de la misma, haciendo que las consultas sean más lentas.

Implementación y solución

La solución consiste en mover los atributos que cambian frecuentemente a una nueva tabla de dimensión separada, la minidimensión.

  • Nueva dimensión para atributos cambiantes: En lugar de almacenar los atributos que cambian con frecuencia en la tabla de dimensiones principal, se crea una nueva tabla de dimensión para almacenar las combinaciones de estos atributos.

  • Una fila por cada combinación: En la minidimensión, se guarda una fila para cada combinación discretizada de los valores de los atributos cambiantes. Es decir, las combinaciones posibles, no cada cambio específico.

  • Clave foránea en la tabla de hechos: En la tabla de hechos, se añade una clave foránea que hace referencia a la minidimensión. De esta manera, cada hecho se asocia a una combinación específica de valores de los atributos cambiantes en la minidimensión.

  • Relación con la dimensión principal: La tabla de dimensiones principal mantiene la información básica y estable, mientras que la minidimensión contiene la información que cambia con frecuencia.

  • Actualización de la tabla de hechos: La solución también requiere añadir una columna a la tabla de hechos.

Tipos de minidimensiones (SCD)

Existen diferentes formas de implementar minidimensiones, correspondientes a los diferentes tipos de Slowly Changing Dimensions (SCD), incluyendo:

  • SCD Tipo 4: Añadir una minidimensión. Se mueve una nueva dimensión los atributos cambiantes, con una fila en la minidimensión por cada combinación de valores.

  • SCD Tipo 5: Minidimensión + Sobreescritura (4 + 1). Consiste en añadir un outrigger a una dimensión. Se añade un atributo clave de minidimensión a la dimensión, y este atributo clave se actualiza con cada cambio de perfil.

  • SCD Tipo 6: Minidimensión + Sobreescritura (3+2+1). Se añade una fila para capturar el cambio (Tipo 2) y se añade una columna para poder hacer asignaciones previas (Tipo 3), permitiendo la actualización de atributos.

Ejemplo práctico

Supongamos que se tiene una dimensión de cliente con atributos como la edad, el nivel de ingresos y la frecuencia de compra. Estos atributos cambian con relativa frecuencia. En lugar de almacenar estos atributos directamente en la tabla de dimensión de cliente, se puede crear una minidimensión llamada "Demographics", que contenga las combinaciones de los rangos de edad, niveles de ingresos y frecuencia de compra.

  • Tabla de dimensión Cliente: Contiene información básica del cliente como el nombre, la dirección y la fecha de nacimiento.

  • Minidimensión Demographics: Contiene filas para combinaciones discretizadas de edad (rangos como "21-25", "26-30", etc.), frecuencia de compra (rangos como "Baja", "Media", "Alta") y nivel de ingresos (rangos como "<$30,000", "$30,000-$39,999").

  • Tabla de Hechos: Incluye una clave foránea que referencia a la minidimensión Demographics.

Ventajas de usar minidimensiones

  • Mejora del rendimiento: Al separar los atributos cambiantes en una tabla separada, se reduce el tamaño de la tabla de dimensión principal y se mejora el rendimiento de las consultas.

  • Reducción de la sobrecarga: Se evita el crecimiento excesivo de la tabla de dimensión principal.

  • Flexibilidad: Permite una mejor gestión de los atributos que cambian con frecuencia, permitiendo que los datos históricos se mantengan y analicen correctamente.

  • Soporte a diferentes tipos de análisis: Al relacionar cada hecho con una combinación concreta de los valores de los atributos cambiantes en la minidimensión, se facilita el análisis de cómo los cambios en estos atributos afectan a las medidas en la tabla de hechos.

Desventajas de usar minidimensiones

  • Complejidad: Añaden complejidad al modelo dimensional, lo que requiere una buena comprensión de cómo funcionan y cómo se deben utilizar.

  • Mantenimiento: Requieren un proceso de carga y mantenimiento adicional para actualizar las minidimensiones.

  • Potencial explosión de la minidimensión: Si se incluyen demasiados atributos o si los atributos tienen muchos valores posibles, la minidimensión puede crecer rápidamente.

En resumen, las minidimensiones son una técnica efectiva para gestionar atributos que cambian con frecuencia en dimensiones con gran cantidad de filas. Permiten mejorar el rendimiento de las consultas, reducir la sobrecarga de las tablas de dimensiones y analizar datos históricos de forma más eficiente. Sin embargo, requieren una buena comprensión del modelo dimensional y una planificación cuidadosa para evitar complicaciones innecesarias.

2.7. Dimensiones junk

Las dimensiones junk, también conocidas como dimensiones auxiliares o dimensiones de bandera, son un tipo de dimensión utilizada en el modelado dimensional para agrupar atributos variados con dominios discretos y reducidos, como flags o indicadores. Estas dimensiones se emplean cuando se tienen atributos que no encajan fácilmente en las dimensiones principales y que, si se incluyeran en la tabla de hechos, aumentarían su tamaño y complejidad.

Características principales de las dimensiones junk:

  • Agrupación de atributos: Las dimensiones junk agrupan atributos que no están relacionados directamente entre sí pero que comparten características de cardinalidad baja. Estos atributos suelen tener un número limitado de valores posibles.

  • Cardinalidad baja: Los atributos incluidos en una dimensión junk tienen un número reducido de valores posibles, lo que permite almacenar todas las combinaciones de valores en una tabla de dimensión relativamente pequeña. Por ejemplo, un atributo que representa un indicador booleano (verdadero o falso) o un atributo con tres valores posibles.

  • Eliminación de flags de la tabla de hechos: Al crear una dimensión junk, se eliminan los atributos tipo flag de la tabla de hechos y se colocan en un marco dimensional útil. Esto reduce el tamaño y la complejidad de la tabla de hechos.

  • Mejora del rendimiento: El uso de dimensiones junk puede mejorar el rendimiento de las consultas al evitar búsquedas complejas en la tabla de hechos. Además, la creación de índices bitmap sobre la columna de clave de la dimensión junk puede mejorar el rendimiento.

  • Una fila por cada combinación de valores: La dimensión junk guarda una fila para cada combinación posible de valores de los atributos que contiene. Por ejemplo, una dimensión que almacena 5 indicadores de 3 valores cada uno, contendrá 243 filas (35).

Ejemplos de atributos que pueden formar parte de una dimensión junk:

  • Indicadores booleanos (verdadero/falso, activo/inactivo).

  • Categorías con pocos valores (tipo de pedido, tipo de cliente, tipo de pago).

  • Banderas o flags que indican el estado de un proceso o evento.

  • Indicadores que señalan características concretas de un producto.

  • Atributos con dominios discretos y reducidos.

Cuándo usar dimensiones junk:

  • Cuando se tienen varios atributos que no encajan en las dimensiones existentes y que tienen un número limitado de valores posibles.

  • Cuando incluir estos atributos en la tabla de hechos aumentaría significativamente su tamaño y complejidad.

  • Cuando se busca mejorar el rendimiento de las consultas al evitar búsquedas complejas en la tabla de hechos.

  • Cuando se desea simplificar la estructura del modelo dimensional y hacerlo más fácil de entender.

Ejemplo práctico:

En un sistema de pedidos, se tienen los siguientes atributos:

  • Tipo de pedido: "Normal", "Urgente" o "Programado".

  • Forma de pago: "Tarjeta", "Efectivo" o "Transferencia".

  • Canal de venta: "Web", "Tienda" o "Teléfono".

En lugar de añadir estos tres atributos a la tabla de hechos de pedidos, se puede crear una dimensión junk que combine todas las combinaciones posibles (3 x 3 x 3 = 27 filas). En la tabla de hechos, se incluiría una clave foránea a la dimensión junk.

Ventajas de usar dimensiones junk:

  • Reducción del tamaño de la tabla de hechos: Al mover los atributos de flag a una tabla de dimensión, se reduce la cantidad de información almacenada en la tabla de hechos.

  • Simplificación del modelo: El modelo dimensional se vuelve más fácil de entender, ya que los atributos que no encajan bien en las dimensiones principales se agrupan en una dimensión específica.

  • Mejora del rendimiento de las consultas: Las consultas son más rápidas al evitar búsquedas complejas en la tabla de hechos y al permitir la creación de índices bitmap.

Desventajas de usar dimensiones junk:

  • Potencial crecimiento de la dimensión: Si se incluyen demasiados atributos, o si los atributos tienen muchos valores posibles, la dimensión junk puede crecer rápidamente.

  • Dificultad para entender los datos: Es necesario conocer el código y la codificación de las combinaciones para entender los datos almacenados en la dimensión junk.

En resumen, las dimensiones junk son una herramienta útil para simplificar y mejorar el rendimiento de los modelos dimensionales al agrupar atributos de baja cardinalidad que no encajan fácilmente en las dimensiones principales. Sin embargo, se debe tener cuidado de no abusar de ellas y evaluar cuidadosamente si su uso es apropiado para cada caso específico.

2.8. Roles o vistas de dimensión

Las vistas o roles de dimensión se refieren a la práctica de usar una única dimensión física para representar múltiples roles lógicos en una tabla de hechos. Esto es útil cuando una misma dimensión participa varias veces en una tabla de hechos, pero con diferentes significados o roles. En esencia, se crean vistas lógicas o aliases de la misma tabla de dimensión para que cada rol sea tratado de manera separada por las herramientas de análisis.

Motivación y necesidad:

  • Múltiples roles para una misma dimensión: En un modelo dimensional, es común que una misma dimensión, como la dimensión Fecha, participe en una tabla de hechos con diferentes roles. Por ejemplo, una tabla de hechos de pedidos podría tener la fecha del pedido, la fecha de envío solicitada y la fecha de envío real.

  • Ambigüedad en joins: Al hacer joins con la misma tabla de dimensión varias veces, SQL podría interpretar que todas las fechas son la misma. Por lo tanto, se necesita una forma de distinguir entre estos roles diferentes de la dimensión en la tabla de hechos.

Implementación y solución:

  • Vistas de dimensión: La solución es crear vistas lógicas o aliases de la misma tabla de dimensión para cada rol. Estas vistas son independientes para las herramientas de Business Intelligence.

  • Creación de vistas SQL: Se crean estas vistas usando sentencias SQL CREATE VIEW. Cada vista selecciona los datos de la tabla de dimensión base y les asigna nombres específicos para su rol en la tabla de hechos.

  • Por ejemplo, se podría crear una vista order_date para la fecha de pedido y otra vista req_ship_date para la fecha de envío solicitada.

  • Renombrar atributos: Los atributos en las vistas deben ser renombrados para evitar ambigüedades en los informes. Por ejemplo, en la vista order_date, el atributo date_key podría ser renombrado como order_date_key.

Ejemplo práctico con la Dimensión Fecha:

  • En una tabla de hechos de pedidos, la dimensión Fecha puede aparecer varias veces:

    • Fecha de pedido (Order Date).

    • Fecha de envío solicitada (Requested Ship Date).

    • Fecha de envío (Ship Date).

    • Fecha de la factura (Invoice Date).

    • Fecha de pago (Payment Receipt Date).

    • Fecha de devolución (Return Date).

  • Para cada uno de estos roles, se crea una vista de dimensión diferente.

  • Cada vista contiene los mismos datos, pero se presenta con nombres diferentes para evitar confusión y permitir que las herramientas de BI los traten por separado.

Beneficios de usar roles de dimensión:

  • Claridad: Facilita la comprensión del modelo y de los diferentes roles de una misma dimensión en una tabla de hechos.

  • Evita ambigüedades: Previene problemas al hacer joins en las consultas, ya que cada rol de la dimensión está claramente definido.

  • Flexibilidad: Permite que una misma tabla de dimensión sea reutilizada en múltiples contextos sin crear redundancia en la base de datos.

  • Análisis con diferentes perspectivas: Permite realizar análisis utilizando diferentes fechas relacionadas con un mismo evento.

Consideraciones adicionales:

  • Dimensiones compartidas: El uso de vistas de dimensión es crítico para diseñar modelos dimensionales que puedan integrarse, utilizando dimensiones compartidas entre diferentes tablas de hechos.

  • Matriz del bus: El uso de roles de dimensión se suele representar en una matriz del bus que muestra cómo cada proceso de negocio utiliza una dimensión concreta con un determinado rol.

  • Herramientas BI: Las herramientas de BI deben ser capaces de reconocer estas vistas como entidades separadas y permitir a los usuarios interactuar con ellas de forma individual.

  • Roles en otras dimensiones: Aunque el ejemplo más común es con la dimensión Fecha, la misma lógica se puede aplicar a otras dimensiones como la dimensión Cliente. Por ejemplo, una tabla de hechos podría tener un cliente comprador y un cliente receptor del envío.

En resumen, los roles o vistas de dimensión son una técnica fundamental para gestionar la complejidad en modelos dimensionales donde una dimensión participa con múltiples significados en una tabla de hechos. Permite el uso de una única dimensión física para representar varios roles lógicos, evitando ambigüedades y mejorando la claridad y la flexibilidad del modelo.

2.9. Outriggers

Los outriggers son un concepto del modelado dimensional que se refiere a tablas adicionales que están vinculadas a los atributos de una dimensión, aunque no son una parte habitual de la misma.

Características principales de los outriggers:

  • Vinculados a atributos de una dimensión: Un outrigger se relaciona con los atributos de una tabla de dimensión específica.

  • No son habituales: No son un componente común en los modelos dimensionales, y se usan con moderación.

  • Implican joins: El uso de outriggers implica realizar joins adicionales al consultar los datos, por lo que su uso debe ser moderado.

  • Reducción de redundancia: Se utilizan principalmente para evitar redundancia en dimensiones grandes o con datos compartidos entre diferentes dimensiones.

Uso principal de los outriggers:

  • Los outriggers se utilizan generalmente para introducir un grado de normalización las dimensiones, pero sin llevar la desnormalización al extremo del modelo en copo de nieve.

  • Sirven para evitar redundancia de información en dimensiones grandes.

  • Se usan cuando hay datos compartidos entre diferentes dimensiones, evitando la repetición de los mismos datos.

  • Sirven para mover atributos de una dimensión a otra tabla cuando estos atributos son usados por otras dimensiones, de tal manera que estos atributos estén en un lugar común.

Ejemplos de uso de outriggers:

  • Dimensión Cliente con información geográfica o demográfica: La Dimensión Cliente puede tener un outrigger que contenga información de ubicación geográfica o demográfica del cliente.

  • Atributos de fecha en la Dimensión Producto: En lugar de tener todos los atributos relacionados con la fecha (como la fecha de introducción del producto) directamente en la tabla de la Dimensión Producto, estos atributos se pueden mover a un outrigger llamado "Dimensión Fecha de Introducción del Producto". No obstante, en este caso habría que valorar si es más eficiente incluir estos atributos directamente en la tabla de la Dimensión Producto o relacionar la Dimensión Producto con la Dimensión Fecha.

Consideraciones al usar outriggers:

  • Complejidad: Introducen complejidad en el modelo dimensional, ya que se necesitan joins adicionales para acceder a la información.

  • Rendimiento: Al implicar joins, pueden tener un impacto negativo en el rendimiento de las consultas si no se usan de manera adecuada. Por ello, se debe usar con moderación.

  • Alternativas: Hay que valorar si el uso de outriggers es la mejor solución, o si es más eficiente incluir los atributos directamente en la tabla de dimensión o usar una tabla de hechos separada.

Relación con otros conceptos:

  • Snowflaking: El uso de outriggers se relaciona con el concepto de snowflaking, que es la normalización de las dimensiones. Sin embargo, el snowflaking suele ser contraproducente, por lo que se recomienda su uso solo cuando realmente sea necesario.

  • Dimensiones conformadas: Los outriggers pueden afectar la conformación de las dimensiones, ya que se debe asegurar que el outrigger tenga sentido para todas las tablas de hechos en las que se utilice la dimensión.

  • Tablas de hechos: Algunos atributos que podrían ser considerados para un outrigger podrían ser también implementados como una nueva tabla de hechos en función de la granularidad del modelo.

En resumen, los outriggers son una herramienta útil para evitar la redundancia en el modelo dimensional, especialmente en dimensiones grandes y con datos compartidos. Sin embargo, deben usarse con moderación debido a la complejidad y el impacto en el rendimiento que pueden generar. Al diseñar un modelo dimensional, es importante evaluar cuidadosamente la necesidad de usar outriggers y considerar otras alternativas.

3. Procesos ETL y modelado

3.1. Procesos ETL

Los procesos ETL (Extracción, Transformación y Carga) son fundamentales en la construcción de almacenes de datos y en el análisis de datos en general. Estos procesos permiten la integración de datos de diversas fuentes, su limpieza y transformación, y su carga en un destino, como un almacén de datos o un data lakehouse, para su posterior análisis. Los procesos ETL son esenciales para la creación de almacenes de datos, ya que estos recopilan y gestionan volúmenes masivos de datos estructurados provenientes de diversas fuentes.

Fases de un proceso ETL

  1. Extracción: En esta fase, los datos se extraen de diversas fuentes. Estas fuentes pueden ser bases de datos operacionales u OLTP, sistemas CRM o ERP, ficheros planos, APIs, o cualquier otra fuente que contenga datos relevantes. La extracción puede ser completa, donde se extrae todo el conjunto de datos, o incremental, donde solo se extraen los datos que han cambiado desde la última extracción. Para determinar los cambios, se pueden utilizar timestamps o comparaciones con extracciones anteriores usando sentencias MERGE.

  2. Transformación: Los datos extraídos se transforman para que sean adecuados para el análisis. Esta fase incluye operaciones de limpieza, normalización, estandarización, agregación, y otras transformaciones. La transformación puede involucrar la corrección de inconsistencias, la conversión de formatos, la aplicación de reglas de negocio y la consolidación de datos de diferentes fuentes.

  3. Carga: Finalmente, los datos transformados se cargan en el sistema de destino, que puede ser un almacén de datos, un data lakehouse o cualquier otro sistema de almacenamiento de datos. La carga puede ser en lotes o en tiempo real, dependiendo de los requisitos del sistema.

Herramientas para ETL

En el contexto de Microsoft, los pipelines de datos se creaban originalmente con SQL Server Integration Services (SSIS). Sin embargo, actualmente existen muchas otras herramientas disponibles para realizar procesos ETL.

Microsoft Fabric ofrece una serie de componentes que permiten definir pipelines de datos de forma sencilla, y en muchos casos sin tener que escribir código, para automatizar el proceso ETL. Los pipelines de Fabric encapsulan una secuencia de actividades relacionadas con el movimiento y procesamiento de datos y pueden incluir estructuras de programación como bucles y condicionales para definir la lógica de procesamiento. Los pipelines de Fabric pueden incluir actividades como:

  • Copia de datos: Permite mover datos entre diferentes fuentes y destinos.

  • Flujo de datos: Permite transformar los datos.

  • Cuadernos (notebooks): Permiten ejecutar código Python, Spark, SQL, etc.

  • Flujos de control: Permiten definir la lógica de ejecución del pipeline.

Los pipelines en Fabric se pueden crear desde cero o a partir de plantillas predefinidas. Una vez creado un pipeline de datos en Fabric, se puede ejecutar manualmente o programar su ejecución en un horario determinado.

Power BI también ofrece herramientas para la transformación de datos a través de Power Query. Esta herramienta permite realizar transformaciones de datos de forma sencilla sobre la marcha en el proceso de importación de datos, o posteriormente una vez que los datos han sido cargados. Power Query permite realizar transformaciones sobre columnas como la eliminación, cambios de nombre, y transformaciones básicas sobre el contenido, así como la transformación de modelos anchos a modelos largos.

Importancia de los procesos ETL

Los procesos ETL son esenciales para garantizar la calidad y la consistencia de los datos en los sistemas de análisis. Al extraer, transformar y cargar los datos de manera controlada, se asegura que los datos sean precisos, confiables y estén listos para el análisis. Además, los procesos ETL permiten automatizar la integración de datos de diferentes fuentes y reducir la complejidad de los sistemas de análisis.

ETL en el contexto de Data Warehousing

En el contexto de data warehousing, los procesos ETL son críticos para la población inicial y el mantenimiento continuo del almacén de datos. La población inicial implica extraer, transformar y cargar los datos desde las fuentes operacionales al almacén de datos. En la operación continua del almacén de datos, los procesos ETL se encargan de actualizar los datos regularmente para mantener la información al día. Los datos en un data warehouse se organizan en función de los temas importantes para el negocio, facilitando así el análisis. Los procesos ETL se encargan de extraer, limpiar y transformar los datos antes de cargarlos en el data warehouse.

ETL en el contexto de Data Lakes y Lakehouses

En un data lake, los datos se almacenan en su formato nativo sin imponer un esquema fijo, y los procesos ETL son los encargados de mover los datos desde los sistemas de origen. En un lakehouse, que combina la flexibilidad de los data lakes con la capacidad de consulta y análisis de los almacenes de datos, los procesos ETL también son fundamentales para la ingestión y procesamiento de datos, ya que se crea una capa de metadatos adicional ofreciendo un acceso mediante un esquema relacional que puede ser consultado en SQL. En un data lakehouse, herramientas como Delta Lake añaden capacidades transaccionales, incluyendo soporte para comandos DML (INSERT, DELETE, UPDATE y MERGE), y facilitan el procesamiento por lotes y streaming en tiempo real sobre los mismos datos.

En resumen, los procesos ETL son cruciales para el análisis de datos, ya que permiten extraer, transformar y cargar datos de diversas fuentes en un formato adecuado para el análisis. Las herramientas como Microsoft Fabric y Power BI facilitan la creación y gestión de pipelines de datos, lo que permite automatizar y simplificar estos procesos.

3.2. Metodología Kimball

La Metodología Kimball es un enfoque para el diseño de almacenes de datos (Data Warehouses), que se centra en la creación de modelos dimensionales que son fáciles de entender y usar para los usuarios de negocio. Esta metodología se basa en un proceso de cuatro pasos para la construcción de un Data Warehouse.

Pasos de la Metodología Kimball

  1. Seleccionar el proceso a modelar: Este paso implica identificar una actividad o proceso clave dentro de la organización que se beneficiará del análisis de datos. Algunos ejemplos de estos procesos incluyen la venta de productos, pedidos, envíos, inventario, llamadas, matriculación de estudiantes, acciones médicas o reclamaciones. Es fundamental observar y determinar cuáles son los procesos más importantes para la organización.

  2. Establecer la granularidad del proceso: En este paso, se define el nivel de detalle de la información que se almacenará en la tabla de hechos. Es decir, se responde a la pregunta: "¿Qué representa (significa) cada fila de la tabla de hechos?". Se debe intentar elegir el máximo nivel de detalle posible. Algunos ejemplos de granularidad incluyen:

    • Una fila por cada compra de un producto en una operación de compra de un cliente.

    • Una fila por cada línea de factura de un médico.

    • Una fila por cada tarjeta de embarque procesada en un aeropuerto.

    • Una fila diaria del nivel de inventario de cada producto en una tienda.

    • Una fila mensual por cada cuenta de un banco.

  3. Identificar las dimensiones: Las dimensiones proporcionan el contexto para analizar las medidas y responden a la pregunta: "¿Cómo describen los expertos los datos resultantes de los eventos de medida del proceso de negocio?". Las dimensiones representan el "quién, qué, dónde, cuándo, por qué y cómo" asociado al evento. Algunos ejemplos de dimensiones son:

    • Fecha

    • Producto

    • Cliente

    • Empleado

    • Tipo de transacción

  4. Identificar los hechos: Los hechos son las medidas numéricas que se analizan en el proceso de negocio y se determinan respondiendo a la pregunta: "¿Qué mide el proceso?". Estos hechos deben existir según la granularidad definida en el Paso 2. Los hechos con diferente granularidad estarán en otra tabla de hechos. Algunos ejemplos de hechos son:

    • Cantidad de productos vendidos.

    • Coste de productos vendidos.

Características adicionales de la Metodología Kimball

  • Modelado dimensional: La metodología Kimball se basa en el modelado dimensional, donde los datos se organizan en torno a tablas de hechos y dimensiones, facilitando el análisis y la consulta. Los datos se categorizan como hechos, que tienen medidas numéricas asociadas, y dimensiones, que caracterizan los hechos.

  • Énfasis en la facilidad de uso: La metodología está orientada a los usuarios de negocio, proporcionando datos fáciles de entender y de consultar.

  • Diseño iterativo: La metodología Kimball se basa en un enfoque iterativo, donde se construye el almacén de datos de forma incremental, comenzando con un subconjunto de datos y expandiéndose a medida que se conocen mejor las necesidades del negocio. Se recomienda un enfoque de desarrollo paulatino de los Data Marts.

  • Tablas de hechos: Las tablas de hechos contienen medidas numéricas y claves foráneas que apuntan a las tablas de dimensiones. Cada celda vacía se denomina "hecho" y cada hecho tiene medidas asociadas que se encuentran en las celdas. Las medidas representan las propiedades de los hechos que se quieren estudiar, como por ejemplo, para optimizarlas. Los cubos pueden ser más o menos densos en función de la aplicación.

  • Tablas de dimensiones: Las tablas de dimensiones se utilizan para seleccionar y agrupar los datos al nivel de detalle deseado. Las dimensiones se organizan en jerarquías formadas por niveles, y cada nivel puede tener sus propiedades. Las instancias de las dimensiones se conocen como miembros.

  • Granularidad: Se debe elegir la granularidad adecuada de los datos. Una granularidad más detallada permite responder a cualquier pregunta, pero puede generar grandes volúmenes de datos. Una granularidad menos detallada permite una mayor flexibilidad y manipulación de los datos, pero puede no responder a todas las preguntas. Se debe elegir el nivel más detallado posible.

  • Esquema en estrella: La Metodología Kimball promueve el uso de esquemas en estrella para organizar los datos, con una tabla de hechos central y tablas de dimensiones desnormalizadas.

  • Dimensiones degeneradas: Estas son dimensiones sin atributos, que solo tienen un identificador, por ejemplo, el número de ticket.

  • Dimensiones poco cambiantes (SCD): Hay diferentes tipos de SCD para manejar los cambios en los atributos de las dimensiones. Por ejemplo, SCD Tipo 2 añade una nueva fila a la dimensión para guardar la historia anterior al cambio.

  • Manejo de varias granularidades: Se debe tener cuidado al manejar diferentes niveles de granularidad en los datos. Se recomienda crear tablas de hechos separadas para cada nivel de granularidad o asignar los hechos de nivel superior a un nivel más detallado.

  • Vistas de dimensión: Para manejar varias fechas (solicitud, expedición, llegada, etc.), se pueden crear vistas de dimensión que simulan varias tablas de fecha independientes.

Ejemplos de aplicación

  • Análisis de ventas: Analizar qué productos se venden en función del supermercado, fecha y condiciones promocionales. Las dimensiones podrían ser fecha, producto, supermercado, promoción, cajero, método de pago y ticket. Los hechos podrían ser unidades vendidas, importe de unidades vendidas, coste de unidades vendidas y beneficio.

  • Análisis del aprovisionamiento: El proceso de aprovisionamiento (peticiones, pedidos, notificaciones de compra, facturación y pagos) se puede modelar con dimensiones como producto, fecha, vendedor, transacción y condiciones, y hechos como unidades e importe de la transacción.

  • Análisis de pedidos: Se puede modelar con una granularidad de una fila por cada línea de pedido. Las dimensiones podrían ser fecha de solicitud, fecha de envío, producto, cliente, vendedor y condiciones. Los hechos podrían ser unidades, total bruto, descuento y total neto.

En resumen, la Metodología Kimball es un enfoque práctico y efectivo para el diseño de almacenes de datos, que se centra en la creación de modelos dimensionales fáciles de entender y usar para los usuarios de negocio. Esta metodología es ampliamente utilizada en la industria del Business Intelligence.

3.3. Claves generadas

Las claves generadas, también conocidas como claves sustitutas o surrogate keys, son identificadores únicos que se crean para las tablas de dimensiones en un almacén de datos (Data Warehouse). Estas claves no tienen ningún significado inherente en el contexto del negocio y se utilizan en lugar de las claves operacionales o naturales que se usan en los sistemas de origen.

Características y Propósito de las Claves Generadas:

  • Identificadores Únicos: Las claves generadas aseguran que cada fila en una tabla de dimensiones tenga un identificador único. Esto es fundamental para mantener la integridad referencial en el modelo dimensional.

  • Secuenciales: Las claves generadas suelen ser números enteros secuenciales que se incrementan automáticamente a medida que se añaden nuevas filas a la tabla de dimensiones.

  • Aislamiento del DW: Las claves generadas aíslan el Data Warehouse de los cambios que puedan ocurrir en las claves de los sistemas operacionales. Esto evita que los cambios en las claves de los sistemas de origen afecten al Data Warehouse.

  • Tamaño Eficiente: Las claves generadas son más eficaces debido a su menor tamaño. Al ser típicamente de 4 bytes, permiten un gran número de combinaciones (alrededor de 4000 millones). Esto también reduce el tamaño de la tabla de hechos.

  • Independencia del Sistema Operacional: Las claves generadas no están ligadas a los sistemas operacionales. Esto permite que el Data Warehouse sea independiente de las claves de los sistemas de origen.

  • Soporte para valores nulos: Las claves generadas permiten manejar valores nulos o desconocidos en las dimensiones. Se puede añadir una fila especial en la dimensión para representar estos valores.

  • Manejo de cambios en dimensiones: Las claves generadas facilitan el manejo de los cambios que pueden ocurrir en las dimensiones, ya que las claves de las dimensiones pueden ser modificadas sin afectar la relación con la tabla de hechos. Esto es especialmente útil cuando se implementan estrategias de dimensiones de cambio lento (SCD, por sus siglas en inglés).

  • Simplificación de joins: Las claves generadas, por su tamaño reducido, hacen que los joins entre las tablas sean más rápidos.

  • Tabla de correspondencia: Se requiere una tabla de correspondencia en el área de staging para la carga ETL con las claves generadas.

  • Soporte para conflictos de claves: Las claves generadas soportan conflictos de claves en sistemas heterogéneos.

Uso de Claves Generadas en la Tabla de Hechos:

  • Identificación Única de Filas: Las claves generadas se utilizan en la tabla de hechos como claves externas (foreign keys) para relacionar cada fila de la tabla de hechos con sus dimensiones correspondientes.

  • Comprobación de progreso en ETL: Se usan también para la comprobación de progreso en cargas masivas de datos en el proceso ETL.

  • Soporte para actualizaciones: Facilitan la conversión de operaciones de update en operaciones de insert y delete.

  • Uso en esquemas padre/hijo: Se pueden usar en esquemas padre/hijo, donde filas de una tabla de hechos pueden ser padre de otras en una tabla de hechos con menor granularidad.

Consideraciones de Diseño:

  • Es esencial no usar claves operacionales en las dimensiones del Data Warehouse.

  • Se debe generar nuevas claves secuenciales y usarlas solamente para joins entre las tablas.

Beneficios de las Claves Generadas:

  • Rendimiento: Mejoran el rendimiento de las consultas, ya que los joins entre tablas utilizando claves generadas suelen ser más rápidos que los joins utilizando claves operacionales.

  • Mantenibilidad: Facilitan el mantenimiento del Data Warehouse, ya que los cambios en los sistemas operacionales no afectan directamente la estructura del Data Warehouse.

  • Flexibilidad: Permiten una mayor flexibilidad en el diseño del Data Warehouse, ya que las claves generadas pueden ser adaptadas a las necesidades del modelo dimensional.

  • Calidad de los datos: Mejoran la calidad de los datos, ya que las claves generadas garantizan la integridad referencial entre tablas.

En resumen, las claves generadas son un componente esencial en el diseño de un almacén de datos. Proporcionan una manera eficiente y confiable de identificar las filas en las tablas de dimensiones y mejorar el rendimiento de las consultas. Su uso es fundamental para garantizar la integridad de los datos y la mantenibilidad del Data Warehouse.

3.4. Tipos de snapshots para las tablas de hechos

Los snapshots o instantáneas en las tablas de hechos son un tipo de tabla que captura los datos en un punto específico en el tiempo. Hay diferentes tipos de snapshots utilizados en el modelado dimensional de data warehouses, cada uno con su propia periodicidad, granularidad, dimensión de fecha, hechos, y cómo gestiona la actualización de los datos.

Los tres tipos principales de snapshots son:

  • Snapshot periódico (periodic snapshot):

    • Mide los niveles de inventario a intervalos regulares y predecibles.

    • Generalmente, cada fila de la tabla de hechos representa un periodo de tiempo y el valor de una métrica.

    • Su granularidad es de una fila por período de snapshot más otras dimensiones.

    • La dimensión de fecha se refiere a la fecha de la toma de la instantánea.

    • Los hechos representan el rendimiento acumulativo para ese intervalo de tiempo.

    • Se actualizan solo si hay correcciones de errores. Si no, no se actualizan.

    • Por ejemplo, se podría tener un snapshot diario de los niveles de inventario de cada producto en cada tienda. La tabla de hechos guardaría cada una de estas instantáneas.

    • Este tipo de snapshot es muy útil para analizar tendencias a lo largo del tiempo, aunque puede dar lugar a tablas de hechos muy grandes.

    • La frecuencia de los snapshots puede ser reducida usando diferentes granularidades, como por ejemplo un inventario diario para los últimos 60 días, inventario semanal para las fechas anteriores y un inventario mensual para hace dos años.

  • Transacciones:

    • Captura cada evento individual que afecta al proceso.

    • Cada fila de la tabla de hechos representa una transacción individual.

    • Su granularidad es de una fila por transacción.

    • La dimensión de fecha se refiere a la fecha de la transacción.

    • Los hechos reflejan el rendimiento de la transacción.

    • Generalmente no se actualizan a menos que haya una corrección de errores.

    • Este tipo de tabla de hechos permite medir la frecuencia y tiempos según el tipo de transacción.

    • Por ejemplo, una tabla de hechos que registra cada venta, cada click en una página web o cada transacción de inventario.

    • En el caso del inventario, se registraría en la tabla de hechos cada vez que se recibe un producto, se reserva, se devuelve, se coloca en almacén, se envía al cliente, etc..

  • Snapshot acumulativo (accumulating snapshot):

    • Se utiliza para procesos con fechas de inicio y fin bien definidas, e hitos intermedios.

    • Cada fila representa la evolución de un producto en la organización.

    • Su granularidad es de una fila por cada instancia de un proceso o pipeline.

    • Incluye múltiples fechas que representan los hitos del pipeline.

    • Los hechos reflejan el rendimiento para la ocurrencia del pipeline.

    • Se actualiza cada vez que ocurre una actividad del pipeline.

    • En lugar de añadir filas, se modifican las existentes en función de los eventos.

    • Requiere que el producto se identifique de forma única.

    • Por ejemplo, se crea una fila cuando se recibe un producto y esta fila se va actualizando a medida que se inspecciona, se coloca en almacén, se envía al cliente, etc.. Es menos común que los otros dos tipos.

En resumen, la elección del tipo de snapshot para una tabla de hechos dependerá de la naturaleza del negocio y de los requisitos de análisis. Se deben considerar factores como la periodicidad de los datos, la necesidad de análisis históricos y el impacto en el rendimiento del sistema. A veces, la mejor solución puede ser una combinación de diferentes tipos de tablas de hechos.

4. Consultas OLAP

Las consultas OLAP son el método para extraer y analizar datos de los sistemas OLAP (On-Line Analytical Processing), que están optimizados para el análisis de datos, a diferencia de las bases de datos operacionales u OLTP. Los sistemas OLAP proporcionan respuestas rápidas a consultas que agregan gran cantidad de datos y presentan los resultados en forma multidimensional.

Las consultas OLAP se realizan utilizando lenguajes específicos como las extensiones OLAP de SQL y el lenguaje MDX.

Extensiones OLAP de SQL Las extensiones OLAP de SQL permiten realizar consultas multidimensionales utilizando SQL. Algunas de las funciones más utilizadas en las extensiones OLAP de SQL son:

  • GROUP BY: Crea grupos para cada valor en una columna especificada.

  • ROLLUP: Calcula subtotales a diferentes niveles de agregación de las dimensiones, incluyendo un nivel de detalle y un total. Los grupos se representan como nulos.

  • CUBE: Calcula todas las combinaciones posibles de subtotales sobre las dimensiones especificadas. También calcula el total general. Es reescribible en SQL estándar con GROUP BY y UNION.

  • GROUPING: Permite distinguir entre un valor nulo en los datos y un valor nulo como resultado de una operación de agrupación. Se puede mejorar la legibilidad combinando GROUPING con CASE WHEN para utilizar etiquetas adecuadas. En Oracle, se puede utilizar la función DECODE para obtener una sintaxis similar a una función IF de hoja de cálculo.

  • OVER PARTITION BY: Produce resultados de agregación junto a las filas. Reduce grupos a una fila. Se puede usar para realizar particiones por ID de producto, mostrar el nombre y el total de ventas.

  • RANKING: Permite clasificar los datos, se puede usar con partición de grupo.

Las consultas SQL también pueden utilizar vistas materializadas, que son tablas precalculadas que almacenan los resultados de una consulta. El optimizador de consultas puede reescribir la consulta en términos de la vista materializada. Las vistas materializadas pueden ser de solo lectura o actualizables, y se pueden actualizar de forma completa o rápida.

  • Las vistas materializadas se pueden construir de forma diferida (BUILD DEFERRED), creando la vista pero sin llenarla de datos, o de forma inmediata (BUILD IMMEDIATE), creando la vista pero sin llenarla de datos.

  • La actualización de las vistas materializadas se puede realizar bajo demanda o cuando se realiza un cambio en las tablas subyacentes.

  • Una vista materializada puede incluir joins y agregados en una sola tabla. Sin embargo, para hacer una actualización rápida, la vista materializada tiene que ser sencilla, sin joins, subconsultas, UNION, CONNECT BY, ORDER BY, o GROUP BY.

  • Si se usa la cláusula FOR UPDATE, la vista debe ser lo suficientemente sencilla para poder realizar una actualización rápida. Se puede utilizar la función EXISTS para solucionar esto.

  • Para que una vista materializada sea actualizable de forma incremental, se debe crear un log de vista materializada para determinar las filas afectadas por los cambios. El log debe incluir la opción INCLUDING NEW VALUES.

Lenguaje MDX

MDX (Multidimensional Expressions) es un lenguaje de consulta para bases de datos OLAP propuesto por Microsoft en 1997. MDX permite consultar objetos multidimensionales, como los cubos, y devolver conjuntos de celdas multidimensionales que contienen los datos del cubo, lo que facilita la integración con herramientas OLAP. A diferencia de las extensiones OLAP de SQL, MDX está diseñado específicamente para trabajar con datos multidimensionales.

Los conceptos clave de MDX incluyen:

  • Tuplas: Permiten acceder a celdas o "rodajas" del cubo (slice/dice). Se definen por un conjunto de coordenadas que especifican una intersección única de miembros en las dimensiones del cubo.

  • Conjuntos: Colecciones de tuplas.

  • La sentencia SELECT: Se utiliza para asignar conjuntos a dos ejes con nombre (COLUMNS, ROWS). En los ejes se sitúan las dimensiones, y los miembros ocupan su lugar en sus ejes asociados. SELECT define un nuevo cubo donde las posiciones en los ejes son ocupadas por los miembros o combinaciones de miembros de las tuplas de los conjuntos. Cada punto del espacio del cubo es resuelto a partir del cubo del FROM. WHERE puede interpretarse como un nuevo eje (slicer axis) que restringe el cubo indicado en FROM.

  • MeasureGroupMeasures(): Devuelve una tabla con todas las medidas de un grupo de medidas especificado.

  • Crossjoin: Permite combinar conjuntos de tuplas de diferentes dimensiones en un único conjunto. Se puede utilizar el operador * en lugar de CROSSJOIN.

  • Non Empty: Elimina celdas vacías de un eje en la sentencia SELECT.

  • Ordenación: Se puede ordenar un conjunto de tuplas por una expresión. La ordenación jerárquica es la predeterminada. Se puede romper la ordenación jerárquica con la opción BASC o BDESC.

  • TopCount: Devuelve un conjunto de las n tuplas superiores de un conjunto, ordenadas por una expresión.

  • Except: Elimina elementos comunes entre dos conjuntos.

  • BottomCount: Devuelve un conjunto de las n tuplas inferiores de un conjunto, ordenadas por una expresión.

  • Filter: Permite filtrar un conjunto por una expresión.

  • Expresiones dinámicas con miembros calculados: Permite añadir nuevos miembros y asignarles una expresión. Los miembros no se definen en la jerarquía.

En resumen, las consultas OLAP, ya sea a través de extensiones SQL o MDX, son fundamentales para analizar datos multidimensionales y obtener información valiosa para la toma de decisiones.