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.

Após particionar a tabela no serviço do Power BI, é importante lembrar que tabelas atualizadas incrementalmente que também estão obtendo 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 afetar o desempenho. Além disso, os visuais de relatório podem armazenar em cache os resultados para evitar o retorno das consultas para a 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.

Configurar no Power BI Desktop

A maioria dos problemas que ocorrem ao configurar a atualização incremental e os dados em tempo real tem a ver com a dobragem 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 demanda uma quantidade excessiva de tempo e de recursos do computador. Há várias causas possíveis.

Causa: incompatibilidade de tipo de dados

Esse problema pode ser causado por uma incompatibilidade de tipo de dados, na qual 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 é um tipo de dado Date/Time ou vice-versa. O tipo de dados de parâmetros e a coluna de dados filtrados precisam ser do tipo de dados de Date/Time e o formato precisa ser o mesmo. Caso contrário, a consulta não poderá ser dobrada.

Solução: verificar o tipo de dados

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

Causa: a fonte de dados não dá suporte à dobragem de consultas

Conforme descrito na atualização incremental e em dados em tempo real para modelos – Requisitos, a atualização incremental foi projetada para fontes de dados que dão suporte à dobra de consulta. Verifique se as consultas de fonte de dados estão sendo dobradas no Power BI Desktop antes de publicar no serviço, em que os problemas de dobragem de consultas podem ser significativamente compostos. Essa abordagem é muito importante ao incluir dados em tempo real em uma política de atualização incremental, pois a partição DirectQuery em tempo real requer a dobragem de consultas.

Solução: verificar e testar consultas

Na maioria dos casos, um aviso é mostrado na caixa de diálogo Política de atualização incremental que indica se a consulta a ser executada na fonte de dados não dá suporte à dobragem de consultas. No entanto, em alguns casos, pode ser necessário garantir 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 precisa ser executada em apenas uma consulta.

Você também pode especificar um período curto de data/hora nos parâmetros RangeStart e RangeEnd que incluirão, no máximo, alguns milhares de linhas. Se a carga de dados filtrados da fonte de dados para o modelo levar muito tempo e for processada de forma intensiva, provavelmente significa que a consulta não está sendo dobrada.

Se você determinar que a consulta não está sendo dobrada, confira as Diretrizes de dobragem de consultas no Power BI Desktop e na Dobragem de consultas do Power Query para obter ajuda para identificar o que pode estar impedindo a dobragem de consultas e como, ou se, a fonte de dados pode até mesmo dar suporte à dobragem da 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 avaliação e erro.

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

A atualização agendada para modelos do Power BI Pro em uma capacidade compartilhada tem 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 dobradas e os dados não estiverem sendo filtrados na fonte de dados, o mecanismo tentará filtrar os dados.

Solução: verificar a dobragem 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 consulta única que inclui um filtro com base nos parâmetros RangeStart e RangeEnd. Caso contrário, verifique se a dobragem de consultas está ocorrendo no modelo de Power BI Desktop ao carregar uma pequena quantidade filtrada de dados no modelo. Caso contrário, fixe-o primeiro no modelo, execute uma atualização somente de metadados para o modelo (usando o ponto de extremidade XMLA) ou, se um modelo do Power BI Pro em uma capacidade compartilhada, exclua o modelo incompleto no serviço, republique e tente uma operação de atualização inicial novamente.

Se você determinar que as consultas não estão sendo dobradas, confira as Diretrizes de dobragem de consultas no Power BI Desktop e em Dobragem de consultas do Power Query para obter ajuda com a identificação do 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 pela quantidade de dados que devem ser consultados e carregados nas partições de 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: inicializar a atualização inicial

Para modelos publicados em capacidades Premium, você pode inicializar a operação de atualização inicial. O inicialização permite que o serviço crie objetos de tabela e partição para o modelo, mas não carregue e processe 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 de consulta da fonte de dados

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

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

Muitas fontes de dados permitem a substituição do limite de tempo 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, a recomendação é que as datas de postagem (transação) não sejam alteradas.

Se uma data for alterada acidentalmente, dois problemas podem ocorrer: os usuários observam alguns totais alterados nos dados históricos (isso não deve acontecer) ou, durante uma atualização, um erro é retornado indicando que um valor exclusivo não é exclusivo de fato. Para o ú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 forem alterados para uma ID específica, essa ID aparecerá em outra partição e o mecanismo detectará que o valor não é exclusivo.

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

Quando há uma necessidade comercial 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 atual de atualização, mantendo o lado 1 da relação exclusivo.

Problema: os dados estão truncados

Causa: o limite de consultas da fonte de dados foi excedido

Algumas fontes de dados, como o Azure Data Explorer, Log Analytics e 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 o Log Analytics e o Application Insights, os dados retornados são truncados.

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

Especifique períodos de atualização e de armazenamento menores na política. Por exemplo, se você especificou um período de atualização de um ano e um erro de consulta for retornado ou os dados retornados forem truncados, tente um período de atualização de 12 meses. Convém garantir que as consultas da partição de atualização atual ou quaisquer partições históricas com base na atualização e nos períodos de 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 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 como uma atualização real. Se a exclusão ocorrer no intervalo histórico e não no intervalo incremental, ela não será selecionada, o que pode causar falhas de atualização de dados devido a conflitos da chave de partição.

Modo híbrido no serviço (versão prévia)

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, bem como visuais de relatório que consultam essa tabela.

Screenshot of hybrid table.

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 por push para a fonte de dados que exige que o Power BI recupere mais dados do que o necessário. Como as tabelas Duplas podem atuar como tabelas do DirectQuery ou de Importação, 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, verifique se você avaliou todas as relações de tabela existentes na Exibição de Modelo.

Screenshot showing converting related tables to dual mode.

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

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

Causa: os resultados da consulta de caches 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 para que as consultas de visuais de relatório possam ser processadas rapidamente, mesmo que sejam baseadas no DirectQuery. Evitar consultas de fonte de dados desnecessárias aprimora 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 dos 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, é possível atualizar os visuais em uma página com base na detecção de alterações nos dados. Essa abordagem exige 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.