Fórum - Português

ACADEMIA AGORA EM PORTUGUÊS!

Comece sua jornada de aprendizado!

CONFIRA TODOS OS DETALHES
SOLUCIONADO

Otimização na Entrada de Dados

Highlighted

Boa tarde.Tenho um fluxo que já está funcionando, porém acredito que ele poderia ser mais rápido.

 

Eu tenho um arquivo Excel, onde estão listados alguns diretórios.

Cada diretório tem diversos arquivos TXT com os dados que preciso.

 

No meu fluxo eu:

1. Configurei o arquivo Excel como a entrada de dados;

2. Utilizei uma macro para fazer a leitura de cada diretório, retornado uma lista com os arquivos;

3. Organizei a tabela resultante pelo nome do arquivo;

4. Utilizei uma segunda macro para fazer a leitura de cada um dos arquivos;

5. Manipulação dos dados...

 

Conforme imagem abaixo.

 

A questão é que o fluxo de dados só passa para a etapa 5 após concluir a etapa 4, quando na verdade os dados de um diretório não dependem dos dados de outro diretório.

 

O aumento no tempo de processamento é bem maior que o aumento no volume de dados processados.

 

Há alguma forma de fazer o fluxo seguir em frente de uma maneira mais rápida?

 

Fluxo.GIF

Highlighted
Alteryx Certified Partner

Olá @DiegoServulo tudo bem?

 

Vamos lá. Talvez consiga melhorar a performance sim, mas precisamos de mais informações.

Por exemplo, os arquivos em TXT que você está lendo têm os mesmos nomes com datas diferentes no nome? Exemplo: FILE_JAN.txt, FILE_FEV.txt etc?

Pode postar as macros abertas para entendermos como você montou as macros?

 

Abraços

Highlighted

Boa tarde, tudo bem e você?

 

As duas macros são bem parecidas.

 

Na primeira, eu utilizei a função de leitura de um diretório "Directory" retornando todos os arquivos TXT contidos nele. A função da macro é fazer isso para cada um dos diretórios que tenho registrado no meu arquivo Excel.

 

Na segunda, eu utilizei a função "Input Data" com a macro alterando o endereço completo do arquivo a ser lido.

 

A imagem abaixo é de uma das macros. A outra só muda o Input.

 

DiegoServulo_0-1579119260887.png

 

Sobre o nome dos arquivos, eles são padronizados do tipo:

 

D:\AAA\20190101_AAA.txt

D:\AAA\20190102_AAA.txt

D:\ABCD\20190101_ABCD.txt

D:\ABCD\20190102_ABCD.txt

 

Abraço

Highlighted
Alteryx Certified Partner

@DiegoServulo  o que eu faria poara melhorar o processo.

Movimentaria todos os arquivos para um diretório único e faria a leitura de todos eles na mesma tabela informando o nome do arquivo de origem para cada registro.

Marque a opção de trazer o nome do arquivo de origem e

Utilize o caracter coringa assim D:\dir_unico\20190101_*.txt

Dessa forma vc consegue ler todos os arquivos sem usar a macro, e também não vai perder a referência de qual arquivo ele veio.

 

Acho que isso ajudaria você no processamento.

 

Eu tenho um workflow que faz movimentação de arquivos, compartilho com vc amanhã caso precise.

 

Abraços 

Community Manager
Community Manager

Obrigada pela ajuda @carlosteixeira2005!

 

@DiegoServulo nos avise se as recomendações do Carlos o ajudaram ou se você ainda precisa de algum auxílio. Caso tenha conseguido resolver a sua questão, não esqueça de aceitar a resposta como solução! 

Highlighted

@carlosteixeira2005, eu testei a sua ideia e funcionou perfeitamente, porém os dados que preciso ler estão em um servidor o qual não posso movimentar os arquivos.

Eu continuei pesquisando as ferramentas e achei uma solução simples com a ferramenta 

"Dynamic Input" do grupo "Developer".

 

Eu substituí a macro que abria os arquivos por essa ferramenta e o fluxo agora não fica parado neste ponto aguardando o final do processamento da macro para dar continuidade. Ainda não medi a diferença no desempenho, mas achei mais prático assim.

 

Muito obrigado pela ajuda.

Highlighted
Alteryx Certified Partner

Olá @DiegoServulo fico feliz em ter ajudado, mesmo que a solução tenha sido um pouco diferente, o importante é pensar de forma diferente e achar formas de solucionar nosso problema.

 

Muito bom, parabéns... sempre que precisar recorra a nossa comunidade, estamos aqui para ajudar vocês.

 

Grande abraço e #alteryxeverything