Esquema en estrella: muchas dimensiones o dimensiones amplias

Un usuario Pregunto ✅

boca87

Hola todos

Tengo una pregunta sobre el modelado de datos y no pude encontrar una mejor práctica sobre cómo manejarla.

Me pregunto si es mejor crear una tabla de hechos amplia y más dimensiones o viceversa.

Por tabla de hechos amplia con muchas dimensiones me refiero a algo como esto:

Muchas pequeñas dimensionesMuchas pequeñas dimensiones

La alternativa sería solo una tabla de hechos delgada, pero tablas de dimensiones más amplias:

Slim Fact, amplias dimensionesSlim Fact, amplias dimensiones

Por supuesto, nuestros casos de uso del mundo real son mucho más complejos que esta pequeña demostración, sin embargo, creo que muestra el punto.

Mis pensamientos para el modelo 1:

– Más fácil para los creadores de informes encontrar los campos correctos

– Más fácil de cambiar o mejorar

Mis pensamientos para el modelo 2:

– El uso de jerarquías de Power BI es más fácil

– Gracias a las carpetas de visualización, aún puede estar muy bien organizado

¿Tiene alguna literatura sobre esto o alguna de las mejores prácticas que le gustaría compartir?

sería muy bienvenido

Anónimo

Esta es una pregunta muy amplia, pero la respuesta breve es que, en general, demasiadas dimensiones son malas. Puede tener muchas dimensiones diferentes, pero a medida que se acerca a 20 o 30 en total, es casi seguro que tiene mejores opciones de modelado en el nivel de origen. 1 dimensión con 20 atributos es buena, 20 dimensiones con 1 atributo cada una no es tan buena. Los problemas que vienen con un gran número de dimensiones son que pueden crear ambigüedad y complicar el corte/filtrado/relaciones entre tablas a medida que su modelo se vuelve más complejo.

Recomiendo encarecidamente los cursos de SQLBI (los cursos de introducción son gratuitos y aún contienen toneladas de información útil) y cualquiera de sus artículos. Cubren bastante bien el modelado de datos de nivel superior. https://www.sqlbi.com/p/introduction-to-data-modeling-for-power-bi-video-course/

boca87

En respuesta a Anónimo

Está bien. Gracias. Su respuesta coincide principalmente con mi experiencia e intuición.

Pero avancemos un poco más y digamos que tenemos dos tablas de hechos: una para las ventas reales y otra para las ventas planificadas. Sin embargo, la tabla del plan no es tan granular como las ventas reales y solo planea el monto por mes, equipo y cliente. Agregué las líneas verdes para estas relaciones.

imagen.png

Problema con estas relaciones verdes: todas son de muchos a muchos. Entonces, ¿cuál sería una buena manera aquí. Mis pensamientos para diferentes opciones:

1. Extraiga las dimensiones del plano de la tabla de dimensiones y déles a cada una su propia tabla (que sería similar a mi primer enfoque en la publicación original)

2. Cree una entrada ficticia en las tablas de dimensiones. Esto solo tiene la información sobre las dimensiones planificadas y NULL para las no utilizadas. Por ejemplo:

ID de equipo | Nombre del equipo | ID de empleado | Nombre de empleado

1 | Equipo A | 999 | Maniquí de planificación

De esta manera, todavía puedo comparar el plan real con el plan.

3. De alguna manera poner la planificación en la tabla de hechos original.

4. Deshazte de todo el esquema de estrella y vuelve a un copo de nieve.

Por cierto. Estoy buscando más una discusión general y consejos, no una solución para este caso especial. Mi caso de uso real es mucho más grande, pero ¿no es siempre 😉

gracias y saludos

Patricio

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *