Partilhar via


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

Este artigo fornece uma explicação técnica dos modos semânticos do modelo Power BI. Aplica-se a modelos semânticos que representam uma ligação ativa a um modelo de Serviços de Análise alojados externamente, bem como a modelos desenvolvidos no Power BI Desktop. O artigo enfatiza a justificação de cada modo e os possíveis impactos nos recursos de capacidade do Power BI.

Os três modos semânticos do modelo são:

Modo de importação

O modo de importação é o modo mais comum utilizado para desenvolver modelos semânticos. Este modo oferece desempenho rápido graças à consulta em memória. Também oferece flexibilidade de design aos modeladores e suporte para funcionalidades específicas de serviço Power BI (Q&A, Quick Insights, etc.). Devido a estas qualidades, é o modo predefinido ao criar uma nova solução Power BI Desktop.

É importante perceber que os dados importados são sempre armazenados no disco. Quando consultados ou atualizados, os dados devem estar totalmente carregados na memória da capacidade do Power BI. Uma vez na memória, os modelos de importação podem então obter resultados de consulta muito rápidos. Também é importante perceber que não existe a possibilidade de um modelo de importação estar parcialmente carregado na memória.

Quando atualizados, os dados são comprimidos e otimizados e depois armazenados no disco pelo motor de armazenamento VertiPaq. Quando carregado do disco para a memória, é possível observar uma compressão até dez vezes. Por isso, é razoável esperar que 10 GB de dados de origem possam ser comprimidos para cerca de 1 GB. O tamanho do armazenamento no disco pode alcançar uma redução de 20% em relação ao tamanho comprimido. A diferença de tamanho pode ser determinada comparando o tamanho do ficheiro Power BI Desktop com o uso de memória do ficheiro no Gestor de Tarefas.

A flexibilidade de design pode ser alcançada de três formas:

  • Integre dados armazenando em cache dados de fluxos de dados e fontes externas, independentemente do tipo ou formato da fonte de dados.
  • Use todo o conjunto de funções da linguagem de fórmulas M do Power Query, referida como M, ao criar consultas de preparação de dados.
  • Aplique todo o conjunto de funções de Expressões de Análise de Dados (DAX) ao melhorar o modelo com lógica de negócio. Há suporte para colunas calculadas, tabelas calculadas e medidas.

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

O diagrama mostra que um modelo de importação pode integrar dados de qualquer número de tipos de fonte de dados externos.

No entanto, embora existam vantagens significativas associadas aos modelos de importação, também existem desvantagens:

  • Todo o modelo deve ser carregado para a memória antes que o Power BI possa consultar o modelo, o que pode exercer pressão sobre os recursos de capacidade disponíveis, especialmente à medida que o número e o tamanho dos modelos de importação aumentam.
  • Os dados dos modelos só são tão atuais quanto a última atualização, pelo que os modelos de importação precisam de ser atualizados, geralmente de forma programada.
  • Uma atualização completa remove todos os dados de todas as tabelas e recarrega-os a partir da fonte de dados. Esta operação pode ser dispendiosa em termos de tempo e recursos para o serviço Power BI e para as fontes de dados.

Observação

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

Do ponto de vista dos recursos de serviço Power BI, os modelos de importação requerem:

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

Modo DirectQuery

O modo DirectQuery é uma alternativa ao modo Importação. Modelos desenvolvidos em modo DirectQuery não importam dados. Em vez disso, consistem apenas em metadados que definem a estrutura do modelo. Quando o modelo é consultado, são usadas consultas nativas para recuperar dados da fonte subjacente.

O diagrama mostra como o modelo DirectQuery emite consultas nativas para a fonte de dados subjacente.

Existem duas razões principais para considerar o desenvolvimento de um modelo DirectQuery:

  • Quando os volumes de dados são demasiado grandes, mesmo com a aplicação de métodos de redução de dados, para serem carregados num modelo ou para renovar de forma prática.
  • Quando os relatórios e dashboards precisam de fornecer dados quase em tempo real , para além do que pode ser alcançado dentro dos limites de atualização programados. Os limites de atualização programados são oito vezes por dia para capacidade partilhada e 48 vezes por dia para capacidade Premium.

Existem várias vantagens associadas aos modelos DirectQuery:

  • Os limites de tamanho do modelo de importação não se aplicam.
  • Os modelos não requerem atualização de dados agendada.
  • Os utilizadores de relatórios veem os dados mais recentes ao interagirem com filtros de relatórios e slicers. Além disso, os utilizadores do relatório podem atualizar todo o relatório para recuperar os dados atuais.
  • Relatórios em tempo real podem ser desenvolvidos utilizando a funcionalidade de atualização automática de páginas .
  • Os blocos de dashboard, quando baseados em modelos DirectQuery, podem ser atualizados automaticamente com uma frequência de 15 em 15 minutos.

No entanto, existem algumas limitações associadas aos modelos DirectQuery:

  • As expressões Power Query/Mashup só podem ser funções que podem ser transpostas para consultas nativas compreendidas pela fonte de dados.
  • As fórmulas DAX estão limitadas a usar apenas funções que podem ser transpostas para consultas nativas compreendidas pela fonte de dados. Tabelas calculadas não são suportadas.
  • As funcionalidades Quick Insights não são suportadas.

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

  • Memória mínima para carregar o modelo (apenas metadados) quando for consultado.
  • Por vezes, o serviço Power BI tem de utilizar recursos significativos do processador para gerar e processar consultas enviadas à fonte de dados. Quando esta situação ocorre, pode afetar a taxa de transferência, especialmente quando utilizadores em simultâneo estão a consultar o modelo.

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

Modo composto

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

O modo de armazenamento de tabela pode ser configurado como Importação, Consulta Direta ou Dual. Uma tabela configurada no modo dual de armazenamento usa tanto Importar como DirectQuery, e essa configuração permite ao serviço Power BI determinar o modo mais eficiente a utilizar consulta a consulta.

O diagrama mostra que um modelo composto é uma combinação dos modos de armazenamento Import e DirectQuery, configurados ao nível da tabela.

Os modelos compostos procuram oferecer o melhor dos modos de Importação e DirectQuery. Quando configurados adequadamente, podem combinar o elevado desempenho de consulta dos modelos em 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 de Importação Pura e DirectQuery

Os modeladores de dados que desenvolvem modelos compostos tendem a configurar tabelas de tipos de dimensão em modo Importação ou Armazenamento Dual, e tabelas de tipos de factos em modo DirectQuery. Para mais informações sobre os papéis das tabelas de modelos, veja Compreender o esquema estrela e a importância do Power BI.

Por exemplo, considere um modelo com uma tabela do tipo dimensão Produto em modo Dual, e uma tabela do tipo fato Vendas em modo DirectQuery. A tabela Product podia ser consultada de forma eficiente e rápida a partir da memória para renderizar um segmentador de relatório. A tabela de Vendas também podia ser consultada no modo DirectQuery com a tabela de Produtos relacionada. Esta última consulta poderia permitir a geração de uma única consulta SQL nativa eficiente que junta as tabelas de Produto e Vendas , e filtra pelos valores do slicer.

Tabelas híbridas

Os modeladores de dados que desenvolvem modelos compostos também podem configurar tabelas de factos como tabelas híbridas. Uma tabela híbrida é uma tabela com uma ou várias partições de importação e uma partição DirectQuery. A vantagem de uma tabela híbrida é que pode ser consultada de forma eficiente e rápida a partir da memória, ao mesmo tempo que inclui as últimas alterações de dados da fonte de dados que ocorreram após o último ciclo de importação, como ilustra a visualização seguinte.

A captura de ecrã mostra uma partição de tabela híbrida com as linhas arquivadas, atualização incremental e em tempo real marcadas.

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

Observação

O Power BI suporta tabelas híbridas apenas quando o modelo semântico está alojado em espaços de trabalho com capacidades Premium. Assim, deve carregar o 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 mais informações, consulte Atualização incremental e dados em tempo real para modelos semânticos.

Também é possível converter uma tabela de importação numa tabela híbrida adicionando uma partição DirectQuery usando a Tabular Model Scripting Language (TMSL), o Tabular Object Model (TOM) ou utilizando uma ferramenta de terceiros. Por exemplo, pode particionar uma tabela de factos de modo que a maior parte dos dados fique no data warehouse enquanto apenas uma fração dos dados mais recentes seja importada. Esta abordagem pode ajudar a otimizar o desempenho se a maior parte destes dados forem dados históricos que são raramente acedidos. Uma tabela híbrida pode ter várias partições de importação, mas apenas uma partição DirectQuery.