Quem trabalha com dados sabe que, muitas vezes, nos deparamos com grandes conjuntos de dados (datasets), os quais demandam tempo e recursos para serem atualizados. Mas será mesmo necessário atualizar esses dados, uma vez que eles não sofrem mais alterações? Ou será que, nesse contexto, fazer uma atualização incremental é suficiente?
No Power BI, existem duas maneiras de realizar o carregamento dos dados: por meio de uma carga completa ou de uma carga incremental (também chamada de atualização incremental). Na primeira opção, a cada atualização é realizado um carregamento para todo o conjunto de dados, excluindo os dados anteriores. Já na atualização incremental, o carregamento é realizado apenas para a parte dos datasets que pode sofrer alterações. Com isso, as atualizações ficam mais rápidas e confiáveis, além de minimizar o consumo de recursos.
Neste post, vamos falar um pouco mais sobre esse último recurso. Em resumo, vamos demonstrar como configurar a atualização incremental, tanto no Power BI Desktop quanto para um fluxo de dados (dataflow).
Configurando a atualização incremental no Power BI Desktop
Um dos requisitos para a configuração da atualização incremental é a existência de uma coluna de data, conforme observado na imagem abaixo:
Em segundo lugar, vamos criar os parâmetros “RangeStart” e “RangeEnd”, respeitando exatamente essa nomenclatura. Esses parâmetros são essenciais para que a atualização incremental de fato ocorra. São eles os responsáveis por delimitar qual intervalo de tempo a base terá no Power BI.
Para criá-los, vamos clicar em “Gerenciar Parâmetros (Manage Parameter)”, na aba “Página Inicial (Home)” do Power Query:
Em seguida, devemos levar em consideração os tipos de dados, que devem ser “Data/hora”:
Depois que criarmos os parâmetros, precisaremos filtrar o campo de data de inserção dos dados na tabela. No nosso exemplo, temos a coluna [OrderDate] da tabela “FactInternetSales”:
O filtro deve seguir a lógica mostrada na imagem abaixo:
Depois dessa ação, os dados serão filtrados com base nos valores definidos para os parâmetros RangeStart e RangeEnd.
Após aplicar as alterações no Power Query, vamos configurar a atualização para a tabela no Power BI Desktop. Para isso, basta clicar com o botão direito sobre a tabela e, posteriormente, em atualização incremental (Incremental Refresh).
Já na aba de configuração da atualização, vamos selecionar em qual tabela a atualização será aplicada.
Depois disso, vamos preencher os outros dois campos. O primeiro deles estabelece o tamanho da base histórica e o segundo, o período em que deve ser atualizado. Por exemplo: caso escolha 5 dias, a atualização ocorrerá apenas nos últimos 5 dias da base.
Detectar alterações de dados
Atualiza apenas períodos que sofreram atualização. Se houver na tabela uma coluna de data de alteração (update), o processo de atualização incremental verifica, para cada período configurado, se há uma nova data de alteração. Em caso positivo, ele vai atualizar o período em questão.
Atualizar somente períodos concluídos
Atualiza apenas os períodos que estão concluídos: dias, meses, anos ou trimestres. Por exemplo, ao definirmos o período de atualização em dias, mesmo que tenhamos uma atualização agendada para o meio-dia, os dados do dia atual só serão atualizados após o final do período.
Após realizar toda a configuração necessária no Power BI Desktop, vamos publicar o relatório no Power BI Service, no qual configuraremos a atualização agendada. A primeira atualização pode ser mais demorada pois, neste momento, o Power BI Service executa a carga histórica dos dados. Mas a partir da próxima atualização, ela passará a ser feita de forma incremental.
Configurando a atualização incremental para um fluxo de dados (dataflow)
No fluxo de dados não é necessário definir os parâmetros RangeStart e RangeEnd. Basta clicar na configuração de atualização incremental:
Em seguida, vamos configurar a tela abaixo, seguindo os passos da tela de configuração Atualização Incremental do Power BI Desktop, e clicar em salvar:
Informações importantes:
- Não é mais necessário ter uma conta premium para implementar a atualização incremental; ela já está disponível para os demais tipos de contas.
- Após a configuração da atualização incremental, não será mais possível baixar o arquivo .pbix, pois os dados estarão particionados. Dito isso, é sempre recomendado manter uma cópia do arquivo.
- Para conseguir realizar a atualização incremental, o conjunto de dados deve ser passível de query folding. Query folding é um conceito utilizado pelo Power Query para aumentar a performance no tratamento dos dados. Isso porque ele traduz as etapas criadas através da linguagem M para a linguagem nativa da fonte, enviando essa consulta para a fonte processar e retornando as informações já compiladas, transferindo assim o processamento.
- Algumas transformações profundas nos dados, como “merge” e “merge columns”, podem deixar seu conjunto de dados sem suporte para query folding.
- Muitas vezes, o serviço do Power BI pode executar consultas na fonte de dados antes da consulta que realmente realiza a extração dos dados. Essa “consulta prévia” (normalmente com um TOP 1000) pode servir para finalidades como validar a conexão com a fonte de dados e/ou o schema da tabela que está sendo lida. Quando configurada a opção de atualização incremental, a quantidade de consultas-prévias poderá aumentar drasticamente, podendo tanto onerar o banco, quanto causar demora na atualização.
Concluímos, assim, todo o processo de configuração da atualização incremental. É importante ressaltar que ela funciona melhor em fontes de dados relacionais estruturadas, como bancos de dados SQL. Contudo, também pode funcionar em outras fontes de dados, desde que sigam os requisitos.
A atualização incremental é configurada no Power BI Desktop, mas é exclusiva para relatórios publicados no Power BI Services. Relatórios que estão apenas no Power BI Desktop não possuem atualização incremental.
Por fim, esperamos que a maioria das suas dúvidas sobre atualização incremental tenham sido sanadas, principalmente no que diz respeito à sua configuração no Power BI Desktop e em fluxos de dados (dataflow).