Gerenciar o modo de armazenamento no Power BI Desktop
No Microsoft Power BI Desktop, você pode especificar o modo de armazenamento de uma tabela. O modo de armazenamento permite controlar se o Power BI Desktop armazena ou não em cache dados de tabela na memória para relatórios. Armazenar em cache significa armazenar temporariamente dados na memória.
A configuração do modo de armazenamento oferece muitas vantagens. Você pode definir o modo de armazenamento para cada tabela individualmente em seu modelo. Essa ação habilita um único modelo semântico, que fornece os seguintes benefícios:
Desempenho de consulta: conforme os usuários interagem com os visuais nos relatórios do Power BI, as consultas DAX (Data Analysis Expressions) são enviadas para o modelo semântico. Armazenar dados em cache na memória definindo corretamente o modo de armazenamento pode aumentar o desempenho da consulta e a interatividade de seus relatórios.
modelos semânticos grandes: tabelas que não são armazenadas em cache não consomem memória para fins de cache. Você pode habilitar a análise interativa em modelos semânticos que são muito grandes ou caros para serem completamente armazenados em cache na memória. Você pode escolher quais tabelas valem a pena armazenar em cache e quais não são.
otimização de atualização de dados: você não precisa atualizar tabelas que não estão armazenadas em cache. Você pode reduzir os tempos de atualização armazenando em cache apenas os dados necessários para atender aos contratos de nível de serviço e aos seus requisitos de negócios.
Requisitos quase em tempo real: as tabelas com requisitos quase em tempo real podem se beneficiar de não serem armazenadas em cache, para reduzir a latência de dados.
Write-back: o write-back permite que os usuários empresariais explorem cenários de teste de hipóteses alterando os valores das células. Aplicativos personalizados podem aplicar alterações à fonte de dados. Tabelas que não são armazenadas em cache podem exibir alterações imediatamente, o que permite a análise instantânea dos efeitos.
A configuração do modo de armazenamento no Power BI Desktop é um dos três recursos relacionados:
Modelos de composição: permite que um relatório tenha duas ou mais conexões de dados, incluindo conexões DirectQuery ou importação, em qualquer combinação. Para obter mais informações, consulte Usar modelos compostos no Power BI Desktop.
Relações muitos para muitos: com modelos de composição, você pode estabelecer relações muitos para muitos entre tabelas. Em uma relação de muitos para muitos, os requisitos são removidos para valores exclusivos nas tabelas. Ele também remove soluções alternativas anteriores, como a introdução de novas tabelas apenas para estabelecer relações. Para mais informações, confira Relações muitos para muitos no Power BI Desktop.
Modo de armazenamento: com o modo de armazenamento, agora você pode especificar quais visuais exigem uma consulta para fontes de dados de back-end. Os visuais que não exigem uma consulta são importados mesmo que sejam baseados no DirectQuery. Esse recurso ajuda a melhorar o desempenho e reduzir a carga de back-end. Antes, mesmo visuais simples como as segmentações iniciavam consultas enviadas para fontes de back-end.
Usar a propriedade Modo de armazenamento
O modo de armazenamento, propriedade , é algo que você pode definir em cada tabela no seu modelo e que controla como o Power BI mantém em cache os dados da tabela.
Para definir a propriedade do modo de Armazenamento
Na visualização do modelo , selecione a tabela cujas propriedades você deseja exibir ou definir.
No painel Propriedades, expanda a seção Avançado e expanda o menu suspenso Modo de armazenamento.
Defina a propriedade Modo de armazenamento com um destes três valores:
Importar: as tabelas importadas com essa configuração são armazenadas em cache. As consultas enviadas ao modelo semântico do Power BI que retornam dados de tabelas de importação só podem ser atendidas de dados armazenados em cache.
DirectQuery: as tabelas com essa configuração não são armazenadas em cache. Consultas enviadas para o modelo semântico do Power BI – por exemplo, consultas DAX – e que retornam dados de tabelas DirectQuery só podem ser atendidas executando consultas sob demanda para a fonte de dados. As consultas enviadas à fonte de dados usam a linguagem de consulta para essa fonte de dados, por exemplo, SQL.
Dupla: tabelas com essa configuração podem se comportar como armazenadas em cache ou não, dependendo do contexto da consulta enviada para o modelo semântico do Power BI. Em alguns casos, você atende consultas de dados armazenados em cache. Em outros casos, você atende consultas executando uma consulta sob demanda para a fonte de dados.
Alterar o Modo de armazenamento de uma tabela para Importação é uma operação irreversível. Após definir esta propriedade, não poderá mais ser alterada para DirectQuery ou Dual.
Nota
Você pode usar o modo de armazenamento de Dupla no Power BI Desktop e no serviço do Power BI.
Restrições em tabelas DirectQuery e Dual
Tabelas duplas têm as mesmas restrições funcionais que as tabelas DirectQuery. Essas restrições incluem transformações M limitadas e funções DAX restritas em colunas calculadas. Para obter mais informações, confira Limitações do DirectQuery.
Propagação da configuração Duplo
Considere o modelo a seguir, em que todas as tabelas são de uma única fonte que dá suporte a Importação e DirectQuery.
Digamos que todas as tabelas neste modelo sejam inicialmente definidas como directQuery. Se você alterar o modo de armazenamento da tabela SurveyResponse para Importar, a seguinte janela de aviso será exibida:
Você pode definir as tabelas de dimensão (Customer, Geographye Date) para Dual para reduzir o número de relações limitadas no modelo semântico e melhorar o desempenho. Relações limitadas normalmente envolvem pelo menos uma tabela DirectQuery onde a lógica de junção não pode ser transferida para os sistemas de origem. Como tabelas duplas podem atuar como tabelas DirectQuery ou Import, essa situação é evitada.
A lógica de propagação foi projetada para ajudar com modelos que contêm muitas tabelas. Suponha que você tenha um modelo com 50 tabelas e apenas determinadas tabelas de fatos (transacionais) precisam ser armazenadas em cache. A lógica no Power BI Desktop calcula o conjunto mínimo de tabelas de dimensão que devem ser definidas como dual, para que você não precise.
A lógica de propagação percorre somente de um lado das relações de um para muitos.
Exemplo de uso do modo de armazenamento
Imagine aplicar as seguintes configurações de propriedade do modo de armazenamento:
Tabela | Modo de armazenamento |
---|---|
Venda | DirectQuery |
SurveyResponse | Importação |
Date | Duplo |
Cliente | Duplo |
Geografia | Duplo |
Definir essas propriedades do modo de armazenamento resulta nos seguintes comportamentos, supondo que a tabela Sales tenha um volume de dados significativo:
O Power BI Desktop armazena as tabelas de dimensões (Date, Customer e Geography) em cache. Portanto, os tempos de carregamento iniciais do relatório são rápidos ao recuperar os valores de segmentação a serem exibidos.
O Power BI Desktop não armazena em cache a tabela Sales. O Power BI Desktop fornece os seguintes resultados ao não armazenar em cache esta tabela:
- Os tempos de atualização de dados são aprimorados e o consumo de memória é reduzido.
- As consultas de relatórios baseadas na tabela Sales são executadas no modo DirectQuery. Essas consultas podem levar mais tempo, mas estão mais próximas do tempo real, pois nenhuma latência de cache é introduzida.
Consultas de relatórios baseadas na tabela SurveyResponse são retornadas do cache em memória e, portanto, são relativamente rápidas.
Consultas que acertam ou ignoram o cache
Se você conectar o SQL Profiler à porta de diagnóstico do Power BI Desktop, poderá ver quais consultas atingirão ou perderão o cache na memória executando um rastreamento baseado nos seguintes eventos:
- Eventos de consultas\Início da consulta
- Processamento de consulta\Início da consulta Vertipaq SE
- Processamento de Consulta\Início de DirectQuery
Para todo evento Início da Consulta, verifique outros eventos com a mesma ActivityID. Por exemplo, se não houver um evento DirectQuery Begin, mas houver um evento Vertipaq SE Query Begin, a consulta será respondida do cache.
Consultas que se referem a tabelas duplas retornam dados do cache, se possível; caso contrário, eles reverterão para DirectQuery.
A consulta a seguir continua da tabela anterior. Refere-se apenas a uma coluna na tabela Date, que está no modo Duplo. Portanto, a consulta deve atingir o cache:
A consulta a seguir refere-se apenas a uma coluna da tabela Sales, que está no modo DirectQuery. Portanto, ela não deve ter uma ocorrência no cache:
A consulta a seguir é interessante porque combina ambas as colunas. Essa consulta não atinge o cache. Você pode inicialmente esperar que recupere valores CalendarYear do cache e valores SalesAmount da origem e depois combine os resultados, mas essa abordagem é menos eficiente do que enviar a operação SUM/GROUP BY para o sistema de origem. Se a operação for propagada para a fonte, o número de linhas retornadas provavelmente será muito menor:
Nota
Esse comportamento é diferente das relações de muitos para muitos no Power BI Desktop ao combinar tabelas armazenadas e não armazenadas em cache.
Os caches devem ser mantidos sincronizados
As consultas exibidas na seção anterior mostram que as tabelas do tipo Duplo às vezes têm ocorrências no cache e outras vezes não. Como resultado, se o cache estiver desatualizado, valores diferentes poderão ser retornados. A execução da consulta não tentará mascarar problemas de dados filtrando, por exemplo, os resultados do DirectQuery para corresponder a valores armazenados em cache. É sua responsabilidade conhecer seus fluxos de dados e você deve projetar adequadamente. Há técnicas estabelecidas para lidar com esses casos na origem, se necessário.
O modo de armazenamento Duplo é uma otimização de desempenho. Ele deve ser usado apenas de maneiras que não comprometam a capacidade de atender aos requisitos de negócios. Para um comportamento alternativo, considere o uso das técnicas descritas em Relações muitos para muitos no Power BI Desktop.
Exibição de tabela
Se pelo menos uma tabela no modelo semântico tiver seu modo de armazenamento definido como Importar ou Dual, a guia Tabela estará disponível para exibição.
Quando você seleciona as tabelas do tipo Duplo e Importação na Exibição em tabela, elas mostram dados armazenados em cache. As tabelas DirectQuery não mostram dados e uma mensagem é exibida informando que as tabelas do DirectQuery não podem ser mostradas.
Considerações e limitações
Há algumas limitações para a versão atual do modo de armazenamento e sua correlação com modelos compostos.
As seguintes fontes de conexão dinâmica (multidimensional) não podem ser usadas com modelos compostos:
- SAP HANA
- SAP Business Warehouse
Quando você se conecta a essas fontes multidimensionais usando o DirectQuery, não é possível se conectar a outra fonte do DirectQuery ou combiná-la com dados importados.
As limitações existentes do uso do DirectQuery ainda se aplicam quando você usa modelos compostos. Muitas dessas limitações agora são por tabela, dependendo do modo de armazenamento da tabela. Por exemplo, uma coluna calculada em uma tabela importada pode se referir a outras tabelas, mas uma coluna calculada em uma tabela DirectQuery ainda está restrita a se referir apenas a colunas na mesma tabela. Outras limitações se aplicam ao modelo como um todo se quaisquer das tabelas no modelo forem DirectQuery.
Conteúdo relacionado
Para obter mais informações sobre modelos compostos e DirectQuery, consulte os seguintes artigos: