cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Syndicate_Admin
Administrator
Administrator

Pregunta sobre la construcción de un modelo de datos adecuado

Hola, me gustaría saber si mi modelado de datos funciona para Power BI.

El conjunto de datos que estoy utilizando es un curso de capacitación para estudiantes y empresas. Los datos originales tienen 3 tablas separadas por programa individual. El propósito de mi visualización es analizar los 3 programas de todos los estudiantes en un solo tablero.

Estos son los datos originales después de importarlos a Power BI:

original data.png

Aquí está el preprocesamiento de datos:

- Eliminar columna innecesaria

Tabla DPT

Eliminar columna – No, Fecha, Trimestre Tabla DTP Eliminar columna – Contar, Correo electrónico, Fecha Tabla LLD Eliminar columna – Correo electrónico, Para calcular, Horas de aprendizaje

- Cambiar el nombre de la columna e imputar el valor que falta con "No dado"

Tabla DPT

Aprendiz = Nombre, Proveedor de Capacitación = Proveedor, Nombre del Curso = Curso, Área de Enfoque = Tabla DTP de Dominio Nombre del Participante = Nombre, Nombre del Evento/Capacitación = Curso, Proveedores de Capacitación = Proveedor

- Crear nueva columna e imputarlas con "No dado" y ponerlas en la misma posición (para anexar tablas más adelante)

Tabla DTP Nivel LLD tabla Empresa, Proveedor, Nivel

- Crear una nueva columna llamada Programa e imputar valor como nombre del programa para cada fila.

Mesa post limpiada:

post cleaned table.png

Después de agregar las 3 tablas y llamarlo Maestro:

post append.png

Luego, duplico la tabla Maestra para crear la tabla Estudiante, Proveedor y Programa. En cada tabla, elimine columnas irrelevantes, elimine duplicados y cree un ID único.

Modelo de datos final:

Final data model.png

El enfoque son las tablas de Programa, Proveedor y Estudiante. El resto de las tablas se desactivará la relación al crear columnas y medidas calculadas antes de realizar cualquier corrección al modelo de datos.

La tabla Proveedor se puede conectar a las tablas Estudiante y Programa mediante la columna Proveedor.

¿Existe algún enfoque adecuado para construir el modelo de datos?

A partir de mi modelo de datos en la última imagen, ¿significa que la tabla Proveedor es una tabla de hechos, mientras que las tablas Estudiante y Programa son dimensiones?

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

Por favor, vea mi respuesta, teniendo en cuenta que no he visto sus datos. Probablemente hay algunas variaciones en su modelo que podrían funcionar bien.

1. En el editor de consultas, no debería tener que preocuparse por las referencias circulares. Puede combinar Proveedor en la tabla Programa.

2. La tabla Maestra sería su tabla de hechos y podría tener dos tablas de dimensiones (estudiante y Programa).

3. Transformar sus 3 tablas y agregarlas es algo bueno que hacer. Simplemente deshabilite la carga en sus 3 tablas originales.

4. Creo que tener la tabla del programa es bueno, pero parece que el proveedor es solo un atributo del programa, así que lo fusionaría. La tabla Estudiante no debe tener la columna Proveedor ni ningún otro metadato del Programa.

5. Puede llamar a la tabla maestra como desee, pero espero que sea una tabla de asignaciones. Cada fila conecta a un estudiante con un programa, ¿correcto?

Palmadita

View solution in original post

4 REPLIES 4
Syndicate_Admin
Administrator
Administrator

Por favor, vea mi respuesta, teniendo en cuenta que no he visto sus datos. Probablemente hay algunas variaciones en su modelo que podrían funcionar bien.

1. En el editor de consultas, no debería tener que preocuparse por las referencias circulares. Puede combinar Proveedor en la tabla Programa.

2. La tabla Maestra sería su tabla de hechos y podría tener dos tablas de dimensiones (estudiante y Programa).

3. Transformar sus 3 tablas y agregarlas es algo bueno que hacer. Simplemente deshabilite la carga en sus 3 tablas originales.

4. Creo que tener la tabla del programa es bueno, pero parece que el proveedor es solo un atributo del programa, así que lo fusionaría. La tabla Estudiante no debe tener la columna Proveedor ni ningún otro metadato del Programa.

5. Puede llamar a la tabla maestra como desee, pero espero que sea una tabla de asignaciones. Cada fila conecta a un estudiante con un programa, ¿correcto?

Palmadita

Hay @mahoneypat ,

Gracias por la explicación.

Espero aprender de ti y espero que puedas comprobar los datos y aconsejarme mejor. Aquí está el conjunto de datos modificado

https://drive.google.com/drive/folders/1AflaDUHDeIQTCarvwMfInZRc19yyF6BR?usp=sharing

Gracias y esperamos su respuesta.

Syndicate_Admin
Administrator
Administrator

Sin ver sus datos reales, aquí hay algunos comentarios:

  • Es bueno transformar y luego agregar las 3 tablas. Sin embargo, una vez que lo haga, puede deshabilitar la carga en las 3 tablas originales, ya que ya no son necesarias (haga clic derecho en la consulta en el editor de consultas y desmarque 'Habilitar carga'.
  • En lugar de duplicar la consulta maestra, puede elegir la referencia en su lugar (también una opción de clic derecho). Esto mejorará el rendimiento general de actualización, ya que no está repitiendo las mismas transformaciones varias veces.
  • También es bueno crear tablas de dimensiones frente a una tabla grande, pero solo necesita mantener las claves de relación en su tabla de hechos (por ejemplo, no necesita Proveedor, solo ID de proveedor).
  • Además, fusionaría proveedor en su tabla de programa y relacionaría programa con maestro. Al final, creo que necesitas 2 tablas tenues (Programa y Estudiante) y la tabla de un solo hecho (Maestro). Pero no hay una respuesta correcta siempre y cuando hagas un esquema en estrella que permita el análisis que necesitas.

Palmadita

@mahoneypat

Gracias por la respuesta.
Me gustaría confirmar algunas cosas.
1. Tengo ID de curso en la tabla Programa e ID de estudiante en la tabla Estudiante, no puedo fusionar los ID en ambas tablas para evitar la relación circular. ¿Es esto correcto?

2. En el esquema de estrellas, la tabla central es un hecho. En mi modelo de datos final, la tabla Proveedor es un hecho, pero no contiene ningún tipo de medida/dato en forma numérica que me permita hacer la agregación. ¿Es esto considerado como un hecho?

3. ¿Existe alguna mejor práctica o método para comenzar a construir un modelo de datos a partir de múltiples fuentes de datos idénticas (por ejemplo, Excel de la entidad A, B, C, etc.) porque cada Excel es registrado por diferentes personas / departamentos?

4. En su cuarta sugerencia, ¿sería aconsejable separar la mesa individual de una mesa grande amplia en función de su tema? Por lo tanto, ¿es aconsejable tener tablas de proveedores y programas?

5. Todavía en su cuarta sugerencia, también puedo tener tablas de Estudiante, Proveedor, Programa y tener relación con la tabla Maestra por clave individual en ella para que sea una tabla de hechos. Sin embargo, ¿cuál es la tabla Maestra debería llamarla ya que Maestro no tiene sentido para la tabla, es solo el resultado de agregar las 3 tablas individuales?

Helpful resources

Announcements
Microsoft Build 768x460.png

Microsoft Build is May 24-26. Have you registered yet?

Come together to explore latest innovations in code and application development—and gain insights from experts from around the world.

charticulator_carousel_with_text (1).png

Charticulator Design Challenge

Put your data visualization and design skills to the test! This exciting challenge is happening now through May 31st!

Power BI Dev Camp Session 22 768x460.jpg

Check it out!

Mark your calendars and join us on Thursday, May 26 at 11a PDT for a great session with Ted Pattison!

May UG Leader Call Carousel 768x460.png

What difference can a User Group make for you?

At the monthly call, connect with other leaders and find out how community makes your experience even better.

Top Kudoed Authors