Modos de modelo semântico no serviço do Power BI

Este artigo fornece uma explicação técnica dos modos de modelo semântico do Power BI. Aplica-se a modelos semânticos que representam uma conexão dinâmica com um modelo do Analysis Services hospedado externamente e também a modelos desenvolvidos no Power BI Desktop. O artigo enfatiza a lógica de cada modo e possíveis impactos nos recursos de capacidade do Power BI.

Os três modos de modelo semântico são:

Modo de importação

O modo Importação é o modo mais comum usado para desenvolver modelos semânticos. Esse modo proporciona um desempenho rápido graças à consulta na memória. Também oferece flexibilidade de design para modeladores e suporte a recursos específicos do serviço do Power BI (P e R, Insights Rápidos etc.). Devido a esses pontos fortes, ele é o modo padrão quando você cria uma nova solução do Power BI Desktop.

É importante entender que os dados importados são sempre armazenados em disco. Quando consultados ou atualizados, os dados devem ser totalmente carregados na memória da capacidade do Power BI. Uma vez na memória, os modelos de Importação podem obter resultados de consulta muito rapidamente. Também é importante entender que não há nenhum conceito de modelo de Importação que seja carregado parcialmente na memória.

Ao serem atualizados, os dados que são compactados e otimizados e, em seguida, armazenados em disco pelo mecanismo de armazenamento VertiPaq. Quando carregados do disco para a memória, é possível ver uma compactação de 10 vezes. Portanto, espera-se que 10 GB de dados de origem possam ser compactados em aproximadamente 1 GB. O tamanho do armazenamento em disco pode atingir uma redução de 20% do tamanho compactado. A diferença no tamanho pode ser determinada comparando o tamanho do arquivo do Power BI Desktop com o uso da memória do Gerenciador de Tarefas do arquivo.

A flexibilidade de design pode ser obtida de três maneiras:

  • Integrar dados armazenando dados em cache de fluxos de dados e fontes externas, independentemente do tipo ou formato da fonte de dados.
  • Utilizar o conjunto inteiro das funções de Linguagem de fórmula de consulta do Power Query, chamado de M, ao criar consultas de preparação de dados.
  • Aplicar todo o conjunto de funções de DAX (Data Analysis Expressions) ao aprimorar o modelo com lógica de negócios. Há suporte para colunas calculadas, tabelas calculadas e medidas.

Conforme mostrado na imagem a seguir, um modelo de Importação pode integrar dados de diversos tipos de fonte de dados com suporte.

Diagram shows an Import model can integrate data from any number of external data source types.

Porém, embora haja vantagens atraentes associadas aos modelos de Importação, também há desvantagens:

  • O modelo inteiro deve ser carregado na memória antes que o Power BI confira o modelo, o que poderá causar uma pressão nos recursos de capacidade disponíveis, especialmente à medida que o número e o tamanho dos modelos de Importação forem crescendo.
  • Os dados do modelo são apenas aqueles vigentes na atualização mais recente e, portanto, os modelos de Importação precisam ser atualizados, em geral, periodicamente.
  • Uma atualização completa remove todos os dados de todas as tabelas e os recarregará a partir da fonte de dados. Essa operação pode ser dispendiosa em termos de tempo e recursos para o serviço do Power BI e as fontes de dados.

Observação

O Power BI pode obter uma atualização incremental para evitar truncar e recarregar tabelas inteiras. Para obter mais informações, incluindo planos e licenciamento com suporte, consulte atualização incremental e dados em tempo real para modelos semânticos.

Da perspectiva de um recurso do serviço do Power BI, os modelos de Importação exigem:

  • Memória suficiente para carregar o modelo quando ele é consultado ou atualizado.
  • Processamento de recursos e recursos de memória extras para atualizar os dados.

Modo DirectQuery

O modo DirectQuery é uma alternativa ao modo de Importação. Os modelos desenvolvidos no modo DirectQuery não importam dados. Em vez disso, eles contêm apenas metadados que definem a estrutura do modelo. Quando o modelo é consultado, as consultas nativas são usadas para recuperar os dados da fonte de dados subjacente.

Diagram shows how DirectQuery model issues native queries to the underlying data source.

Há dois motivos principais para considerar desenvolver um modelo DirectQuery:

  • Quando os volumes de dados são muito grandes, mesmo quando são aplicados métodos de redução de dados para carregar em um modelo ou para uma atualização prática.
  • Quando os relatórios e painéis precisam fornecer dados quase em tempo real, para além do que pode ser obtido dentro dos limites de atualização agendada. Os limites de atualização agendada ocorrem oito vezes por dia para a capacidade compartilhada e 48 vezes por dia para a capacidade Premium.

Há diversas vantagens associadas aos modelos DirectQuery:

  • Os limites de tamanho do modelo de Importação não se aplicam.
  • Modelos não exigem atualização de dados agendada.
  • Os usuários de relatórios veem os dados mais recentes ao interagirem com segmentações e filtros de relatório. Além disso, os usuários de relatórios podem atualizar o relatório inteiro para recuperar dados atuais.
  • Relatórios em tempo real podem ser desenvolvidos usando o recurso de Atualização automática de página.
  • Os blocos de painel, quando baseados em modelos DirectQuery, podem ser atualizados automaticamente, a cada 15 minutos.

No entanto, há algumas limitações associadas aos modelos do DirectQuery:

  • As expressões do Power Query/Mashup só podem ser funções que podem ser transpostas para consultas nativas compreendidas pela fonte de dados.
  • As fórmulas DAX são limitadas a usar apenas funções que podem ser transpostas para consultas nativas compreendidas pela fonte de dados. Não há suporte para tabelas calculadas.
  • Não há suporte para os recursos de Insights Rápidos.

Da perspectiva de um recurso do serviço do Power BI, os modelos DirectQuery exigem:

  • Memória mínima para carregar o modelo (somente metadados) quando for consultado.
  • Às vezes, o serviço do Power BI deve usar recursos significativos do processador para gerar e processar consultas enviadas à fonte de dados. Quando essa situação ocorre, pode afetar a taxa de transferência, especialmente quando há usuários consultando o modelo ao mesmo tempo.

Para obter mais informações, confira Usar o DirectQuery no Power BI Desktop.

Modo Composto

O modo Composto pode combinar os modos de Importação e DirectQuery ou integrar várias fontes de dados DirectQuery. Os modelos desenvolvidos no modo Composto dão suporte à configuração do modo de armazenamento para cada tabela de modelo. Esse modo também dá suporte a tabelas calculadas, definidas com DAX.

O modo de armazenamento de tabela pode ser configurado como Importação, DirectQuery ou Dual. Uma tabela configurada como modo de armazenamento Dual é ao mesmo tempo de Importação e DirectQuery, e essa configuração permite que o serviço do Power BI determine o modo mais eficiente a ser usado de acordo com cada consulta.

Diagram shows that a Composite model is a combination of Import and DirectQuery storage modes, configured at table level.

Os modelos Compostos oferecem o melhor dos modos de Importação e DirectQuery. Quando configurados adequadamente, eles podem combinar o alto desempenho de consultas de modelos na memória com a capacidade de recuperar dados de fontes de dados quase que em tempo real.

Para obter mais informações, confira Usar modelos compostos no Power BI Desktop.

Tabelas Importação Pura e DirectQuery

Os modeladores de dados que desenvolvem modelos Compostos provavelmente configuram tabelas de tipo de dimensão no modo de armazenamento Importação ou Dual, bem como tabelas de tipo de fato no modo DirectQuery. Para obter mais informações sobre as funções de tabela de modelo, confira Entender o esquema em estrela e a importância para o Power BI.

Por exemplo, considere um modelo com uma tabela de tipo de dimensão Produto no modo Dual e uma tabela de tipo de fato Vendas no modo DirectQuery. A tabela Produto poderia ser consultada de forma rápida e eficiente na memória para renderizar uma segmentação de relatório. A tabela Vendas também pode ser consultada no modo DirectQuery com a tabela Produto relacionada. A última consulta pode habilitar a geração de uma única consulta SQL nativa e eficiente que une as tabelas Produto e Vendas e as filtra pelos valores de segmentação.

Tabelas híbridas

Os modeladores de dados que desenvolvem modelos Compostos também podem configurar tabelas Fato como tabelas híbridas. Uma tabela híbrida é uma tabela com uma ou várias partições Importação e uma partição DirectQuery. A vantagem de uma tabela híbrida é que ela pode ser consultada com eficiência e rapidez na memória e, ao mesmo tempo, incluir as alterações de dados mais recentes da fonte de dados que ocorreram após o último ciclo de importação, como ilustra a visualização a seguir.

Screenshot shows a hybrid table partition with Archived, Incremental refresh, and Real time rows marked.

A maneira mais fácil de criar uma tabela híbrida é configurar uma política de atualização incremental no Power BI Desktop e habilitar a opção Obter os dados mais recentes em tempo real com DirectQuery (somente Premium) Quando o Power BI aplica uma política de atualização incremental que tem essa opção habilitada, ele particiona a tabela como o esquema de particionamento exibido no diagrama anterior. Para garantir um bom desempenho, configure as tabelas do tipo dimensão no modo de armazenamento duplo para que o Power BI possa gerar consultas SQL nativas eficientes ao consultar a partição do DirectQuery.

Observação

O Power BI dá suporte a tabelas híbridas somente quando o modelo semântico é hospedado em workspaces em capacidades Premium. Dessa forma, você deve carregar seu modelo semântico em um workspace Premium se configurar uma política de atualização incremental com a opção de obter os dados mais recentes em tempo real com o DirectQuery. Para obter mais informações, consulte atualização incremental e dados em tempo real para modelos semânticos.

Também é possível converter uma tabela Importação em uma tabela híbrida adicionando uma partição DirectQuery usando a TMSL (Linguagem de Script de Modelo Tabular), o TOM (Modelo de Objeto Tabular) ou usando uma ferramenta de terceiros. Por exemplo, você pode particionar uma tabela Fato de modo que a maior parte dos dados seja deixada no data warehouse, enquanto apenas uma fração dos dados mais recentes é importada. Essa abordagem pode ajudar a otimizar o desempenho se a maior parte desses dados for dados históricos que são acessados com pouca frequência. Uma tabela híbrida pode ter várias partições Importação, mas apenas uma partição DirectQuery.