Una breve introducción al modelado dimensional
Para comenzar, aquí hay una breve introducción a qué es un esquema en estrella y qué es el modelado dimensional.
Un esquema en estrella se puede explicar mejor con el siguiente diagrama:
Puedes ver a primera vista por qué se llama “Esquema en estrella”.
Un esquema en estrella consta de dos tipos de objetos:
La(s) tabla(s) de hechos
Las tablas de hechos describen los procesos de negocio. Más precisamente, contienen información y números que describen eventos en los procesos comerciales.
Pueden ser: Datos de Recursos Humanos, como salarios o Headcounts. Datos sobre eventos como la entrada de una persona a un edificio. Las Dimensiones.
Estas tablas contienen datos descriptivos, como: La Fecha de la transacción Información sobre el cliente La información geográfica sobre la transacción
Debido a que existen múltiples dimensiones, este enfoque de modelado también se denomina modelado de datos dimensionales.
Pero el término “esquema en estrella” es más fácil de entender y se utiliza mucho más.
Este enfoque de modelado tiene múltiples beneficios:
Fácil de entender y utilizar por parte del usuario empresarial Tiene una separación clara entre datos transaccionales y descriptivos Puede cubrir escenarios empresariales complejos Se utiliza ampliamente al crear modelos de informes
Puede considerarse el estándar de facto para enfoques de modelado en escenarios de análisis de datos y generación de informes.
Se puede decir que una Dimensión es fácil de definir, como hice anteriormente. Pero las dimensiones son de varios tipos.
Exploremoslos.
Los principales tipos de dimensiones.
Hay tres tipos de dimensiones:
Dimensiones regulares
Por ejemplo, cliente, producto o geografía. Dimensiones no deseadas.
Estos mezclan diferentes entidades en una dimensión en lugar de tener múltiples dimensiones pequeñas. Dimensiones degeneradas
Se trata de datos que cambian con frecuencia, como el número de transacción.
A continuación, exploremos estos tipos de dimensiones.
Dimensiones regulares
Las dimensiones regulares son el tipo más común de dimensiones.
Contienen información para describir una entidad comercial.
Un ejemplo de dicha entidad es el Cliente.
Una Entidad Regular sigue estas reglas:
Cada fila explica una aparición de una entidad Cada fila es identificable de forma única Los datos están desnormalizados Los datos desnormalizados contienen duplicación de información (a diferencia de los datos normalizados en la tercera forma normal)
En la sección Referencias a continuación, puede encontrar dos enlaces que explican la tercera forma normal y cómo modelar datos en esta forma.
Además, una dimensión regular contiene:
Jerarquías Atributos Adicionales Información sobre la historización de la ocurrencia
Aquí, un extracto de la dimensión Producto del conjunto de muestra de ContosoRetailDW:
Verás las siguientes columnas.
Clave de cliente
Esta es la clave sustituta única para cada fila.
Consulte a continuación qué es una clave sustituta. Etiqueta del cliente
Esta columna contiene el número de Cliente. Este es el nombre completo de la clave comercial
El nombre completo del cliente, sexo y bandera del propietario de la casa.
Estas columnas contienen información adicional sobre el continente del cliente, “región país”, estado, provincia y ciudad.
Estas columnas describen la jerarquía geográfica. Como puede ver, el mismo continente, “región país” y nombre de provincia estatal aparecen varias veces en los datos. Estas columnas son la parte desnormalizada de la tabla de dimensiones.
Las jerarquías, al igual que la jerarquía geográfica, son esenciales para agrupar y agregar datos.
A los usuarios de informes les encantan porque les permiten ver una visión más amplia de los resultados.
Las dimensiones pueden tener varias jerarquías.
Dimensiones basura
Este es un tipo especial de dimensión.
Imagine el siguiente escenario:
Su modelo de datos contiene varias entidades comerciales con solo una pequeña cantidad de filas. Digamos menos de 10 filas.
Terminas con muchas dimensiones que pueden confundir a los usuarios.
Puede agruparlos en un número menor de las llamadas “Dimensiones basura”.
Por ejemplo:
Las columnas tienen el siguiente significado:
IDENTIFICACIÓN
El ID único para cada fila. Área
Una columna de agrupación para comprender el alcance de cada grupo o fila. ID de área
Un ID único para cada fila de cada grupo. Esta columna puede ayudar a ordenar filas dentro de cada grupo.
Alternativamente, puede contener la clave comercial. Nombre
El nombre de cada fila Descripción
Puede ser una columna descriptiva o puede contener cualquier otra información sobre cada fila.
Si es necesario, agrego una columna de clasificación separada para garantizar que las filas aparezcan en el orden correcto cuando el orden alfabético no es útil.
Otro ejemplo de dimensión basura es una dimensión de medida.
Puede utilizar dicha dimensión para permitir que el usuario seleccione qué medida mostrar en el informe.
Pero tenga cuidado de no agrupar dimensiones más pequeñas en la misma dimensión basura cuando ambas deberían poder seleccionarse para generar un resultado.
Por ejemplo, puede combinar dos dimensiones utilizadas para seleccionar transacciones en una dimensión basura. La selección en un área podría excluir filas de otra área, lo que puede resultar contraproducente.
Dimensiones degeneradas
Una dimensión degenerada es una dimensión que tiene una relación directa con cada transacción en la tabla de hechos.
Un ejemplo común de dimensión degenerada es un número de transacción.
Puede tener millones de transacciones, que no tendría sentido almacenar en una tabla de dimensiones.
Normalmente, dicha información se almacena en la tabla de hechos junto con los valores de la transacción.
Aquí hay un extracto de la tabla de Ventas en Línea con el Número de Orden de Venta:
En este caso, la columna “Número de pedido de venta” es la dimensión degenerada.
La tabla de datos de Ventas en línea contiene información sobre 1’674’320 pedidos. Cada pedido tiene varias filas; uno para cada línea de pedido.
Pero podemos agregar un filtro al informe para que el usuario pueda buscar información sobre una transacción específica, si es necesario.
Reutilización de dimensiones
Este es un tema más general en el modelado de datos.
Las dimensiones utilizadas por múltiples hechos se denominan dimensiones conformadas.
Un ejemplo de dimensión conformada es la dimensión del producto.
En el conjunto de muestra de ContosoRetailDW, los datos de ventas minoristas y en línea utilizan la dimensión del producto.
Como ambos usan la misma dimensión de la misma manera, ambos pueden usar la misma dimensión.
Otra dimensión conformada es la dimensión de fecha o calendario.
Casi todas las tablas de hechos contienen información de fechas.
No es raro agregar atributos a una dimensión conformada que solo utiliza un subconjunto de todas las tablas de hechos. Esto ayuda a reducir el número de dimensiones.
Planificación de dimensiones con hechos
Al planificar el modelo dimensional, utilizo una matriz de dimensiones.
En el kit de herramientas DWH, esto se denomina matriz de bus (a partir de la página 109).
Ambos términos son intercambiables.
La matriz conecta las tablas de hechos con las tablas de dimensiones.
La siguiente imagen muestra la matriz de dimensiones de una parte del modelo de datos de Contoso:
Siempre pongo primero la dimensión Fecha, ya que se usa en casi todos los casos.
Como puede ver, de esta manera puede ver inmediatamente qué dimensión utiliza cada tabla de hechos.
Esto ayuda mucho a la hora de construir el modelo de datos.
Normalmente, compilo esta matriz con el cliente para definir la estructura del modelo de datos y los ejes de reporte.
Cada eje de informes filtra los resultados. Esto se llama rebanar. De aquí proviene el término “Slice and Dice”.
No incluye detalles técnicos pero muestra cómo los procesos de negocio se conectan con las dimensiones.
Otros conceptos en Dimensiones
El modelado dimensional incluye algunos conceptos más.
Los más importantes son:
Clave sustituta Dimensiones que cambian lentamente
Una clave sustituta es una clave técnica que no está relacionada con la clave comercial.
Una clave comercial puede ser:
Número de producto ID de empleado Número de cuenta
Una clave sustituta es un número o una clave compuesta que combina la clave comercial con una clave de tiempo, como una fecha.
Pero descubrimos el verdadero poder de una clave sustituta sólo cuando utilizamos dimensiones que cambian lentamente.
Imagine el siguiente escenario:
Varios representantes de aseguramiento son responsables de los clientes en una región geográfica específica.
Ahora, un cliente se traslada de una región a otra.
¿Qué representante puede recibir el bono de ventas para el cliente en mudanza?
La respuesta correcta debería ser:
Un representante antes de la mudanza. Otro después de la mudanza.
Cuando asigna una clave sustituta al cliente, puede tener dos filas para el mismo cliente con el mismo número de cliente.
Uno antes de la mudanza con la dirección anterior. Un segundo después de la mudanza con la nueva dirección.
De esta forma no se producen conflictos y los datos se distribuyen correctamente.
Este enfoque de modelado para historizar datos de dimensiones se denomina Dimensión 2 que cambia lentamente (SCD2).
Estos dos conceptos son clave para recibir el resultado correcto.
Puede encontrar más detalles sobre ambos conceptos después de la página 113 en el kit de herramientas DWH mencionado.
La única dimensión con una clave sustituta legible es la tabla de fechas.
Esta tabla obtiene una representación numérica de cada fecha en formato AAAAMMDD.
Esto facilita el cálculo del ID de dimensión a partir de los hechos y ayuda con la clasificación.
Conclusión
Saber diseñar un modelo dimensional es clave para un buen modelo de datos.
Los usuarios agradecerán poder comprender claramente qué entidad, o parte de un proceso de negocio, describe cada dimensión.
En la mayoría de los casos, la tabla de hechos es invisible para los creadores del informe porque no contiene información descriptiva.
La única excepción son las dimensiones degeneradas.
Al comenzar con un nuevo modelo de datos, cree una matriz de dimensiones.
Esta matriz ayuda a todos los miembros del proyecto a describir cómo se configurará el modelo de datos y qué posibilidades de generación de informes existen.
También puede hacerlo público para ayudar a los creadores de informes a comprender cómo utilizar el modelo de datos.
Imagine que un creador de informes lo llama y le pregunta: “¿Por qué no puedo dividir los datos según la dimensión xyz?”, y la respuesta se encuentra en la matriz de dimensiones.
He creado varios modelos de datos con este enfoque y siempre fue beneficioso.
Pero lo más importante es: ¡recuerde quiénes son los usuarios y consumidores de su modelo de datos!
Los usuarios del informe no tienen acceso al modelo de datos.
Pero puede permitirles crear nuevos informes o una tabla dinámica de Excel conectada a su modelo de datos. En ese momento se convierten en diseñadores de informes. Deben comprender el modelo de datos sin formación, utilizando únicamente su conocimiento de los procesos de negocio que les interesan.
Por eso, siempre es importante tener un modelo de datos fácil de usar.
Referencias
La referencia principal de este artículo es el kit de herramientas de almacenamiento de datos de Kimball.
Puedes obtener el PDF del libro y todos los materiales desde aquí:
Como en mis artículos anteriores, utilizo el conjunto de datos de muestra de Contoso. Puede descargar el conjunto de datos ContosoRetailDW de forma gratuita desde Microsoft aquí. Puede utilizar los datos de Contoso libremente bajo la licencia MIT, como se describe en este documento.