March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Early Bird pricing ends December 9th.
Register NowGet certified in Microsoft Fabric—for free! For a limited time, the Microsoft Fabric Community team will be offering free DP-600 exam vouchers. Prepare now
Hola comunidad -
Tengo 2 modelos en los que la tabla "Hechos" tiene una relación de 1:* con una tabla "Beneficiario".
Cada identificador de directiva solo debe aparecer una vez en la tabla de hechos.
Sin embargo, un solo ID de póliza podría tener cualquier número de beneficiarios en la tabla "Beneficiario".
1) Modelo de prueba: funciona bien
2) Modelo real: no funciona
DETALLES DEL MODELO DE PRUEBA
DETALLES DEL MODELO REAL
Al filtrar una tabla para una política # que termina en "... 718", veo correctamente solo 1 fila en la tabla como se esperaba.
Sin embargo, al agregar cualquier campo (por ejemplo, "ContactKey") de la nueva tabla "Beneficiario" (es decir, "Hecho **** - Otras personas"), el objeto visual de la tabla "explota" de 1 fila a más de 300K filas (el número de filas en la tabla "Beneficiario"). Todos los datos de la captura de pantalla anterior se repiten para cada registro de la tabla "Beneficiario". A pesar de que existe claramente una relación entre la tabla de hechos y la tabla de beneficiarios, los datos visuales de la tabla se muestran como si no existiera ninguna relación. ¿A qué se debe esto?
La relación parece correcta en el modelo.
Pero está claro que no funciona en el objeto visual de la tabla.
¿Alguna idea?
Saludos
Nathan
Sí, estaría bien usar el PBIX de muestra en un artículo si lo desea.
Gracias especialmente por la recomendación de usar:
"CROSSFILTER( ..., ..., BOTH) para crear una medida dedicada en lugar de cambiar la dirección del filtro cruzado"
Gracias de nuevo por su tiempo.
Saludos
Nathan
Hola @WinterMist ,
¿Puedo usar su pbix de muestra si decido escribir un artículo y publicar el artículo en mi sitio web (minceddata.info) y proporcionaré un enlace de descarga al pbix que apunta a mi OneDrive, por supuesto, proporcionaré un enlace a esta discusión y mencionaré que el pbix se publicó por primera vez aquí?
Saludos
Tom
Hola @WinterMist ,
con respecto a
1) use CROSSFILTER( ..., ..., BOTH) para crear una medida dedicada en lugar de cambiar la dirección del filtro cruzado
2) Creo que será una gran lectura
3) No creo que dedique este tiempo a escribir sobre este tipo de relaciones aquí, tal vez escriba un artículo en mi sitio. Pero, es obvio (desde mi perspectiva) ya que la medida hace que la segunda mesa "explote".
Saludos
Tom
1) Por lo tanto, la relación bidireccional soluciona el problema. Sin embargo, soy una de esas personas que normalmente se encuentra con otros problemas adversos causados por el uso de bidireccional; y luego tengo que quitarlo. Así que, aunque marcaré esto como una solución, hacer esto me da mucha inquietud. (Si hubiera una manera de resolver esto a través de la medida, preferiría hacerlo de esa manera).
2) Agregué su recomendación de libros a mi lista de Amazon. Gracias por eso.
3) Lo que más me intriga es tu comentario sobre cómo las medidas crean relaciones que no existen dentro de nuestros modelos. Específicamente, escribiste que mi medida está creando una relación entre:
"Asegurado 1" y beneficiario "Sid" a través de la fianza de "Maíz" (Clave de Póliza de Hecho 17).
¿Podría educarme más sobre cómo está sucediendo esto?
Te creo; pero cuando miro la tabla de hechos, esto no tiene ningún sentido para mí.
"Asegurado 1" no debe conectarse con la clave de póliza de datos 17 en absoluto.
Definitivamente no entiendo cómo la medida está causando que el Asegurado 1 forme una relación con TODOS los beneficiarios.
¿Hay alguna manera de que yo escriba la medida de manera diferente para evitar esto?
Saludos
Nathan
Hola @WinterMist ,
Supongo que estás buscando esto:
Para lograr lo anterior, "simplemente" cambié la dirección del filtro cruzado de la relación entre la "política de hechos" y la tabla de "beneficiarios" de "Único" a "Ambos".
Los poderes de una medida son múltiples; Todo lo que nos gusta de Measures se reduce a obtener información de nuestros datos. Pero hay algo en las medidas que considero que está en el lado más oscuro de las superpotencias. Esta es la creación de relaciones, incluso si no existen dentro de nuestros modelos, por ejemplo, la relación entre: "Asegurado 1" y el beneficiario "Sid". El "vínculo" que une estos objetos es el "maíz" (en este caso, es la clave 17 de la política de hechos).
Primero, encuentras a los dos beneficiarios, "Sam" y "Samantha" (vinculados a "Aseguradora 1"), y luego preguntas cuál es el cultivo. Se hace necesario transformar la tabla en una "especie de" tabla de dimensiones para mantener a los beneficiarios. Esto se puede lograr cambiando la dirección del filtro cruzado.
Tenga en cuenta que hay muchas personas que consideran tener un filtro cruzado de valor ambos:
Considero que tener relaciones con la dirección de filtro cruzado "Ambos" es un arte oscuro sutil, como el puñetazo mortal de 5 dedos.
Con suerte, esto te ayudará a encontrar lo que buscas.
Saludos
Tom
P.D.: no hay un nombre para una tabla filtrada por una tabla de hechos, pero considero que la tabla de beneficiarios no es una tabla de hechos. No estoy seguro de si conoces el libro "(The Complete Reference) Star Schema" de Christopher Adamson. Considero que este libro es esencial.
Gracias de nuevo por su tiempo.
Aquí hay un enlace al PBIX.
https://drive.google.com/file/d/1USKah9XhEV5--ajUYh2ZMccMWlrHeR2Z/view?usp=sharing
Para replicar el problema:
1) Establecer la segmentación "Nombre del asegurado" = Asegurado 1
- Esto aislará correctamente 1 fila en el primer objeto visual de la tabla y 4 filas en el segundo objeto visual de la tabla.
- Hasta ahora no hay problemas.
2) Arrastre la medida [M2 Concat Crops] a la segunda tabla.
RESULTADO DESEADO: La vista detallada debe seguir mostrando las mismas 4 filas aplicables (según la captura de pantalla anterior), excepto que la medida [M2 Concat Crops] también debe aparecer como una columna adicional, mostrando "Maíz, Soja" para las 4 filas.
RESULTADO NO deseado: Siempre y cuando AMBOS elementos siguientes estén presentes en el mismo objeto visual de tabla,
Entonces se produce el problema:
1) «Beneficiario» [nombre del beneficiario]
2) [M2 Concat Cultivos]
Si alguno de los elementos se quita del objeto visual de la tabla, el problema desaparece.
El problema es que TODOS los nombres de beneficiarios aparecen en la imagen, incluso los nombres de beneficiarios que no tienen relación con "Asegurado 1"; y todos los demás datos simplemente se repiten para cada valor de Nombre de beneficiario.
Saludos
Nathan
P.D. Pregunta secundaria.
- Estoy familiarizado con las categorías de tablas "Hecho" y "Dimensión".
- Pero, ¿hay un nombre de categoría para una tabla que se filtra por la tabla "Hechos"? Ni siquiera sé cómo llamarlo. Yo no lo llamaría un Hecho o una Dimensión.
Hola @WinterMist ,
No soy lo suficientemente inteligente como para crear una solución mirando capturas de pantalla oscurecidas y texto de medición que proporcione una solución para un problema de realización, un problema de medida o una combinación de ambos.
No puedo dedicar más tiempo, si no eres capaz de dedicar tiempo a crear un pbix con datos de muestra.
Saludos
Tom
Muchas gracias por su respuesta.
1 paso más cerca.
El objeto visual de tabla REAL MODEL tiene campos de:
- Múltiples dimensiones
- la Tabla de Hechos
- 1 medida que es una lista concatenada de Cultivos de la dimensión Recorte.
Comparé esto con el MODELO DE PRUEBA, que tiene campos visuales de tabla de:
- Múltiples dimensiones
- la Tabla de Hechos
Me di cuenta de que la única diferencia de alto nivel es que el MODELO DE PRUEBA no tiene la medida (que concatena los valores de una dimensión).
Como prueba, eliminé la medida del objeto visual de la tabla y el problema desaparece.
Por lo tanto, he determinado que el problema solo ocurre cuando AMBAS de las siguientes condiciones son ciertas:
1) La medida está presente en la tabla visual Y
2) Al menos 1 campo de la tabla Beneficiario está presente en el objeto visual de la tabla
Así que en el modelo REAL:
'D Crop'[CropKey] filtra 'Fact'[CropKey]
'Fact'[FactPolicyKey] filtra 'Fact **** - Other Persons'[FactPolicyKey]
El objetivo de la medida es simplemente concatenar los cultivos de una hilera determinada.
Por ejemplo, la Política # "12345" podría tener 2 cultivos (Maíz y Soja).
SI se usa 'D Crop'[Nombre del recorte], el objeto visual de la tabla muestra este 1 # de política en 2 filas (1 fila para cada recorte).
Si, en cambio, se usa la medida, concatena "Maíz, Soja" para que estos datos se muestren en solo 1 fila en el objeto visual de la tabla (que es un requisito comercial).
Una vez más, esta medida ha funcionado bien en el objeto visual de tabla todo el tiempo.
Solo cuando agregué un campo de la tabla de beneficiarios recién agregada ("Hecho **** - Otras personas") se interrumpió el objeto visual de la tabla.
¿Esperas que puedas ver un problema con mi medida?
Saludos
Nathan
Hola @WinterMist ,
Sin un modelo con datos de muestra, es casi imposible proporcionar orientación.
Pero una cosa que debe comprobar es esto, asegúrese de que el objeto visual de la tabla usa columnas de las tablas de dimensiones. No considero que si se agregan columnas del lado varios de una relación a un objeto visual de tabla, el número de filas está creciendo.
Lamento no poder brindar más ayuda.
Saludos
Tom
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Early Bird pricing ends December 9th.
Check out the November 2024 Power BI update to learn about new features.
User | Count |
---|---|
1 | |
1 | |
1 | |
1 | |
1 |