Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Anonymous
Not applicable

¿Cómo crear una tabla de dimensiones a partir de una tabla de hechos mediante DAX?

Hola, chicos

Estoy trabajando en mi modelo de datos, así que estoy tratando de crear una tabla tenue a partir de mi tabla de hechos. No quiero hacerlo en Power Query porque solo tengo una fuente de datos, así que no quiero seguir duplicando mi fuente cada vez que necesito una tabla tenue, ya lo intenté y triplica el tamaño de mi archivo, ralentizando el rendimiento.

En mi tabla de hechos tengo una columna "Grupo de asignaciones", que nos dice el grupo que está asignado al registro. Esta columna tiene valores repetidos, ya que varios registros pueden pertenecer a un mismo grupo.

Mi objetivo es crear un identificador para la columna "Grupo de asignaciones" para que pueda comportarse como una clave externa en la tabla de hechos. A continuación, cree una tabla tenue que tenga el identificador como clave principal y una segunda columna con el grupo de asignaciones, eliminando duplicados (crear un catálogo). Quite la columna Grupo de asignaciones de la tabla de hechos y cree una relación entre las tablas de hechos y atenuadas a través de los identificadores.

Capture.PNG

¿Podría alguien aconsejar sobre cómo hacer esto en DAX por favor?

¡¡Gracias!!

Ov

6 REPLIES 6
PaulDBrown
Community Champion
Community Champion

@OttmarV

Puede crear una tabla tenue para el "Grupo de asignaciones" utilizando:
Grupo de asignación de atenuación: DISTINCT(Fact_Table [Grupo de asignaciones])

A continuación, puede unir los campos comunes en una relación de uno a varios (no necesita la clave numérica para esto). Si necesita una columna para establecer un orden de clasificación, agregue una columna calculada a la tabla Dim mediante RANKX o una función SWITCH.





Did I answer your question? Mark my post as a solution!
In doing so, you are also helping me. Thank you!

Proud to be a Super User!
Paul on Linkedin.






Anonymous
Not applicable

@PaulDBrown gracias por la entrada!

Leí que el almacenamiento es menor si tiene un ID numérico en su tabla de hechos y sus datos reales en la tabla tenue. En realidad, la razón por la que estoy haciendo esto es para optimizar el almacenamiento y tener un mejor rendimiento mientras se corta por grupo de asignación.

Si simplemente creo una relación entre mi tabla de hechos y dim con el grupo de asignación real, ¿todavía estoy recibiendo alguna mejora aquí?

Ov

@OttmarV

La cosa es que para tener una clave numérica en la tabla de hechos vas a tener que crear una columna calculada para asignar el número para cada valor de todos modos (la adición de columnas debe evitarse ya que dificultan el rendimiento).

Alternativamente, podría hacerlo en Power Query (las prácticas recomendadas generalmente recomiendan realizar transformaciones/creaciones de tablas tan pronto como sea posible en el proceso (así que en el origen -> si no es PQ -> si no dax).

No creo que notará ningún retraso significativo entre el uso de una clave numérica y una clave de texto de todos modos, pero pruébelo.

PS. BTW, ¿intentó "hacer referencia" a su tabla de hechos para crear la tabla DIM (en lugar de duplicarla)?





Did I answer your question? Mark my post as a solution!
In doing so, you are also helping me. Thank you!

Proud to be a Super User!
Paul on Linkedin.






Anonymous
Not applicable

@PaulDBrown

Como no puedo meterme con el archivo de origen, esto tiene que hacerse en Power BI.
Usé Power Query en realidad, pero tuve que hacer esto con varias tablas tenues, así que estoy duplicando el origen, el rendimiento se reduce y el archivo crece mucho, así que se me aconsejó usar DAX en su lugar, columnas calculadas.

No estoy usando la referencia porque, como entiendo, en algún momento tengo que quitar mi columna de grupo de asignaciones de la tabla de hechos, así que ¿eso no crea un problema de dependencia incoherente?

No @OttmarV ,

Según su descripción, parece que desea agregar la tabla de dimensiones Grupo de asignaciones y, a continuación, reemplazar Grupo de asignaciones en la tabla de hechos ID de grupo de asignaciones por tipo numérico para mejorar el rendimiento. Al agregar una tabla de dimensiones (tabla calculada) y reemplazar grupo de asignaciones (columna calculada) en la tabla de hechos mediante DAX, estos aumentan el tamaño del modelo y consumen más RAM. Como @PaulDBrown dicho, estas operaciones pueden no mejorar el rendimiento. Tal vez pueda probar los métodos en los siguientes vínculos para optimizar el modelo de datos.

Optimice un modelo para el rendimiento en Power BI

Una guía completa para el ajuste del rendimiento de Power BI

Consejos sobre la optimización del rendimiento de Power BI

Saludos

Gracias por sus entradas chico!!

Creé tantas tablas tenues como sea posible en Power Query, no me metí con DAX y, de hecho, estoy obteniendo un mejor rendimiento sin la tabla dim del grupo de asignaciones en lugar de tener el origen duplicado y crearlo desde allí.

@yingyinr

Voy a echar un vistazo a estos recursos, gracias de nuevo por sus respuestas!

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.