Compartilhar via


Solucionar problemas de atualização incremental e dados em tempo real

Há duas fases ao implementar uma atualização incremental e uma solução de dados em tempo real, sendo a primeira configurando parâmetros, filtrando e definindo uma política no Power BI Desktop e a segunda sendo a operação de atualização de modelo semântico inicial e as atualizações subsequentes no serviço. Este artigo discute a solução de problemas separadamente para cada uma dessas fases.

Tendo particionado a tabela no serviço do Power BI, é importante ter em mente que tabelas atualizadas incrementalmente que também estão recebendo dados em tempo real com o DirectQuery agora estão operando no modo híbrido, o que significa que elas operam no modo de importação e DirectQuery. Todas as tabelas com relações com uma tabela híbrida atualizada incrementalmente devem usar o modo Dual para que possam ser usadas no modo de importação e DirectQuery sem penalidades de desempenho. Além disso, os visuais de relatório podem armazenar em cache os resultados para evitar o envio de consultas de volta à fonte de dados, o que impediria a tabela de receber as atualizações de dados mais recentes em tempo real. A seção de solução de problemas final aborda esses problemas de modo híbrido.

Antes de solucionar problemas de atualização incremental e dados em tempo real, examine a atualização incremental para modelos e dados em tempo real e informações passo a passo em Configurar atualização incremental e dados em tempo real.

Configurando no Power BI Desktop

A maioria dos problemas que ocorrem ao configurar a atualização incremental e os dados em tempo real estão relacionados ao folding de consultas. Conforme descrito na atualização incremental para visão geral de modelos – fontes de dados com suporte, sua fonte de dados deve dar suporte à dobragem de consultas.

Problema: o carregamento de dados leva muito tempo

No Editor do Power Query, depois de selecionar Aplicar, o carregamento de dados exige um tempo excessivo e recursos de computador. Há várias causas potenciais.

Causa: Incompatibilidade de tipo de dados

Esse problema pode ser causado por uma incompatibilidade de tipo de dados em que Date/Time é o tipo de dados necessário para os parâmetros RangeStart e RangeEnd, mas a coluna de data da tabela na qual os filtros são aplicados não é do tipo de dados Date/Time, ou vice-versa. Os tipos de dados tanto dos parâmetros quanto da coluna de dados filtrados devem ser do tipo de dados Date/Time e o formato deve ser o mesmo. Caso contrário, a consulta não pode ser dobrada.

Solução: verificar o tipo de dados

Verifique se a coluna de data/hora da tabela de atualização incremental é do tipo de Date/Time dados. Se a tabela não contiver uma coluna de tipo de dados Date/Time, mas usar um tipo de dados inteiro, você poderá criar uma função que converte o valor de data/hora nos parâmetros RangeStart e RangeEnd para corresponder à chave substituta inteira da tabela de fonte de dados. Para saber mais, consulte Configurar atualização incremental – Converter DateTime para inteiro.

Causa: a fonte de dados não dá suporte ao dobramento de consultas

Conforme descrito em atualização incremental e dados em tempo real para modelos – Requisitos, a atualização incremental foi projetada para fontes de dados que suportam a conversão de consultas. Certifique-se de que as consultas da fonte de dados estejam sendo corretamente otimizadas no Power BI Desktop antes de publicar no serviço, onde os problemas de dobragem de consulta podem ser significativamente agravados. Essa abordagem é especialmente importante ao incluir dados em tempo real em uma política de atualização incremental, pois a partição de DirectQuery, que opera em tempo real, exige a otimização de consultas.

Solução: verificar e testar consultas

Na maioria das vezes, um aviso é mostrado na caixa de diálogo da política de atualização incremental indicando se a consulta a ser executada na fonte de dados não suporta o dobramento de consultas. No entanto, em alguns casos, pode ser necessário garantir ainda mais que a dobragem de consultas seja possível. Se possível, monitore a consulta que está sendo passada para a fonte de dados usando uma ferramenta como o SQL Profiler. Uma consulta com filtros baseados em RangeStart e RangeEnd deve ser executada em uma única solicitação.

Você também pode especificar um curto período de data/hora nos parâmetros RangeStart e RangeEnd que incluem no máximo algumas milhares de linhas. Se a carga de dados filtrados da fonte de dados para o modelo levar muito tempo e for exigente em termos de processamento, provavelmente isso significa que a consulta não está sendo otimizada.

Se você determinar que a consulta não está sendo dobrada, consulte as orientações de dobragem de consulta no Power BI Desktop e o processo de dobragem de consulta no Power Query para obter ajuda na identificação do que pode estar impedindo a execução de dobragem de consulta e como, ou se, a fonte de dados pode realmente suportar o dobramento de consulta.

Atualização semântica do modelo no serviço

A solução de problemas de atualização incremental no serviço difere dependendo do tipo de capacidade em que seu modelo foi publicado. Modelos semânticos em capacidades Premium dão suporte ao uso de ferramentas como o SSMS (SQL Server Management Studio) para exibir e atualizar seletivamente partições individuais. Os modelos do Power BI Pro, por outro lado, não fornecem acesso à ferramenta por meio do ponto de extremidade XMLA, portanto, a solução de problemas de atualização incremental pode exigir um pouco mais de tentativa e erro.

Problema: a atualização inicial atinge o tempo limite

A atualização agendada para modelos do Power BI Pro em compartilhamento de capacidade possui um limite de tempo de duas horas. Esse limite de tempo é aumentado para cinco horas para modelos em uma capacidade Premium. Os sistemas de fonte de dados também podem impor um limite de tamanho de retorno de consulta ou tempo limite de consulta.

Causa: as consultas de fonte de dados não estão sendo dobradas

Embora os problemas com a dobragem de consultas geralmente possam ser determinados no Power BI Desktop antes da publicação no serviço, é possível que as consultas de atualização de modelo não estejam sendo dobradas, levando a tempos excessivos de atualização e utilização de recursos do mecanismo de mashup de consulta. Essa situação ocorre porque uma consulta é criada para cada partição no modelo. Se as consultas não estiverem sendo agregadas e os dados não estiverem sendo filtrados na fonte de dados, o mecanismo tentará filtrar os dados.

Solução: Verificar a otimização de consultas

Use uma ferramenta de rastreamento na fonte de dados para determinar se a consulta que está sendo passada para cada partição é uma única consulta que inclui um filtro com base nos parâmetros RangeStart e RangeEnd. Se não, verifique se o encolhimento de consulta está ocorrendo no modelo do Power BI Desktop ao carregar um pequeno volume de dados filtrados no modelo. Caso contrário, corrija-o primeiro no modelo, execute uma atualização apenas dos metadados no modelo (usando o ponto de extremidade XMLA) ou, se for um modelo do Power BI Pro que está em uma capacidade compartilhada, exclua o modelo incompleto no serviço, republique-o e tente realizar novamente uma operação de atualização inicial.

Se você determinar que as consultas não estão sendo dobradas, consulte as diretrizes de dobragem de consulta no Power BI Desktop e as diretrizes de dobragem de consulta do Power Query para entender o que pode estar impedindo a dobragem de consultas.

Causa: os dados carregados em partições são muito grandes

Solução: reduzir o tamanho do modelo

Em muitos casos, o tempo limite é causado pelo fato de que a quantidade de dados que precisam ser consultados e carregados nas partições do modelo excede os limites de tempo impostos pela capacidade. Reduza o tamanho ou a complexidade do modelo ou considere dividir o modelo em partes menores.

Solução: habilitar o formato de armazenamento de modelo grande

Para modelos publicados em capacidades Premium, se o modelo crescer além de 1 GB ou mais, você poderá melhorar o desempenho da operação de atualização e garantir que o modelo não limite os limites de tamanho máximos habilitando o formato de armazenamento de modelo grande antes de executar a primeira operação de atualização no serviço. Para saber mais, confira Modelos grandes no Power BI Premium.

Solução: atualização inicial do Bootstrap

Para modelos publicados em capacidades Premium, você pode inicializar a operação de atualização inicial. A inicialização (bootstrapping) permite que o serviço crie objetos de tabela e partição para o modelo, mas não permite carregar e processar dados históricos em nenhuma das partições. Para saber mais, confira Atualização incremental avançada –Impedir tempos limite na atualização completa inicial.

Causa: tempo limite da consulta da fonte de dados

As consultas podem ser limitadas por um limite de tempo padrão para a fonte de dados.

Solução: substituir o limite de tempo na expressão de consulta

Muitas fontes de dados permitem substituir o tempo limite na expressão de consulta. Para saber mais, confira a atualização incremental para modelos – Limites de tempo.

Problema: a atualização falha devido a valores duplicados

Causa: as datas de postagem foram alteradas

Com uma operação de atualização, somente os dados que foram alterados na fonte de dados são atualizados no modelo. Como os dados são divididos por uma data, é recomendável que as datas de postagem (transação) não sejam alteradas.

Se uma data for alterada acidentalmente, dois problemas poderão ocorrer: os usuários notam que alguns totais foram alterados nos dados históricos (o que não deveria acontecer) ou durante uma atualização um erro será retornado indicando que um valor exclusivo não é de fato exclusivo. Para este último, essa situação pode acontecer quando a tabela com a atualização incremental configurada é usada em uma relação 1:N com outra tabela como o lado 1 e deve ter valores exclusivos. Quando os dados são alterados para uma ID específica, essa ID aparece em outra partição e o mecanismo detecta que o valor não é exclusivo.

Solução: atualizar partições específicas

Quando há uma necessidade empresarial de alterar alguns dados passados das datas, uma solução possível é usar o SSMS para atualizar todas as partições do ponto em que a alteração está localizada até a partição de atualização atual, mantendo assim o 1 lado da relação exclusivo.

Problema: os dados são truncados

Causa: O limite de consulta da fonte de dados foi excedido

Algumas fontes de dados, como o Azure Data Explorer, o Log Analytics e o Application Insights, têm um limite de 64 MB (compactados) em dados que podem ser retornados para uma consulta externa. O Azure Data Explorer pode retornar um erro explícito, mas para outros como Log Analytics e Application Insights, os dados retornados são truncados.

Solução: especificar períodos menores de atualização e armazenamento

Especifique períodos menores de atualização e armazenamento na política. Por exemplo, se você especificou um período de atualização de um ano e um erro de consulta é retornado ou os dados retornados são truncados, tente um período de atualização de 12 meses. Você deseja garantir que as consultas para a partição de atualização atual ou quaisquer partições históricas com base nos períodos de Atualização e Armazenamento não retornem mais de 64 MB de dados.

Problema: a atualização falha devido a conflitos de chave de partição

Causa: a data na coluna de data na fonte de dados é atualizada

O filtro na coluna de data é usado para particionar dinamicamente os dados em intervalos de períodos no serviço do Power BI. A atualização incremental não foi projetada para dar suporte a casos em que a coluna de data filtrada é atualizada no sistema de origem. Uma atualização é interpretada como uma inserção e uma exclusão, não uma atualização real. Se a exclusão ocorrer no intervalo histórico e não no intervalo incremental, ela não será detectada, o que pode causar falhas de atualização de dados devido a conflitos de chave de partição.

Modo híbrido no serviço

Quando o Power BI aplica uma política de atualização incremental com dados em tempo real, ele transforma a tabela atualizada incrementalmente em uma tabela híbrida que opera no modo de importação e DirectQuery. Observe a partição DirectQuery no final da lista de partições a seguir de uma tabela de exemplo. A presença de uma partição DirectQuery tem implicações para tabelas relacionadas e visuais de relatório que consultam essa tabela.

Captura de tela da tabela híbrida.

Problema: o desempenho da consulta é ruim

As tabelas híbridas que operam no modo de importação e DirectQuery exigem que as tabelas relacionadas funcionem no modo Dual para que possam atuar como armazenadas em cache ou não armazenadas em cache, dependendo do contexto da consulta enviada ao modelo do Power BI. O modo duplo permite que o Power BI reduza o número de relações limitadas no modelo e gere consultas de fonte de dados eficientes para garantir um bom desempenho. Relações limitadas não podem ser enviadas para a fonte de dados, o que requer que o Power BI recupere mais dados do que o necessário. Como tabelas duplas podem atuar como tabelas DirectQuery ou Import, essa situação é evitada.

Ao configurar uma política de atualização incremental, o Power BI Desktop lembra você de alternar todas as tabelas relacionadas para o modo Dual ao selecionar Obter os dados mais recentes em tempo real com o DirectQuery (somente Premium). Além disso, examine todas as relações de tabela existentes no Modo de Exibição de Modelo.

Captura de tela mostrando a conversão de tabelas relacionadas em modo duplo.

Atualmente, as tabelas que operam no modo DirectQuery são facilmente alteradas para o modo Dual. Nas propriedades da tabela, em Avançado, selecione Dual na caixa de listagem de modo de armazenamento. No entanto, as tabelas que operam no modo de importação exigem trabalho manual. Tabelas duplas têm as mesmas restrições funcionais que as tabelas DirectQuery. Portanto, o Power BI Desktop não pode converter tabelas de importação porque elas podem depender de outras funcionalidades não disponíveis no modo Dual. Você deve recriar manualmente essas tabelas no modo DirectQuery e convertê-las no modo Dual. Para saber mais, confira Gerenciar o modo de armazenamento no Power BI Desktop.

Problema: os visuais de relatório não mostram os dados mais recentes

Causa: os resultados da consulta em cache do Power BI melhoram o desempenho e reduzem a carga de back-end

Por padrão, o Power BI armazena em cache os resultados da consulta, de modo que as consultas de visuais de relatório possam ser processadas rapidamente, mesmo que sejam baseadas no DirectQuery. Evitar consultas desnecessárias da fonte de dados melhora o desempenho e reduz a carga da fonte de dados, mas também pode significar que as alterações de dados mais recentes na origem não estão incluídas nos resultados.

Solução: configurar a atualização automática de página

Para continuar buscando as alterações de dados mais recentes da origem, configure a atualização automática de página para seus relatórios no serviço do Power BI. A atualização automática de página pode ser executada em intervalos fixos, como cinco segundos ou dez minutos. Quando esse intervalo específico é atingido, todos os elementos visuais da página enviam uma consulta de atualização para a fonte de dados e realizam a atualização de maneira correspondente. Como alternativa, você pode atualizar os visuais de uma página com base na detecção de mudanças nos dados. Essa abordagem requer uma medida de detecção de alterações que o Power BI usa para sondar a fonte de dados para obter alterações. A detecção de alterações só tem suporte em workspaces que fazem parte de uma capacidade Premium. Para saber mais, confira Atualização automática de página no Power BI.