Filtros cruzados bidireccionales en modelos tabulares

Se aplica a: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

Los filtros cruzados bidireccionales en modelos tabulares eliminan la necesidad de soluciones DAX diseñadas a mano para propagar el contexto de filtro entre las relaciones de tabla.

Si descomponemos el concepto en sus componentes, el filtrado cruzado es la capacidad de establecer un contexto de filtro en una tabla en función de los valores de una tabla relacionada, mientras que la transferencia de un contexto de filtro a una segunda tabla relacionada en el otro lado de una relación de tabla es bidireccional . Como su nombre indica, es posible realizar la segmentación en ambas direcciones de la relación, en lugar de en una sola. Internamente, el filtrado bidireccional expande el contexto de filtro para consultar un superconjunto de los datos.

Captura de pantalla del cuadro De marcado Editar relación con la sección Dirección del filtro resaltada.

Hay dos tipos de filtros cruzados: filtrado unidireccional y bidireccional. El filtrado unidireccional es la dirección de filtrado tradicional de varios a uno entre las tablas de hechos y dimensiones de una relación. Bidireccional es un filtro cruzado que permite usar el contexto de filtro de una relación como contexto de filtro para otra relación de tabla, con una tabla común a ambas relaciones.

Dados DimDate y DimProduct con relaciones de clave externa con FactOnlineSales, un filtro cruzado bidireccional equivale al uso simultáneo de FactOnlineSales-to-DimDate más FactOnlineSales-to-DimProduct .

Los filtros cruzados bidireccionales pueden ser una solución sencilla para el problema de diseño de consultas de varios a varios que ha cuestionado a los desarrolladores tabulares y Power Pivot en el pasado. Si ha usado la solución alternativa de DAX para las relaciones de varios a varios en modelos tabulares o Power Pivot, puede intentar aplicar un filtro bidireccional para ver si genera resultados esperados.

Al crear un filtro cruzado bidireccional, debe tener en cuenta los puntos siguientes:

  • Piense antes de habilitar un filtro bidireccional.

    Si habilita filtros bidireccionales en todas partes, los datos podrían filtrarse en exceso de maneras inesperadas. También podría introducir ambigüedad accidentalmente al crear más de una ruta de consulta posible. Para evitar ambos problemas, planee el uso de una combinación de filtros unidireccionales y bidireccionales.

  • Realice pruebas incrementales para comprobar el impacto de cada cambio de filtro en el modelo. La característica Analizar en Excel de Visual Studio funciona bien para las pruebas incrementales. Se recomienda que realice un seguimiento periódico con pruebas llevadas a cabo mediante otros clientes de informes para asegurarse de que no se produzcan sorpresas.

Nota:

El diseñador de modelos tabulares de Visual Studio incluye un valor predeterminado que determina si los filtros cruzados bidireccionales se intentan automáticamente. Si habilita filtros bidireccionales de forma predeterminada, habilitará el filtrado bidireccional solo si el modelo articula claramente una ruta de acceso de consulta a través de una cadena de relaciones de tabla.

Establecer el valor predeterminado

Los filtros direccionales únicos son el valor predeterminado. Puede cambiar el valor predeterminado de todos los proyectos nuevos creados en el diseñador o puede hacerlo en el propio modelo cuando el proyecto ya exista.

En el nivel de proyecto, la configuración se evalúa cuando se crea el proyecto. Por esta razón, si cambia el valor predeterminado a bidireccional, verá los efectos de la selección cuando cree el proyecto siguiente.

  1. En Visual Studio, seleccione Herramientas>Opciones>de Analysis Services Diseñadores> tabularesNueva configuración del proyecto.

  2. Establezca Default filter direction (Dirección de filtrado predeterminada) en Single direction (Dirección única) o Both directions(Ambas direcciones).

También puede cambiar el valor predeterminado en el modelo.

  1. En Explorador de soluciones, seleccione Model.bim>Properties ,

  2. Establezca Default filter direction (Dirección de filtrado predeterminada) en Single direction (Dirección única) o Both directions(Ambas direcciones).

Tenga en cuenta lo siguiente

Para entender cómo y cuándo se usa un filtro cruzado bidireccional, puede que tenga que realizar una serie de pruebas para ver cómo funciona en su escenario. En ocasiones, verá que los comportamientos integrados no son suficientes y tendrán que recurrir a cálculos daX para hacer el trabajo. En la sección Ver también , encontrará varios vínculos a recursos adicionales sobre este tema.

En la práctica, el filtrado cruzado puede habilitar formas de exploración de datos que normalmente solo se ofrecen a través de una construcción varios a varios. Después de decir eso, es importante reconocer que el filtrado cruzado bidireccional no es una construcción de varios a varios. En el diseñador de modelos tabulares de esta versión sigue sin admitirse una configuración real de tabla varios a varios.

Consulte también

Crear y administrar relaciones en Power BI Desktop
Ejemplo práctico de cómo controlar relaciones simples de varios a manáy en modelos tabulares y powerpivot
Resolving many-to-many relationships leveraging DAX cross-table filtering (Resolver relaciones de varios a varios aprovechando el filtrado de tablas cruzadas de DAX)
Many to many revolution (SQLBI blog) (La revolución de varios a varios [blog de SQLBI])