Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Com fluxos de dados, você pode trazer grandes quantidades de dados para o Power BI ou o armazenamento fornecido da sua organização. Em alguns casos, no entanto, não é prático atualizar uma cópia completa dos dados de origem em cada atualização. Uma boa alternativa é a atualização incremental, que fornece os seguintes benefícios para fluxos de dados:
- A atualização ocorre mais rapidamente: somente os dados alterados precisam ser atualizados. Por exemplo, atualize apenas os últimos cinco dias de um fluxo de dados de 10 anos.
- A atualização é mais confiável: por exemplo, não é necessário manter conexões de execução longa para sistemas de origem voláteis.
- O consumo de recursos é reduzido: menos dados para atualizar reduz o consumo geral de memória e outros recursos.
A atualização incremental está disponível em fluxos de dados criados no Power BI e fluxos de dados criados no Power Apps. Este artigo mostra telas do Power BI, mas essas instruções se aplicam a fluxos de dados criados no Power BI ou no Power Apps.
Observação
Quando o esquema de uma tabela em um fluxo de dados analítico é alterado, uma atualização completa ocorre para garantir que todos os dados resultantes correspondam ao novo esquema. Como resultado, todos os dados armazenados incrementalmente são atualizados e, em alguns casos, se o sistema de origem não reter dados históricos, serão perdidos.
Usar a atualização incremental em fluxos de dados criados no Power BI requer que o fluxo de dados resida em um espaço de trabalho em capacidade Premium. A atualização incremental no Power Apps requer planos por aplicativo ou por usuário do Power Apps e só está disponível para fluxos de dados com o Azure Data Lake Storage como destino.
No Power BI ou no Power Apps, o uso da atualização incremental requer que os dados de origem ingeridos no fluxo de dados tenham um campo DateTime no qual a atualização incremental pode filtrar.
Configurando a atualização incremental para fluxos de dados
Um fluxo de dados pode conter muitas tabelas. A atualização incremental é configurada no nível da tabela, permitindo que um fluxo de dados mantenha tabelas totalmente atualizadas e tabelas atualizadas incrementalmente.
Para configurar uma tabela atualizada incrementalmente, comece configurando sua tabela como faria com qualquer outra tabela.
Depois que o fluxo de dados for criado e salvo, selecione Atualização
incremental no modo de exibição de tabela, conforme mostrado na imagem a seguir.
Quando você seleciona o ícone, a janela configurações de atualização incremental é exibida. Ative a atualização incremental.
A lista a seguir explica as configurações na janela configurações de atualização incremental .
Ativação/desativação da atualização incremental: ativa ou desativa a política de atualização incremental para a tabela.
Menu suspenso do campo de filtro: seleciona o campo de consulta pelo qual a tabela deve ser filtrada para mostrar incrementos. Esse campo contém apenas campos DateTime. Você não poderá usar a atualização incremental se a tabela não contiver um campo DateTime.
Importante
Escolha um campo de data inalterado para o filtro de atualização incremental. Se o valor do campo for alterado (por exemplo, com um campo modificado de data ), essa alteração poderá levar a falhas de atualização devido a valores duplicados nos dados.
Armazenar/atualizar linhas do passado: o exemplo na imagem anterior ilustra essas próximas configurações.
Neste exemplo, definimos uma política de atualização para armazenar cinco anos de dados no total e atualizar incrementalmente 10 dias de dados. Supondo que a tabela seja atualizada diariamente, as seguintes ações são realizadas para cada operação de atualização:
Adicione um novo dia de dados.
Atualize os últimos 10 dias até a data atual.
Remova os anos de calendário com mais de cinco anos antes da data atual. Por exemplo, se a data atual for 1º de janeiro de 2019, o ano de 2013 será removido.
A primeira atualização de fluxo de dados pode demorar um pouco para importar todos os cinco anos, mas é provável que as atualizações subsequentes sejam concluídas muito mais rapidamente.
Detectar alterações de dados: uma atualização incremental de 10 dias é muito mais eficiente do que uma atualização completa de cinco anos, mas você pode ser capaz de fazer ainda melhor. Ao selecionar a caixa de seleção Detectar alterações de dados , você pode selecionar uma coluna de data/hora para identificar e atualizar somente os dias em que os dados foram alterados. Isso pressupõe que essa coluna exista no sistema de origem, que normalmente é para fins de auditoria. O valor máximo dessa coluna é avaliado para cada um dos períodos no intervalo incremental. Se esses dados não tiverem sido alterados desde a última atualização, não será necessário atualizar o período. No exemplo, isso pode reduzir ainda mais os dias de atualização incremental de 10 para, talvez, 2.
Dica
O design atual requer que a coluna usada para detectar alterações de dados seja mantida e armazenada em cache na memória. Talvez você queira considerar uma das seguintes técnicas para reduzir a cardinalidade e o consumo de memória:
- Persista apenas o valor máximo dessa coluna no momento da atualização, talvez utilizando uma função do Power Query.
- Reduza a precisão a um nível aceitável, considerando os requisitos de frequência de atualização.
Apenas atualize os períodos completos: imagine que sua atualização esteja agendada para ser executada às 4h todos os dias. Se os dados aparecerem no sistema de origem durante essas primeiras quatro horas daquele dia, talvez você não queira contabilize isso. Algumas métricas de negócios, como barris por dia na indústria de petróleo e gás, não são práticas ou sensatas para considerar com base em dias parciais.
Outro exemplo em que apenas atualizar períodos completos é apropriado é atualizar dados de um sistema financeiro. Imagine um sistema financeiro em que os dados do mês anterior são aprovados no 12º dia do mês. Você pode definir o intervalo incremental como um mês e agendar a atualização a ser executada no 12º dia do mês. Com essa opção selecionada, o sistema atualizará os dados de janeiro (o período mensal completo mais recente) em 12 de fevereiro.
Observação
A atualização incremental do fluxo de dados determina as datas de acordo com a seguinte lógica: se uma atualização for agendada, a atualização incremental para fluxos de dados usará o fuso horário definido na política de atualização. Se não houver nenhum agendamento para atualização, a atualização incremental usará o tempo do computador que executa a atualização.
Depois que a atualização incremental é configurada, o fluxo de dados altera automaticamente sua consulta para incluir a filtragem por data. Se o fluxo de dados tiver sido criado no Power BI, você também poderá editar a consulta gerada automaticamente usando o editor avançado no Power Query para ajustar ou personalizar a atualização. Leia mais sobre a atualização incremental e como ela funciona nas seções a seguir.
Observação
Quando você edita o fluxo de dados, o editor do Power Query se conecta diretamente à fonte de dados e não mostra os dados armazenados em cache ou filtrados no fluxo de dados depois que a política de atualização incremental os processa. Para verificar os dados armazenados em cache dentro do fluxo de dados, conecte-se do Power BI Desktop ao fluxo de dados depois de configurar a política de atualização incremental e atualizar o fluxo de dados.
Atualização incremental e tabelas vinculadas versus tabelas computadas
Para tabelas vinculadas , a atualização incremental atualiza a tabela de origem. Como as tabelas vinculadas são simplesmente um ponteiro para a tabela original, a atualização incremental não afeta a tabela vinculada. Quando a tabela de origem é atualizada de acordo com sua política de atualização definida, qualquer tabela vinculada deve assumir que os dados na fonte são atualizados.
As tabelas computadas são baseadas em consultas em execução em um armazenamento de dados, que pode ser outro fluxo de dados. Dessa forma, as tabelas computadas se comportam da mesma maneira que as tabelas vinculadas.
Como tabelas computadas e tabelas vinculadas se comportam da mesma forma, os requisitos e as etapas de configuração são os mesmos para ambos. Uma diferença é que, para tabelas computadas, em determinadas configurações, a atualização incremental não pode ser executada de forma otimizada devido à forma como as partições são criadas.
Mudança entre atualização incremental e completa
Os fluxos de dados dão suporte à alteração da política de atualização entre a atualização incremental e a completa. Quando ocorre uma alteração em qualquer direção (completa para incremental ou incremental para completa), a alteração afeta o fluxo de dados após a próxima atualização.
Quando você move um fluxo de dados da atualização completa para incremental, a nova lógica de atualização atualiza o fluxo de dados aderindo à janela de atualização e incrementando conforme definido nas configurações de atualização incremental.
Quando você move um fluxo de dados de atualização incremental para completa, todos os dados acumulados na atualização incremental substituem a política definida na atualização completa. Você deve aprovar essa ação.
Suporte a fuso horário de atualização incremental
A atualização incremental do fluxo de dados depende do tempo de execução. A filtragem da consulta depende do dia em que ela é executada.
Para acomodar essas dependências e garantir a consistência de dados, a atualização incremental para fluxos de dados implementa a seguinte heurística para cenários de atualização agora :
No caso em que uma atualização agendada é definida no sistema, a atualização incremental usa as configurações de fuso horário da seção de atualização agendada. Esse processo garante que, qualquer que seja o fuso horário da pessoa que está atualizando o fluxo de dados, ele seja sempre consistente com a definição do sistema.
Se nenhuma atualização agendada for definida, os fluxos de dados usarão o fuso horário do computador do usuário que está executando a atualização.
A atualização incremental também pode ser invocada usando APIs. Nesse caso, a chamada à API pode conter uma configuração de fuso horário usada na atualização. O uso de APIs pode ser útil para fins de teste e validação.
Detalhes da implementação da atualização incremental
Os fluxos de dados usam o particionamento para atualização incremental. A atualização incremental nos fluxos de dados mantém o número mínimo de partições para atender aos requisitos de política de atualização. Partições antigas que saem do intervalo são descartadas, o que mantém uma janela deslizante. As partições são mescladas de forma oportunista, reduzindo o número total de partições necessárias. Esse número mínimo de partições melhora a compactação e, em alguns casos, pode melhorar o desempenho da consulta.
Os exemplos nesta seção compartilham a seguinte política de atualização:
- Armazenar linhas no último trimestre
- Atualizar linhas nos últimos 10 dias
- Detectar alterações de dados=False
- Somente atualizar dias completos = True
Mesclar partições
Neste exemplo, as partições diárias são mescladas automaticamente ao nível do mês depois de saírem do intervalo incremental. As partições no intervalo incremental precisam ser mantidas em um nível de granularidade diária para permitir que somente aqueles dias sejam atualizados. A operação de atualização com a Data de Execução 11/12/2016 mescla os dias em novembro, pois eles ficam fora do intervalo incremental.
Remover partições antigas
Partições antigas que ficam fora do intervalo total são removidas. A operação de atualização com Data de Execução 1/02/2017 exclui a partição do 3º trimestre de 2016 porque está fora do intervalo total.
Recuperação de falha prolongada
Este exemplo simula como o sistema se recupera normalmente de uma falha prolongada. Digamos que a atualização não seja executada com êxito porque as credenciais da fonte de dados expiraram e o problema leva 13 dias para ser resolvido. O intervalo incremental é de apenas 10 dias.
A próxima operação de atualização bem-sucedida, com a Data de Execução 1/15/2017, precisa armazenar novamente os 13 dias ausentes e atualizá-los. Ele também precisa atualizar os últimos nove dias porque eles não foram atualizados como previsto no cronograma regular. Em outras palavras, o intervalo incremental é aumentado de 10 para 22 dias.
A próxima operação de atualização, com a Data de Execução 1/16/2017, aproveita a oportunidade para mesclar os dias em dezembro e os meses no 4º trimestre de 2016.
Atualização incremental de fluxo de dados e conjuntos de dados
A atualização incremental do fluxo de dados e a atualização incremental do conjunto de dados foram projetadas para funcionar em conjunto. É aceitável e compatível ter uma tabela com atualização incremental em um fluxo de dados completamente carregada em um conjunto de dados ou ter uma tabela totalmente carregada em um fluxo de dados, que é carregada incrementalmente em um conjunto de dados.
Ambas as abordagens funcionam de acordo com suas definições especificadas nas configurações de atualização. Mais informações: Atualização incremental no Power BI Premium
Conteúdo relacionado
Este artigo descreveu a atualização incremental para fluxos de dados. Aqui estão mais alguns artigos que podem ser úteis:
- Preparação de dados de autoatendimento no Power BI
- Criar tabelas computadas em fluxos de dados
- Conectar-se a fontes de dados para fluxos de dados
- Vincular tabelas entre fluxos de dados
- Criar e usar fluxos de dados no Power BI
- Usando fluxos de dados com fontes de dados locais
- Recursos de desenvolvedor para fluxos de dados do Power BI
Para obter mais informações sobre o Power Query e a atualização agendada, você pode ler estes artigos:
Para obter mais informações sobre o Common Data Model, você pode ler seu artigo de visão geral: