Filtros cruzados bidirecionais em modelos de tabela

Aplica-se a: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

Filtros cruzados bidirecionais em modelos tabulares eliminam a necessidade de soluções alternativas da DAX criadas à mão para propagar o contexto de filtro entre relações de tabela.

Dividindo o conceito pelas respectivas partes componentes: filtragem cruzada é a capacidade de definir um contexto de filtro em uma tabela com base nos valores de uma tabela relacionada; bidirecional se refere à transferência de um contexto de filtro para uma segunda tabela relacionada do outro lado de uma relação de tabela. Como o próprio nome sugere, você pode fatiar nas duas direções da relação em vez de usar apenas uma. Internamente, a filtragem bidirecional expande o contexto do filtro para consultar um superconjunto dos dados.

Captura de tela da caixa de discagem Editar Relação com a seção Direção do Filtro em destaque.

Há dois tipos de filtros cruzados: filtragem unidirecional e bidirecional. Unidirecional é a direção do filtro tradicional de muitos para um entre tabelas de fatos e tabelas de dimensões nessa relação. Bidirecional é um filtro cruzado que permite que o contexto de filtro de uma relação seja usado como o contexto de filtro para outra relação de tabela, com uma tabela comum a ambas as relações.

Considerando DimDate e DimProduct com relações de chave estrangeira para FactOnlineSales, um filtro cruzado bidirecional é equivalente a FactOnlineSales-DimDate e FactOnlineSales-DimProduct usados simultaneamente.

Filtros cruzados bidirecionais podem ser uma correção fácil para o problema de design de consulta muitos para muitos que desafiou desenvolvedores tabulares e do Power Pivot no passado. Se você usou a solução alternativa DAX para relações muitos para muitos em modelos tabulares ou power pivot, você pode tentar aplicar um filtro bidirecional para ver se ele produz resultados esperados.

Quando criar um filtro cruzado bidirecional, lembre-se do seguinte:

  • Pense bem antes de habilitar filtros bidirecionais.

    Se habilitar filtros bidirecionais em todos os locais, os dados podem ser filtrados excessivamente, de maneiras inesperadas. Além disso, você pode introduzir ambiguidades acidentalmente, criando mais de um caminho possível da consulta. Para evitar ambos os problemas, planeje usar uma combinação de filtros unidirecionais e bidirecionais.

  • Faça testes incrementais para verificar o impacto de cada alteração de filtro em seu modelo. O recurso Analisar no Excel no Visual Studio funciona bem para testes incrementais. Como prática recomendada, continue fazendo testes periodicamente, usando outros clientes de relatório para que não haja imprevistos posteriormente.

Observação

O designer de modelo de tabela no Visual Studio inclui um padrão que determina se filtros cruzados bidirecionais são tentados automaticamente. Se você habilitar filtros bidirecionais por padrão, ele habilitará a filtragem bidirecional somente se o modelo articular claramente um caminho de consulta por meio de uma cadeia de relações de tabela.

Definir o padrão

Filtros direcionais únicos são o padrão. Você pode mudar o padrão de todos os projetos novos criados no Designer ou no próprio modelo, se for um projeto existente.

A configuração é avaliada durante a criação, no nível do projeto. Portanto, se você alterar o padrão para bidirecional, verá os efeitos desta escolha, quando criar o projeto seguinte.

  1. No Visual Studio, selecione Ferramentas>Opções Analysis>Services Designers tabulares>Novas configurações de projeto.

  2. Defina a Direção do filtro padrão como Direção única ou Ambas as direções.

Como alternativa, você pode mudar o padrão no modelo.

  1. Em Gerenciador de Soluções, selecionePropriedadesde Model.bim> ,

  2. Defina a Direção do filtro padrão como Direção única ou Ambas as direções.

Lembre-se

Entenda quando e como um filtro cruzado bidirecional pode ser usado de forma empírica para ver como funciona para o seu cenário. Às vezes, você descobrirá que os comportamentos internos não são suficientes e precisarão fazer fallback em cálculos DAX para fazer o trabalho. Na seção Consulte também , você encontrará vários links para recursos adicionais sobre esse assunto.

Na prática, a filtragem cruzada permite formas de exploração de dados que são fornecidas normalmente apenas por meio de uma construção de muitos para muitos. Dito isso, é importante reconhecer que a filtragem cruzada bidirecional não é uma construção muitos para muitos. A configuração de tabela de muitos para muitos continua sem suporte no Designer para os modelos de tabela desta versão.

Confira também

Criar e gerenciar relações no Power BI Desktop
Um exemplo prático de como lidar com relações simples de muitos para manay no Power Pivot e modelos tabulares
Resolvendo relações de muitos para muitos aproveitando a filtragem cruzada de tabelas DAX
A revolução muitos para muitos (blog do SQLBI)