Free Trial

Blog

Insights e ideias das mentes mais brilhantes em análise de dados.
JoaoTiagoP
Alteryx
Alteryx

Recentemente, alguns dos clientes que tenho trabalhado estão num processo de upgrade das suas versões de Server para versões mais recentes onde lhes permite tirar proveito das mais recentes inovações que a Alteryx introduziu na sua plataforma. O motor AMP foi inicialmente apresentado na versão 20.2 do Designer mas apenas mais recentemente na versão 22.1 passou a fazer parte da configuração padrão para todos os novos fluxos de trabalho.

 

Alguns dos clientes que recentemente colaborei apenas possuem fluxos de trabalho em motor E1 que lhes permite ter mais fluxos em execução, mas por vezes a performance não é a mais desejada devido a quantidade de registros desses mesmos fluxos.

 

Este artigo, irá esclarecer algumas dúvidas relativamente a como melhorar a performance dos seus fluxos de trabalho fazendo um trabalho de balanceamento entre os motores E1 e AMP e definir quais os cenários ideais por forma a utilizarmos de forma eficiente o hardware disponível.

 

AMP.png

 

Introdução a E1 e AMP

AMP significa Processamento Multithread. Como está implícito no seu nome, permite o processamento de vários pacotes em paralelo. Comparado com o E1 Engine que processa dados por registro-a-registro em sequência.

 

Um exemplo do que foi aqui descrito pode ser visualizado na imagem seguinte:

JoaoTiagoP_0-1695076021143.jpeg

 

Como apresentado, AMP processa os dados de forma paralela independentemente do tipo de informação que contenha ao contrário de E1 que executa de forma sequencial. Ambos E1 e AMP podem ser usados simultaneamente e configurados nas definições do Servidor (Server).

 

Limitações e Pré-requisitos:

Apesar de atualmente a configuração padrão ser AMP, recomendamos que as Execuções em AMP apenas sejam utilizadas em ambientes com um mínimo de 8 cores e recomendamos o seu uso de forma gradual especialmente em ambientes que usam versões anteriores a 22.1. AMP na maioria das vezes é mais rápido que o motor E1 apesar de haver algumas exceções que irei destacar mais para frente no artigo.

Mas então qual o pré-requisito principal a ter em consideração para a utilização de AMP? O mecanismo AMP deve ter pelo menos 400 MB para processar um thread de um fluxo de trabalho. Por exemplo, com 8 threads, deve haver pelo menos 3,2 GB de memória disponível para AMP em tempo de execução. Se houver apenas 2,5 GB disponíveis em tempo de execução, o AMP usará 6 threads para satisfazer o mínimo de 400 MB.

Outro ponto que devemos considerar ao fazer a migrações gradual de fluxos de E1 para AMP tem a ver com as configurações do servidor (Server).  

Caso o servidor não tenha habilitado o motor AMP o administrador do seu sistema terá que abrir as definições do servidor e na opção de controller fazer a modificação como presente na seguinte imagem:

JoaoTiagoP_1-1695076021168.png

 

Se você ativar o mecanismo AMP para o controller, também precisará definir pelo menos 1 Worker para executar o mecanismo AMP na tela Configurações do sistema > Engine (Mecanismo).

A configuração em Configurações do sistema > Engine (Mecanismo) informa ao worker quais mecanismos ele pode usar e, portanto, quais fluxos de trabalho ele pode executar.

JoaoTiagoP_2-1695076021184.png

 

Por exemplo, vamos pegar um ambiente de 3 nós. O nó 1 está configurado para o controlador e a Galeria e tem AMP habilitado. O nó 2 é um nó somente de trabalho com o mecanismo definido como Somente Original. O nó 3 é um nó somente de trabalho com seu mecanismo definido como Ambos. Nesse cenário, a execução de fluxos de trabalho AMP no servidor está habilitada e esses fluxos de trabalho seriam executados apenas no nó 3. Os fluxos de trabalho do mecanismo original seriam executados no nó 2 ou no nó 3. Se o nó 3 estivesse offline, os fluxos de trabalho do mecanismo original ainda seriam executados no nó 2, mas os fluxos de trabalho de AMP ficariam presos na fila até que o nó 3 voltasse a ficar online.

Se você selecionar apenas AMP Engine ou ambos, também deverá selecionar habilitar AMP Engine no nível do ambiente (Alteryx Designer).

Do lado do Alteryx Designer como mencionado a partir do 22.1 AMP será escolhido como Default, para remover essa opção tem 2 possibilidades:

                     No Fluxo                                                                                                         Definições do Usuário

JoaoTiagoP_3-1695076021205.png

 

JoaoTiagoP_4-1695076021238.png

Performance

Mas então como decidir qual motor usar num fluxo de trabalho?

Geralmente 4 perguntas devem ser feitas no início da construção de um fluxo:

  • O fluxo a ser construído será puramente de preparação/combinação/análise de dados com ferramentas básicas? Se sim, AMP terá um melhor desempenho.
  • Seu fluxo faz uso de linguagens como R ou Python? Se sim, E1 terá um melhor desempenho.
  • Seu fluxo faz uso de algumas ferramentas mais complexas como Fórmula Multi-row e precisa de ler registros de forma sequencial ou usa ferramentas geoespaciais? Se sim, E1 terá um melhor desempenho em alguns casos. * Outros cenários são discutidos no seguinte link: https://help.alteryx.com/current/designer/alteryx-engine-and-amp-main-differences
  • O seu fluxo necessita ler milhões de registros? Se sim, AMP terá um melhor desempenho caso acha limitação em hardware ou menor número de registros então E1 será ideal.

 

 

A diferença de performance pode ser verificada na seguinte imagem onde executamos o mesmo fluxo em E1 e AMP em 3 diferentes máquinas com uma performance garantidamente melhor em AMP:

JoaoTiagoP_5-1695076021272.png

 

 

 

Para mais informações relativamente a esta analise, consultem o seguinte Link: https://community.alteryx.com/t5/Analytics/AMP-Engine-Discover-the-Untapped-Performance-of-Your-Anal...

 

Conclusão

Apesar de a recomendação ser o uso de AMP de forma estandardizada com um bom planeamento e documentação de boas práticas qualquer usuário de negócios em parceria com TI tem a flexibilidade de escolher qual motor lhe proporcionará mais benefícios e melhor performance reduzindo o tempo de execução dos seus fluxos. Para mais informações relativamente ao que foi apresentado aqui sugiro o seguinte link: https://help.alteryx.com/current/designer/alteryx-engine

 

Rótulos