Ir para conteúdo
  • 0

Protocolo Anterior - Consulta com baixa performance


Carlos Silva
Ir para solução Solucionado por Renato Carlos Rossato ,

Pergunta

  • Alunos

Pessoal, boa noite!
Tenho a seguinte situação que preciso tratar no power query
Na base de dados tenho uma coluna que identifica se aquela visita técnica é um retrabalho ou não (S = SIM, N=NÃO),
Preciso criar uma coluna condicional que retorne o protocolo anterior quando o valor dessa coluna for "S"

Consegui usando uma técnica, porem ele exigi demais do pc quando coloco a base de dados completa "tamanho razoável",

mesmo meu computador que tem um ótima configuração para processamento de grandes bases de dados não roda bem, demora +10min só essa etapa e ela não é a ultima "terão varias outras"

No Anexo deixei a solução que consegui porem não teve boa performance com grande base de dados

alguém teria alguma outra sugestão que pudesse ajudar?

Ajuda Power Query.xlsx

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
  • Solução

Carlos tenta fazer o seguinte:

Faça no Power Query uma ordenação da coluna de clientes primeiramente em ordem crescente, depois também uma ordenação na data de fechamento e também crie um índice iniciando de 1 após isso.

Depois em uma coluna calculada crie a seguinte medida:

Registro Anterior =

VAR vCliente = SELECTEDVALUE(tabela[cliente])

VAR vIndice = SELECTEDVALUE(tabela[Indice]) -1

VAR vProtocoloAnterior = 

LOOKUPVALUE(tabela[Protocolo], 

.                           tabela[Indice], 

.                            vIndicevIndice,

.                            tabela[cliente],

.                            vCliente)

RETURN

SWITCH(

                SELECTEDVALUE (tabela[REP]),

                "S", vProtocoloAnterior, BLANK())

Espero ter ajudado.

 

 

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Olá @Carlos Silva  dê uma olha nesse video, ele te ensina como você pode trazer a linha anterior no power query: 

A partir deste video use a lógica para fazer um estrutura condicional que retorne o valor anterior caso sua condição seja atendida, na parte 7:06 do video ele demonstra como trazer o valor anterior do video.

Para ver como funciona o if no power query você pode consultar a documentação da microsoft: https://learn.microsoft.com/en-us/powerquery-m/m-spec-conditionals

Espero ter ajudado!

 

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
5 minutos atrás, Alex Pereira disse:

Olá @Carlos Silva  dê uma olha nesse video, ele te ensina como você pode trazer a linha anterior no power query: 

A partir deste video use a lógica para fazer um estrutura condicional que retorne o valor anterior caso sua condição seja atendida, na parte 7:06 do video ele demonstra como trazer o valor anterior do video.

Para ver como funciona o if no power query você pode consultar a documentação da microsoft: https://learn.microsoft.com/en-us/powerquery-m/m-spec-conditionals

Espero ter ajudado!

 

Oi Alex, bom dia! 

Essa foi a técnica que usei, quando tem um volume pequeno de dados passa sem problemas, quando chega um cenário de 50k de linhas ou mais não processa 😬

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

É bem estranho ele não rodar porque aparetemente essa condição nem parece ser uma condição que demanda tanto processamento!

Talvez o que possa ser feito é aplicar uma atualização incremental para que ele não precise fazer esse tratamento de novo, no seu conjunto de dados!

Dê uma olhada neste videos:
 

 

Link para o comentário
Compartilhar em outros sites

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
×
×
  • Criar Novo...