Partilhar via


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. Ele se aplica a modelos semânticos que representam uma conexão em tempo real 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 os 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 de importação é o modo mais comum usado para desenvolver modelos semânticos. Este modo proporciona um desempenho rápido graças às consultas na memória. Ele também oferece flexibilidade de design para modeladores e suporte para recursos específicos de serviço do Power BI (Perguntas e Respostas, Insights Rápidos, etc.). Devido a esses pontos fortes, é o modo padrão ao criar 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 rápidos. Também é importante entender que não há nenhum conceito de um modelo de importação sendo parcialmente carregado na memória.

Quando atualizados, os dados são compactados e otimizados e, em seguida, armazenados em disco pelo mecanismo de armazenamento VertiPaq. Quando carregado do disco para a memória, é possível ver 10 vezes a compressão. Portanto, é razoável esperar que 10 GB de dados de origem possam compactar para cerca de 1 GB de tamanho. O tamanho do armazenamento em disco pode alcançar uma redução de 20% em relação ao tamanho compactado. A diferença de tamanho pode ser determinada comparando o tamanho do arquivo do Power BI Desktop com o uso de memória do Gerenciador de Tarefas do arquivo.

A flexibilidade de projeto pode ser alcançada de três maneiras:

Conforme mostrado na imagem a seguir, um modelo de importação pode integrar dados de qualquer número de tipos de fonte de dados suportados.

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

No entanto, embora existam 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 possa consultar o modelo, o que pode pressionar os recursos de capacidade disponíveis, especialmente à medida que o número e o tamanho dos modelos de Importação crescem.
  • Os dados do modelo são tão atuais quanto a atualização mais recente e, portanto, os modelos de importação precisam ser atualizados, geralmente de forma agendada.
  • Uma atualização completa remove todos os dados de todas as tabelas e os recarrega da fonte de dados. Essa operação pode ser cara em termos de tempo e recursos para o serviço do Power BI e as fontes de dados.

Nota

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

Do ponto de vista dos recursos de serviço do Power BI, os modelos de Importação exigem:

  • Memória suficiente para carregar o modelo quando ele é consultado ou atualizado.
  • Recursos de processamento e recursos de memória extra para atualizar dados.

Modo DirectQuery

O modo DirectQuery é uma alternativa ao modo Importar. Os modelos desenvolvidos no modo DirectQuery não importam dados. Em vez disso, eles consistem apenas em metadados que definem a estrutura do modelo. Quando o modelo é consultado, as consultas nativas são usadas para recuperar 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 o desenvolvimento de um modelo DirectQuery:

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

Há várias vantagens associadas aos modelos DirectQuery:

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

No entanto, existem algumas limitações associadas aos modelos 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.
  • Os recursos do Quick Insights não são suportados.

Do ponto de vista dos recursos de serviço do Power BI, os modelos DirectQuery exigem:

  • Memória mínima para carregar o modelo (apenas metadados) quando ele é consultado.
  • Às vezes, o serviço do Power BI deve usar recursos significativos do processador para gerar e processar consultas enviadas para a fonte de dados. Quando essa situação surge, ela pode afetar a taxa de transferência, especialmente quando usuários simultâneos estão consultando o modelo.

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

Modo composto

O modo composto pode misturar os modos Import e DirectQuery ou integrar várias fontes de dados DirectQuery. Os modelos desenvolvidos em modo composto suportam a configuração do modo de armazenamento para cada tabela de modelo. Este modo também suporta tabelas calculadas, definidas com DAX.

O modo de armazenamento de tabela pode ser configurado como Import, DirectQuery ou Dual. Uma tabela configurada como modo de armazenamento duplo é Import e DirectQuery, e essa configuração permite que o serviço do Power BI determine o modo mais eficiente a ser usado em uma base consulta a consulta.

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

Os modelos compostos se esforçam para oferecer o melhor dos modos Import e DirectQuery. Quando configurados adequadamente, eles podem combinar o alto desempenho de consulta de modelos na memória com a capacidade de recuperar dados quase em tempo real de fontes de dados.

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

Tabelas Pure Import e DirectQuery

Os modeladores de dados que desenvolvem modelos compostos provavelmente configurarão tabelas de tipo de dimensão no modo de armazenamento Importar ou Duplo e tabelas de tipo de fato no modo DirectQuery. Para obter mais informações sobre funções de tabela de modelo, consulte Compreender o esquema em estrela e a importância do Power BI.

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

Tabelas híbridas

Os modeladores de dados que desenvolvem modelos compostos também podem configurar tabelas de fatos como tabelas híbridas. Uma tabela híbrida é uma tabela com uma ou várias partições Import e uma partição DirectQuery. A vantagem de uma tabela híbrida é que ela pode ser consultada de forma eficiente e rápida a partir da 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 o 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 suas tabelas de tipo de dimensão no modo de armazenamento duplo para que o Power BI possa gerar consultas SQL nativas eficientes ao consultar a partição DirectQuery.

Nota

O Power BI suporta tabelas híbridas apenas quando o modelo semântico está alojado em espaços de trabalho em capacidades Premium. Assim, você deve carregar seu modelo semântico para um espaço de trabalho 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 Import em uma tabela híbrida adicionando uma partição DirectQuery usando TMSL (Tabular Model Scripting Language) ou TOM (Tabular Object Model) ou usando uma ferramenta de terceiros. Por exemplo, você pode particionar uma tabela de fatos 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 forem dados históricos acessados com pouca frequência. Uma tabela híbrida pode ter várias partições Import, mas apenas uma partição DirectQuery.