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.
Hola a todos
Tenemos una tabla de dimesión A vinculada a 3 tablas de hechos (B, C, D) y utilizada en el mismo informe.
El vínculo entre la moneda de diez centavos A y el hecho B se basa en A.ID=B.ID y B.Date entre A.startDate y A.StartDate,
El vínculo entre la moneda de diez centavos A y el hecho C se basa en A.ID1=C.ID1 y C.Date entre A.startDate y A.StartDate,
El vínculo entre la moneda de diez centavos A y el hecho D se basa en A.ID2=D.ID2 y D.Date entre A.startDate y A.StartDate
Encontré un escenario con una moneda de diez centavos vinculada a un hecho usando fecha entre, y la solución fue crear una lista de DatesBetweens y combinar las dos tablas. Pero en nuestro caso la dimensión se usa con 3 hechos en el mismo informe, así que me estoy quedando sin idea sobre cómo modelarla.
¿Puede compartir ideas sobre cómo lo modelaría en Power BI?
Gracias de antemano,
joseph
¿Sería capaz de proporcionar datos de muestra? Su publicación indica "entre A.startDate y A.StartDate", que suena como dos columnas StartDate. ¿La tabla de dimensiones tiene StartDate y EndDate?
hola
Gracias por su respuesta y lo siento por el retraso.
Tienes razón, acabo de cometer un error, la fecha está entre A.startDate y A.EndDate :
El vínculo entre la moneda de diez centavos A y el hecho B se basa en A.ID=B.ID y B.Date entre A.startDate y A.EndDate,
El vínculo entre la moneda de diez centavos A y el hecho C se basa en A.ID=C.ID1 y C.Date entre A.startDate y A.EndDate,
El vínculo entre la dimesión A y el hecho D se basa en A.ID=D.ID2 y D.Date entre A.startDate y A.EndDate
Dimensión A :
identificación | Mesure1 | fecha |
9563 | 10 | 29/12/2020 |
8411 | 1 | 03/09/2020 |
8795 | 2 | 06/11/2020 |
8027 | 7 | 21/12/2020 |
11867 | 3 | 29/12/2020 |
10523 | 8 | 15/01/2021 |
9563 | 6 | 09/03/2020 |
6395 | 10 | 03/09/2020 |
8027 | 6 | 17/08/2020 |
6491 | 1 | 21/12/2020 |
9848 | 1 | 03/12/2020 |
9845 | 1 | 07/01/2020 |
11053 | 3 | 26/01/2021 |
6395 | 1 | 28/04/2020 |
6491 | 3 | 28/08/2020 |
Hecho B :
identificación | medir | fecha |
11081 | 69916 | 23/11/2020 |
9843 | 60202 | 20/01/2020 |
11804 | 13461 | 22/07/2020 |
7582 | 70956 | 10/02/2020 |
10654 | 86894 | 17/01/2020 |
7582 | 70956 | 26/10/2020 |
9022 | 69916 | 25/03/2021 |
8830 | 44579 | 29/03/2021 |
8830 | 44579 | 27/08/2020 |
8446 | 83989 | 24/12/2020 |
8158 | 13461 | 12/01/2021 |
6430 | 80751 | 07/02/2020 |
9022 | 69916 | 10/02/2020 |
9022 | 69916 | 04/03/2020 |
8926 | 61036 | 15/04/2021 |
8446 | 83989 | 12/08/2020 |
8446 | 83989 | 27/08/2020 |
8158 | 13461 | 26/10/2020 |
7582 | 70956 | 01/04/2020 |
7198 | 61187 | 06/05/2020 |
7198 | 61187 | 23/11/2020 |
Hecho C :
identificación | Mesure1 | fecha |
9563 | 10 | 29/12/2020 |
8411 | 1 | 03/09/2020 |
8795 | 2 | 06/11/2020 |
8027 | 7 | 21/12/2020 |
11867 | 3 | 29/12/2020 |
10523 | 8 | 15/01/2021 |
9563 | 6 | 09/03/2020 |
6395 | 10 | 03/09/2020 |
8027 | 6 | 17/08/2020 |
6491 | 1 | 21/12/2020 |
9848 | 1 | 03/12/2020 |
9845 | 1 | 07/01/2020 |
11053 | 3 | 26/01/2021 |
6395 | 1 | 28/04/2020 |
6491 | 3 | 28/08/2020 |
Gracias de antemano,
Pruebe este enfoque.
1. En Power Query, cree una columna DimKey en la tabla DimensionA que sea una concatenación de ID y StartDate. Si los datos están estructurados correctamente, cada fila debe tener una combinación única de ID y StartDate.
Text.From([ID]) & "-" & Date.ToText([StartDate], "yyyymmdd")
2. En Power Query, cree una columna DimKey en cada tabla de hechos que recupere DimensionA[DimKey]. El ejemplo siguiente es para la tabla FactB.
Table.SelectRows(
DimensionA,
(LookupTable) =>
[ID] = LookupTable[ID]
and [Date] >= LookupTable[StartDate]
and [Date] <= LookupTable[EndDate]
)
Después de crear la columna, haga clic en el icono Expandir y seleccione DimKey.
3. Crear una relación entre DimensionA y cada tabla de hechos basada en DimKey.
hola
¡Muchas gracias por su respuesta!
Estoy tratando de implementarlo, y cuando expando la columna y selecciono DimKey, me lleva mucho tiempo cargarlo. Se ha estado cargando durante 14 horas durante solo 225 000 filas (para una tabla de hechos). Esta tabla de hechos es la más pequeña y contiene más de 300 000rows. Por lo tanto, me pregunto si debo esperar a que termine de cargarse, si habrá problemas de rendimiento más adelante para las actualizaciones ...
Gracias de antemano,
¿Tiene la capacidad de escribir SQL personalizado? Si es así, podría mover esta lógica a la base de datos y probablemente obtener un mejor rendimiento.
Otra opción es usar un flujo de datos en el servicio Power BI (un flujo de datos es Power Query online). Conectaría su pbix al flujo de datos.
¡Muchas gracias por su respuesta!
No tengo esta capacidad todavía.
Estamos trabajando con PBI en el servidor de informes, por lo que entiendo que la única manera es personalizar el modelo en la base de datos.
Gracias de nuevo!
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
2 | |
1 | |
1 | |
1 | |
1 |
User | Count |
---|---|
2 | |
2 | |
2 | |
2 | |
1 |