Determinar quando desenvolver um modelo DirectQuery
Um modelo DirectQuery compreende tabelas que têm sua propriedade de modo de armazenamento definida como DirectQuery e pertencem ao mesmo grupo de origem.
Um grupo de origem é um conjunto de tabelas de modelo relacionadas a uma fonte de dados. Existem dois tipos:
- Importar – Representa todas as tabelas do modo de armazenamento de importação, incluindo tabelas calculadas. Só pode haver um grupo de origem de importação em um modelo.
- DirectQuery – Representa todas as tabelas do modo de armazenamento DirectQuery relacionadas a uma fonte de dados específica.
Nota
Um modelo de importação e um modelo DirectQuery compreendem apenas um único grupo de origem. Quando há mais de um grupo de origem, a estrutura do modelo é conhecida como modelo composto. Os modelos compostos são descritos na Unidade 5.
Benefícios do modelo DirectQuery
Há vários benefícios no desenvolvimento de um modelo DirectQuery.
Modele fontes de dados grandes ou em rápida mudança
Um modelo DirectQuery é uma ótima opção de estrutura quando seus dados de origem exibem características de volume e/ou velocidade. Como as tabelas DirectQuery não exigem atualização, elas são adequadas para grandes armazenamentos de dados, como um data warehouse. É impraticável e ineficiente, se não impossível, importar um data warehouse inteiro para um modelo. Quando os dados de origem mudam rapidamente e os usuários precisam ver os dados atuais, um modelo DirectQuery pode fornecer resultados de consulta quase em tempo real.
Quando um relatório consulta um modelo DirectQuery, o Power BI passa essas consultas para a fonte de dados subjacente.
Impor RLS de origem
O DirectQuery também é útil quando o banco de dados de origem impõe segurança em nível de linha (RLS). Em vez de replicar regras RLS em seu modelo do Power BI, a base de dados de origem pode impor suas regras. Essa abordagem funciona apenas para alguns bancos de dados relacionais e envolve a configuração do logon único para a fonte de dados do conjunto de dados. Para obter mais informações, consulte Banco de Dados SQL do Azure com DirectQuery.
Restrições à soberania de dados
Se a sua organização tiver políticas de segurança que restrinjam a saída de dados de suas instalações, não será possível importar dados. Um modelo DirectQuery que se conecta a uma fonte de dados local pode ser apropriado. (Você também pode considerar a instalação Servidor de Relatório do Power BI para relatórios locais.)
Criar conjuntos de dados especializados
Normalmente, o modo DirectQuery oferece suporte a fontes de banco de dados relacionais. Isso porque o Power BI deve traduzir consultas analíticas para consultas nativas compreendidas pela fonte de dados.
No entanto, há uma exceção poderosa. Você pode se conectar a um conjunto de dados do Power BI (ou modelo do Azure Analysis Services) e convertê-lo em um modelo local do DirectQuery. Um modelo local é um termo relativo que descreve a relação de um modelo com outro modelo. Nesse caso, o conjunto de dados original é um modelo remoto e o novo conjunto de dados é o modelo local. Estes modelos são encadeados, que é o termo usado para descrever modelos relacionados. Pode encadear até três modelos desta forma.
Esta capacidade de encadear modelos suporta o potencial de personalizar e/ou estender um modelo remoto. A coisa mais simples que você pode fazer é renomear objetos, como tabelas ou colunas, ou adicionar medidas ao modelo local. Você também pode estender o modelo com colunas calculadas ou tabelas calculadas, ou adicionar novas tabelas de importação ou DirectQuery. No entanto, essas extensões resultam na criação de novos grupos de fontes, o que significa que o modelo se torna um modelo composto. Este cenário é descrito na Unidade 5.
Para obter mais informações, consulte Usando o DirectQuery para conjuntos de dados do Power BI e o Azure Analysis Services.
Limitações do modelo DirectQuery
Há muitas limitações relacionadas aos modelos DirectQuery que você deve ter em mente. Eis as principais limitações:
Nem todas as fontes de dados são suportadas. Normalmente, apenas os principais sistemas de banco de dados relacional são suportados. Os conjuntos de dados do Power BI e os modelos do Azure Analysis Services também são suportados.
Nem todas as transformações do Power Query (M) são possíveis, porque estas consultas têm de ser traduzidas em consultas nativas que são compreendidas pelos sistemas de origem. Assim, por exemplo, não é possível usar transformações pivot ou unpivot.
O desempenho da consulta analítica pode ser lento, especialmente se os sistemas de origem não estiverem otimizados (com índices ou exibições materializadas) ou se não houver recursos suficientes para a carga de trabalho analítica.
As consultas analíticas podem afetar o desempenho do sistema de origem. Isso pode resultar em uma experiência mais lenta para todas as cargas de trabalho, incluindo operações OLTP.
Aumente o desempenho do modelo DirectQuery
Quando há uma justificativa para desenvolver um modelo DirectQuery, você pode atenuar algumas limitações de duas maneiras.
Otimizações de fonte de dados
Você pode otimizar o banco de dados de origem para garantir que a carga de trabalho de consulta analítica esperada tenha um bom desempenho. Especificamente, você pode criar índices e exibições materializadas e garantir que o banco de dados tenha recursos suficientes para todas as cargas de trabalho.
Gorjeta
Recomendamos que você sempre trabalhe em colaboração com o proprietário do banco de dados. É importante que eles entendam a carga de trabalho adicional que um modelo DirectQuery pode colocar em seu banco de dados.
Tabelas de agregação definidas pelo usuário do DirectQuery
Você pode adicionar tabelas de agregação definidas pelo usuário a um modelo DirectQuery. As tabelas de agregação definidas pelo usuário são tabelas de modelo especiais que estão ocultas (de usuários, cálculos e RLS). Eles funcionam melhor quando satisfazem consultas analíticas de grão mais alto em grandes tabelas de fatos. Quando você define a tabela de agregação para usar o modo de armazenamento DirectQuery, ela pode consultar uma exibição materializada na fonte de dados. Você também pode definir uma tabela de agregação para usar o modo de armazenamento de importação ou habilitar agregações automáticas, e essas opções são descritas na Unidade 4.
Para obter mais informações, consulte Diretrizes de modelo do DirectQuery no Power BI Desktop.