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

The ultimate Microsoft Fabric, Power BI, Azure AI & SQL learning event! Join us in Las Vegas from March 26-28, 2024. Use code MSCUST for a $100 discount. Register Now

Reply
Syndicate_Admin
Administrator
Administrator

Modelo de beneficiario: la tabla de hechos no filtra correctamente la tabla de beneficiarios

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

WinterMist_0-1701809038715.png

WinterMist_1-1701809090030.png

DETALLES DEL MODELO REAL

WinterMist_2-1701809945163.png

Al filtrar una tabla para una política # que termina en "... 718", veo correctamente solo 1 fila en la tabla como se esperaba.

WinterMist_3-1701810409926.png

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?

WinterMist_4-1701810904995.png

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

9 REPLIES 9
Syndicate_Admin
Administrator
Administrator

@TomMartens

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

Syndicate_Admin
Administrator
Administrator

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

Syndicate_Admin
Administrator
Administrator

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

Syndicate_Admin
Administrator
Administrator

@TomMartens

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.

WinterMist_0-1702304607636.png

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

Syndicate_Admin
Administrator
Administrator

Hola @WinterMist ,

Supongo que estás buscando esto:

image.png

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:

  • Malas prácticas
  • Un modelo de datos incorrecto
  • Evidencia de mala comprensión

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.

Syndicate_Admin
Administrator
Administrator

@TomMartens

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.

WinterMist_1-1702049148584.png

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.

WinterMist_2-1702050459429.png

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.

WinterMist_3-1702051106685.png

Syndicate_Admin
Administrator
Administrator

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

Syndicate_Admin
Administrator
Administrator

@TomMartens

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]

WinterMist_0-1701895502781.png

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).

WinterMist_1-1701897129213.png

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

Syndicate_Admin
Administrator
Administrator

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

Helpful resources

Announcements
Fabric Community Conference

Microsoft Fabric Community Conference

Join us at our first-ever Microsoft Fabric Community Conference, March 26-28, 2024 in Las Vegas with 100+ sessions by community experts and Microsoft engineering.

February 2024 Update Carousel

Power BI Monthly Update - February 2024

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

Fabric Career Hub

Microsoft Fabric Career Hub

Explore career paths and learn resources in Fabric.

Fabric Partner Community

Microsoft Fabric Partner Community

Engage with the Fabric engineering team, hear of product updates, business opportunities, and resources in the Fabric Partner Community.

Top Solution Authors