Alteryx Engine e AMP: principais diferenças
No artigo Alteryx AMP Engine , abordamos o Alteryx Engine e o novo Alteryx Multi-threaded Processing (AMP). Agora vamos nos aprofundar nas principais diferenças entre os dois.
Diferenças no processamento dos dados
A arquitetura do motor original (Alteryx Engine) permite essencialmente o processamento single-thread, em que os dados são processados sequencialmente registro por registro. Por outro lado, o novo conceito do AMP Engine permite o processamento multithread. Os registros são processados em pacotes de 4 MB para um tempo de execução mais rápido e de maneira paralela, o que pode afetar a ordem dos registros na saída.
Diferenças nas entradas
Ocorre um erro em arquivos CSV que contêm um campo com novas linhas entre aspas se você não ativar a opção adicional Somente AMP: campos entre aspas podem conter novas linhas .
Limite de registros
Na configuração do fluxo de trabalho, a opção de tempo de execução Limite de registros para todas as entradas é habilitada com o AMP para as seguintes ferramentas:
Dados de Entrada
Entrada de Texto
Gerar Linhas
Entrada de Macro
O suporte do AMP para o limite de registros no nível da ferramenta Entrada Dinâmica foi adicionado com o patch 2 da versão 2021.1 e todas as versões subsequentes.
Diferenças nos resultados
Ao executar um fluxo de trabalho com o AMP Engine, várias ferramentas podem fazer a saída dos registros em uma ordem diferente do que fariam usando o motor original. Algumas dessas ferramentas incluem...
Tabela de Referência Cruzada
Limpeza de Dados (Remover linhas nulas)
Junção
Junções Múltiplas
Fórmula de Múltiplas Linhas
Gerador de Polígonos
Total Acumulado
Ordenar (quando a ordem de dicionário é usada com caracteres especiais)
Sumarizar (quando a ação "Agrupar por" for utlizada)
Bloco
União
Exclusivo
Se seu fluxo de trabalho exigir que os registros das ferramentas acima estejam em uma ordem específica para operações posteriores, o Modo de compatibilidade do motor está disponível para manter a mesma classificação do motor original. Essa opção deve ser usada após uma análise cuidadosa do fluxo de trabalho em questão, principalmente ao migrar fluxos de trabalho que foram criados com o motor original para serem executados com o AMP Engine.
Funcionalidades ou configurações específicas que não foram convertidas para uso com o AMP revertem para o motor original para funcionar. Portanto, mesmo os fluxos de trabalho que contém tanto ferramentas convertidas quanto não convertidas para uso com o AMP são executados perfeitamente com o AMP habilitado.
Se você tem dúvidas sobre quais ferramentas foram convertidas para uso com o AMP, consulte Uso de ferramentas com o AMP .
As ferramentas do motor original têm maior conexão às ferramentas a jusante e param de funcionar assim que não veem nada em etapas posteriores. Com a execução paralela do AMP, as ferramentas podem não parar quando não houver mais nada em etapas posteriores. A suposição é que, com as etapas seguintes vazias, o fluxo de dados não é levado em consideração. A mensagem de log é apenas para fins informativos. Se o número de registros no fluxo for importante para você, adicione uma ferramenta Teste para receber uma mensagem de erro se o número correto de registros não for obtido.
Desempenho de leitura
Um arquivo YXDB que foi gravado utilizando o AMP Engine é lido mais rapidamente do que um YXDB gravado com o motor original.
Um arquivo YXDB que foi gravado utilizando o motor original é lido mais lentamente com o AMP habilitado. Os formatos ainda são compatíveis entre si.
Use os formatos de arquivo XLSX, CSV, YXDB e SQLite com o AMP, pois eles suportam dados de leitura multithread.
Há um custo de desempenho para converter registros e pacotes entre o motor original e o AMP ao ler arquivos ZIP. Isso pode fazer com que arquivos ZIP maiores sejam lidos significativamente mais lentamente com o AMP.
DICA
Quando aberto em um editor de texto, um arquivo YXDB gravado com AMP apresenta " Alteryx e2 Database File " no início do conteúdo do arquivo. Um arquivo gravado com o motor original mostra apenas " Alteryx Database File " no mesmo lugar.
Desempenho de gravação
Para melhorar o desempenho do motor original (fazer o AMP gravar um arquivo YXDB criado com o motor original), acesse o menu Configuração da ferramenta Dados de Saída , onde há uma opção para criar uma versão de arquivo YXDB compatível com o Designer 18.1 e versões mais antigas.
A ferramenta Dados de Saída se comporta de forma diferente com registros que contêm dados espaciais (tipo SpatialObj) ao salvar um arquivo CSV com o motor original e com o AMP Engine. Embora o AMP Engine grave dados SpatialObj no arquivo ao salvar um CSV, o motor original não os grava. Isso causa diferenças no tamanho do arquivo e pode ser que você perceba um desempenho reduzido.
Se necessário, uma solução alternativa é remover os dados espaciais dos registros usando a ferramenta Selecionar . Assim, ambos os motores concluirão o processo com durações semelhantes.
Perfil de desempenho
O perfil de desempenho por ferramenta com o AMP está disponível no Designer versão 2021.3 ou superior.
Desempenho da ferramenta R
O AMP transmite dados de e para a ferramenta R no formato do motor original. Essa conversão dupla leva tempo. O tempo de execução de uma única ferramenta R pode ser mais lento com o AMP do que com o motor original, mas será mais rápido se mais de um ramo for executado simultaneamente.
Ferramentas Entrada de Texto e Campo Automático
O AMP aborda um problema antigo onde o tamanho de um campo criado com a ferramenta Entrada de Texto pode não ser grande o suficiente quando processado por uma ferramenta em etapas posteriores. Agora você não precisa adicionar ferramentas Selecionar para alterar os tipos de dados quando os dados resultantes excedem o comprimento do tipo de dados original. O AMP cria um campo com o tamanho máximo para cadeias de caracteres e números inteiros, de modo que as operações subsequentes tenham o espaço necessário para acomodar valores maiores nos campos.
Ferramenta Limitador
Embora a ferramenta Limitador não tenha sido totalmente convertida para o AMP, você pode usá-la juntamente com a ferramenta Baixar (use a Limitador primeiro).
Correspondência Parcial
A ferramenta Correspondência Parcial pode gerar resultados diferentes entre o motor original e o AMP. No AMP, a correspondência entre os registros é realizada usando um método alternativo. A ordem da correspondência pode ser diferente e a saída pode ficar na ordem inversa. Há um problema de desempenho conhecido na ferramenta Correspondência Parcial, que apresenta desempenho menor com o AMP do que com o motor original.
Ferramenta RegEx
O AMP usa padrões de codificação Unicode e Perl, em que os caracteres
$
,
+
,
<
,
=
,
>
,
^
,
|
e
~
não se qualificam como pontuação. Ao usar a fórmula
REGEX_Replace
ou a ferramenta
RegEx
para filtrar pontuação usando o conjunto RegEx [[:punct:]] com o AMP, você precisa alterar a expressão.
Exemplo
REGEX_REPLACE([_CurrentField_],'[[:punct:]]|[\$\+<=>\^`\|~]','')
Ferramentas de agrupamento e de bloqueio
No motor original, o algoritmo da ferramenta Junção é baseado no método Sort-Merge, em que os registros sempre são exibidos de forma ordenada. Com o AMP, o novo algoritmo da ferramenta Junção é baseado no método Hash, de modo que os registros saem de maneira desordenada. Por exemplo:
Entrada Esquerda (L):
Entrada Direita (R):
Se fizermos a junção pela coluna CustomerID usando o motor original, os registros serão ordenados pelo campo CustomerID :
Com o AMP, os registros serão os mesmos, mas em uma ordem diferente:
Se você precisa de uma saída ordenada, adicione a ferramenta Ordenar após a ferramenta Junção ou ative a configuração Modo de compatibilidade do motor em Configuração do fluxo de trabalho > Tempo de execução , abaixo da configuração Usar AMP Engine .
Macros iterativas
A diferença entre o motor original e o AMP pode ser vista quando ocorre um erro em uma ferramenta dentro da macro. Por ser single-thread, o motor original para se ocorrer um erro na macro. O AMP roda até que a saída iterativa esteja vazia ou até que o número máximo de iterações ocorra. Você pode encontrar estas situações, devido ao maior número de iterações:
O número de erros (se houver) pode ser maior com o AMP.
O número de registros pode ser maior com o AMP.
O esquema de saída pode ser diferente com o AMP.
Ferramenta Fórmula
As funções
ConvertFromCodePage
e
ConvertToCodePage
na ferramenta
Fórmula
aceitam uma cadeia de caracteres como parâmetro e retornam outra como resultado, portanto, não é possível distinguir a codificação da cadeia de caracteres. Há uma diferença nos resultados da ferramenta
Fórmula
quando essas funções são utilizadas com o motor original e com o AMP.
O uso interno de cadeias codificadas em UTF-8 no AMP gera uma representação binária diferente dos dados de entrada. E, quando esses dados com codificação diferente são importados, não há como restaurar os dados originais. O motor original armazena cadeias de caracteres como cadeias codificadas em Latin-1 ou UTF-16 que foram usadas como buffer e possibilita que os dados sejam revertidos corretamente.
Add-ins para a ferramenta Fórmula
Os add-ins de fórmulas ainda não são compatíveis com o AMP. Se você precisar executar um fluxo de trabalho que contenha essa funcionalidade, execute-o usando o motor original.
Aplicativo analítico
Os aplicativos que usam a ferramenta Mapa para fazer seleções a partir de uma camada de referência espacial em um aplicativo analítico devem continuar usando o motor original.
Esperar Fluxos Iguais
Com o Engine original, a ferramenta Esperar Fluxos Iguais (Expect Equal) permanece como uma CReW macro. Com o AMP, ela funciona como uma ferramenta nativa.
Execução paralela de ramos e ordem de execução das ferramentas
Alguns fluxos de trabalho fazem a leitura de um arquivo e, ao final, gravam de volta no mesmo arquivo. Isso requer uma sequência que garanta que a leitura seja completada antes que a gravação comece. Da mesma forma, um fluxo de trabalho que grava várias planilhas em um arquivo XLSX precisa gravar uma planilha por vez. O Alteryx Designer fornece a ferramenta Bloquear até Concluir para ajudar a dividir o trabalho em fases que não fiquem uma no caminho da outra.
A mesma solução alternativa é aplicável à ferramenta E-mail quando você usa arquivos de saída provenientes de ramos anteriores como anexo. É necessário esperar que o processamento dos dados seja concluído para depois anexá-los com a ferramenta E-mail.
Ao trabalhar em um fluxo de trabalho com vários "ramos" (fluxos muito separados das entradas até as saídas), coloque a ferramenta Bloquear até Concluir no ramo que possui a ferramenta de entrada com o ID mais baixo. Isso faz com que cada ramo subsequente só seja executado quando o ramo anterior for concluído, garantindo que as ferramentas funcionem conforme o esperado.
Funcionalidade disponível
Para obter mais informações sobre o funcionamento específico de cada ferramenta, acesse Uso de ferramentas com o AMP .