Filtrado cruzado/ambigüedad bidireccional

Un usuario Pregunto ✅

chandrarao

Actualmente intento crear plantillas de modelos de datos para nuestros futuros usuarios en función de los datos de Salesforce. Sin embargo, cuando intento (re)crear el modelo de datos, me encuentro con el problema de que no puedo establecer relaciones activas debido al hecho de que crearía ambigüedad.

Error:

No puede crear una relación activa directa entre la Oportunidad y la Marca porque eso introduciría ambigüedad entre las tablas… y…

– La relación que está creando le permite filtrar… por…, pero Power BI Desktop solo permite una ruta de filtrado entre tablas en un modelo de datos.

Buscando solución.

En respuesta a chandrarao

Las relaciones bidireccionales son una forma de resolver un problema específico en el que necesita filtrar una tabla de búsqueda del contenido de una tabla de datos. No todas las tablas de búsqueda necesitarán esto y hay otras formas de resolver el problema. Te sugiero

1. Desactive el filtrado cruzado bidireccional en todas sus tablas.

2. Oculte la clave externa en cada tabla de datos. De esta manera, los usuarios no usarán accidentalmente es en lugar de la clave principal en la tabla de búsqueda.

3. Cuando (y solo cuando) necesite una relación bidireccional para lo que está haciendo, actívela para esa única tabla.

4. Si alguna vez necesita 2 ese conflicto, entonces use el patrón de muchos a muchos. Lo explico aquí https://www.powerpivotpro.com/2014/08/filters-can-flow-up-hill-via-formulas-that-is/ y también aquí http://exceleratorbi.com.au/many -muchas-relaciones-dax-explicado/

kevhav

Acabo de recibir este mismo error por primera vez («Power BI Desktop permite solo una ruta de filtrado entre tablas en un modelo de datos»); y al principio, me sorprendió un poco. no me lo esperaba

Comencé un esquema de estrella de hecho/dimensión, inicialmente con solo una tabla de hechos, y encontré que el filtrado cruzado bidireccional era bastante útil. Pero luego traté de agregar una segunda tabla de hechos y, ¡zas!, sucedió esto.

Pero cuando lo pienso, tiene sentido. Digamos que tenía varias rutas de filtro desde la tabla DimA a la tabla DimZ, así…

DimA <> FactJ <> DimZ

DimA <> FactK <> DimZ

DimA <> FactL <> DimZ

Ahora, supongamos que tiene un informe de Power BI en el que establece un filtro en DimA. Entonces, ¿cómo se debe filtrar DimZ? No es claro.

Pero en este caso, siento que debería «simplemente funcionar». Creo que yo deberían ser capaz de configurar todos estos filtros cruzados bidireccionales; y las tres rutas diferentes, a través de FactJ, FactK y FactL, deberían actuar como una declaración «OR». Es decir, DimZ debe filtrarse para incluir todas las filas de DimZ a las que se puede llegar al menos uno de los tres caminos de filtrado, después de haber filtrado DimA.

Consideré enviar esto como una idea, pero también siento que podría ser una locura. No estoy seguro. ¿Tal vez causaría problemas en otros modelos que no son esquemas en estrella? ¿Quizás sería demasiado confuso? Tal vez hay algo que no estoy considerando.

¡Pero a mí me parece que sería maravilloso! ¿Qué os parece comunidad? ¿Encontrarías esto útil? ¿O me estoy perdiendo algo?

maheshrane

En respuesta a kevhav

Su lógica OR puede ser incluso AND. Eso tiene más sentido. entonces Dim A en Dim Z que pasa los tres hechos como filtros.

kevhav

En respuesta a maheshrane

¡Sí, podría ser de otra manera! Pero, ¿cuándo entraría esto en juego? Cuando tiene una sola página de informe o tablero que muestra…

  • Datos de dimensión de DimA
  • Datos de dimensión de DimZ
  • Datos de hechos de múltiples tablas de hechos relacionados, como FactJ y FactK

…Ahora, supongamos que tiene una sola página de informe o tablero como ese, y aplica algún filtro/segmentación a DimA.

Y digamos que aplicar este filtro a DimA filtra posteriormente FactJ, que posteriormente filtra DimZ a excluir filas Z1, Z2, Z3 y Z4.

Y digamos que aplicar este filtro a DimA filtra posteriormente FactK, que posteriormente filtra DimZ a excluir filas Z3, Z4, Z5 y Z6.

Las filas Z5 y Z6 de DimZ están relacionadas y «describiendo» las medidas de FactJ; y las filas Z1 y Z2 de DimZ todavía están relacionadas y «describiendo» las medidas de FactK. Es por eso que creo que debería ser lógica «O»: aún necesitamos las filas Z1, Z2, Z5 y Z6 de DimZ en el informe/panel, aunque estas filas no están incluidas en todo de los caminos del filtro.

chandrarao

Sé qué está causando el problema de que obtengo los errores de ambigüedad y que al poner la relación entre las tablas en una sola dirección, resuelve el problema con los errores que recibo. Sin embargo, ese no es el problema y necesito un filtrado bidireccional para mis informes.

El problema está en el nivel arquitectónico.

Cuando uso varias tablas que tienen relaciones en bucle entre ellas (inherentes al modelo de datos de Salesforce), ahí es cuando tengo problemas de ambigüedad. Mi objetivo es recrear (partes) del modelo de datos de Salesforce con la mayor precisión posible en Power BI para que nuestros usuarios comerciales puedan usarlos para sus informes porque no tienen experiencia en el modelado de datos.

Entonces, lo que necesito es alguien con experiencia en el uso de Power BI Salesforce Connector en Power BI.

En respuesta a chandrarao

Las relaciones bidireccionales son una forma de resolver un problema específico en el que necesita filtrar una tabla de búsqueda del contenido de una tabla de datos. No todas las tablas de búsqueda necesitarán esto y hay otras formas de resolver el problema. Te sugiero

1. Desactive el filtrado cruzado bidireccional en todas sus tablas.

2. Oculte la clave externa en cada tabla de datos. De esta manera, los usuarios no usarán accidentalmente es en lugar de la clave principal en la tabla de búsqueda.

3. Cuando (y solo cuando) necesite una relación bidireccional para lo que está haciendo, actívela para esa única tabla.

4. Si alguna vez necesita 2 ese conflicto, entonces use el patrón de muchos a muchos. Lo explico aquí https://www.powerpivotpro.com/2014/08/filters-can-flow-up-hill-via-formulas-that-is/ y también aquí http://exceleratorbi.com.au/many -muchas-relaciones-dax-explicado/

chandrarao

En respuesta a Matt Allington

Gracias por su respuesta.

¿Puede explicar en detalle sobre el paso 4?

En respuesta a chandrarao

Para aclarar lo que quiero decir en el punto 4, si tiene 2 tablas de datos que se conectan a las 2 tablas de búsqueda Y necesita relaciones bidireccionales para todas ellas, entonces debe pasar a un diseño diferente en el que aproveche el DAX de muchos a muchos. patrón. La solución a este problema se explica en detalle en los enlaces que proporcioné.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *