Leonardo Karpinski

Leonardo Karpinski

Mestre do Power BI, criador do Curso Express de Power BI e Curso Completo de Power BI. Formou mais de 16 mil alunos nos últimos anos e participou de projetos em grandes empresas nacionais e multinacionais.

Como usar corretamente a ATUALIZAÇÃO INCREMENTAL e não cair em armadilhas

Finalmente! Atualização incremental não exige mais a capacidade Premium! O conteúdo de hoje não será só sobre como utilizar essa funcionalidade! Iremos mais fundo que isso! Você entenderá o que está por trás dessa função. Além disso darei dicas para te ajudar a deixar o desenvolvimento do seu relatório mais rápido e não cair mais em furadas !

Falaremos sobre:
1. Como deixar o desenvolvimento mais rápido
2. Como configurar a Atualização Incremental
3. Cuidados para garantir o funcionamento da Atualização Incremental
4. Como visualizar as partições conectando no Conjunto de Dados online

Desenvolvimento rápido

Muita gente reclama do tempo gasto no desenvolvimento seja no Power Query quanto nos relatórios. E o que sempre pergunto é: você está desenvolvendo o relatório com toda a sua base de dados?

Você não precisa desenvolver seu relatório com a base toda, mas apenas uma amostra dela. Quem precisa da base completa é usuário final no serviço online – após você publicar o relatório.

Tendo isso em mente mostraremos uma forma de trabalhar com apenas uma amostra dos dados utilizando parâmetros.

Importando consultas

Realizaremos um exemplo utilizando uma base de dados que está na minha própria máquina. Essa base de dados tem dados de 2005 até 2014.

Vamos importar a tabela FactResellerSalesXL_CCI do banco de dados seguindo as etapas:

Etapas:
1. Página Inicial
2. Obter Dados
3. Banco de SQL Server
4. Digite o nome do servidor (localhost)
5. Selecione o Modo de Conectividade de Dados: Importar
6. Selecione a tabela FactResellerSalesXL_CCI
7. Transformar dados

Figura 1: Selecionando tabela

Após clicar em Transformar dados a primeira coisa que você deve fazer (sempre) é escolher colunas no Power Query (PQ), veja:

Figura 2: Escolhendo colunas no PQ

Escolhemos essas 3 colunas acima para fins de testes e a base não tem nenhum filtro. Ao clicar em Fechar e Aplicar e depois de salvar o arquivo ficamos com um .pbix de 20,2 MB.

Criando parâmetros

Criaremos dois parâmetros: RangeStart e RangeEnd. Eles devem estar configurados com esses nomes (escritos exatamente assim) e tipo de valor (Data/hora) para que possamos utilizá-los nas configurações da Atualização Incremental, ok?!

Para criar o parâmetro, ainda no Power Query, clique em Gerenciar Parâmetros (na guia Página Inicial):

Figura 3: Criação do Parâmetro RangeStart

Para criar rapidamente o outro parâmetro, copie e cole o RangeStart, renomeie para RangeEnd e mude o Valor Atual para 01/01/2020, assim:

Figura 4: RangeEnd

Filtro na Tabela Fato

Utilizaremos aqueles parâmetros que criamos para filtrar a tabela fato.

Etapas:
1. Selecione o botão de dropdown na coluna OrderDate
2. Filtro de Data/hora
3. é posterior ou igual  - parâmetro - RangeStart
4. é anterior a - parâmetro - RangeEnd
Figura 5: Parâmetro

Note que não faz sentido filtrarmos as tabelas dimensão, ok? Porque é a tabela fato o nosso ‘gargalo’ – a maior tabela que deixa o desenvolvimento lento. Quanto mais dados você importa, mais lento o desenvolvimento fica.

Após clicar em Fechar e Aplicar e salvar o arquivo .pbix, o tamanho foi de 20,2 MB para 2,8 MB.

Pronto! Conseguimos deixar o desenvolvimento bem mais rápido!

O que é Atualização Incremental? Quem pode utilizar?

É um recurso que permite que apenas parte dos dados do seus relatórios sejam atualizados, ou seja, apenas o que mudou na sua base será atualizada. Com isso, esse processo ficará mais rápido com redução do consumo de recursos e ocorrerá de forma mais confiável. A ideia por trás disso é particionar o modelo de dados. A novidade é que se você só tiver a conta PRO já conseguirá usufruir dessa funcionalidade!

A estratégia principal de usarmos a atualização incremental é: atualizar somente o que precisa ! Um detalhe importante: não é com todo tipo de base de dados que isso vai funcionar. A primeira regra que combinaremos é: precisamos de um servidor no backend. Não adianta a gente tentar fazer uma atualização incremental num arquivo CSV ou Excel porque o particionamento que faremos na base de dados não funcionará.

Importante:
Você precisa ter a conta PRO e ter a versão mais atualizada do Power BI para utilizar o recurso Atualização Incremental.

Como configurar a atualização incremental

A primeira da etapa já foi implementada quando definimos os parâmetros RangeStart e RangeEnd.

Para configurar a Atualização Incremental, você deve ir em Relatórios, clicar com o botão direito na tabela fato e preencher os campos solicitados assim:

Figura 6: Configuração da atualização incremental

Nesse exemplo, nós estamos indicando para o PBI que queremos manter armazenados apenas os últimos dez anos – ou seja, a partir de 2010 (lembra que nossa base tem dados desde 2005?). Também indicamos que queremos que apenas os dados deste ano que estamos (2020) seja atualizado.

Quando inserimos “1” no segundo dropdown, estamos dizendo que queremos atualizações apenas de Jan/2020 até a última data disponível. Isso é diferente de inserir “365” dias, ok?! Ambas as configurações são em relação à data de hoje, ok?!

Note que tem uma opção de selecionar uma outra coluna de data quando marcamos esse checkbox:

Figura 7: Detecção de alterações nos dados

Essa opção se aplicará a você caso possua uma coluna do tipo Update Date, ou seja, uma data que represente quando aquela linha foi atualizada. Então o PBI vai verificar se houve modificação dessa coluna (neste 1 ano que especificamos logo acima). Em caso afirmativo, ele aplicará atualização da base de dados. Essa opção deixa a atualização um pouco mais rápida. Como não temos essa coluna, deixaremos isso desmarcado.

Repare que também temos a opção de atualizar os dados somente se os anos completos. Repare que colocamos “1” ano e se marcarmos o checkbox apresentado acima, não teremos nossos dados de 2020 atualizados porque não concluímos o ano de 2020 ainda, ok?! Deixaremos então essa opção desmarcada.

Relatório

Vamos adicionar três cartões na página contendo os valores de OrderDate (primeiro e último) e SalesAmount:

Figura 8: Cartões

Publicando o relatório

Ao publicar o relatório no PBI Online veremos exatamente essa página que criamos com os cartões:

Figura 9: Publicando o relatório

Para atualizar, basta ir em Conjunto de dados e clicar no botão de atualizar:

Figura 10: Atualizando relatório

Após concluir a atualização e clicar em Relatórios, você conseguirá ver o relatório atualizado.

Caso não apareça os dados atualizados, vá nos três pontinhos e clique em atualizar:

Figura 11: Resultado da atualização

Repare que no cartão com a última data aparece 2014 porque só possuímos dados até esse ano. Ou seja, se tivéssemos dados de 2020 e mandássemos o PBI atualizar o relatório novamente, notaríamos que as datas seriam atualizadas juntamente com o valor SalesAmount. Porém, se houvesse alguma modificação de valor antes de 2010, esse valor permaneceria o mesmo já que definimos que apenas o último ano (ano atual) seria atualizado.

Cuidados para garantir o funcionamento da Atualização Incremental

Digamos que ao invés de importar aquela tabela conforme fizemos há pouco, você queira importar os dados através de uma instrução SQL. Para fazer isso você deve clicar em Obter dados e selecionar Banco de dados SQL Server. Em seguida digitará a seguinte instrução:

Figura 12: Importando através de instrução SQL

Ao filtrarmos a coluna OrderDate utilizando os parâmetros RangeStart e RangeEnd da mesma forma que fizemos antes, veremos que demorará bem mais tempo para atualizamos os dados.

O que acontece é que ao aplicar transformações no Power Query após escrever uma query para conectar os dados você perde o Query Folding.

O que acontece é que o PBI não consegue enviar uma consulta nativa para o servidor então ele precisa trazer tudo para a memória e depois aplicar os filtros. Por conta dessa etapa adicional, atualizações em tabelas sem Query Folding ficarão mais lentas do que as originais.

Se fizermos a seguinte mudança no código da linguagem M, o nosso problema será “resolvido”. Compare o código antes e depois:

Figura 13: Editando código M

Pronto! Fazendo isso, a velocidade será identifica ao exemplo que fizemos sem a instrução SQL, beleza?!

Como visualizar as partições conectando no Conjunto de Dados online

Agora, vamos mostrar o que acontece por trás da atualização incremental. Preciso antes ativar a capacidade dedicada no Power Bi Online:

Figura 14: Ativando a capacidade dedicada (Premium)

Após clicar em salvar, você precisará copiar o link para se conectar ao Workspace (premium):

Após isso, no SQL Management Studio nos conectaremos a essa ‘fonte’ que copiamos, veja:

Figura 15: Conectando ao conjunto de dados do Workspace

Devemos expandir aquela tabela fato (clicando com o botão direito do mouse em cima dela) e depois selecionando “Partições“:

Figura 16: Expandindo tabela para visualizar partições

Vejam que bacana essa tabela com as partições:

Figura 17: Partições do conjunto de dados

Você pode estar estranhando essa linha com “2020”. É que eu criei, para fins de teste e demonstração, valores e datas de “2020” para comprovar o que disse antes: ao atualizar os dados, apenas o último (1) ano será alterado (ou seja, 2020). O restante permanecerá sem alteração. Pela coluna Último Processamento você conseguirá perceber que foi exatamente isso que aconteceu por trás da atualização incremental!

Os dados de 2010 a 2019 permaneceram com o horário de atualização em torno de 16:12 enquanto a linha que representa a partição de 2020 está com horário em torno de 16:17.

Bom pessoal, esse artigo foi baseado na Live #7 de Power BI. Espero que tenham gostado.

Um abraço,
Leonardo.

COMPARTILHE ESSE POST

Compartilhar no facebook
Compartilhar no linkedin
Compartilhar no twitter
Compartilhar no pinterest