Skip to main content

Alteryx Engine e AMP: principais diferenças

No artigo Alteryx AMP Engine, abordamos temas que cobrem o Alteryx Engine e o novo Alteryx Multi-threaded Processing (AMP). Aqui, 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.

With multiple cores, the AMP architecture allows for multi-threaded processing.
The original engine architecture allows for a single-threaded process, where your data is processed record-by-record.

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 estas 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 adicionado portanto a todas as versões subsequentes.

Diferenças nos resultados

Quando um fluxo de trabalho é executado com o AMP Engine, várias ferramentas podem emitir registros em uma ordem diferente da ordem do 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, a configuração Modo de compatibilidade do motor está disponível para manter a mesma ordem de classificação do motor original. Use isso 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.

Com o motor original, as ferramentas estão mais conectadas e param de funcionar assim que não houver 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 etapas posteriores 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. No entanto, os formatos ainda são compatíveis.

Use os formatos de arquivo XLSX, CSV, YXDB e SQLite com o AMP, pois eles suportam dados de leitura multithread.

A conversão de registros e empacotamentos entre o motor original e o AMP ao ler arquivos Zip tem um custo de desempenho. Isso pode fazer com que arquivos Zip maiores sejam lidos significativamente de modo mais lento 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 apresenta "Alteryx Database File" no mesmo local.

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 Saída se comporta de forma diferente com registros que contêm SpatialObj (objetos geográficos) ao salvar um arquivo CSV com os motores original e AMP. Enquanto o AMP grava dados SpatialObj ao salvar como um arquivo CSV, o motor original não o faz. Essa diferença resulta em variações no tamanho dos arquivos e você pode vir a experienciar um menor desempenho.

Se necessário, uma solução alternativa é remover os dados espaciais dos registros através da ferramenta Selecionar. Isso permite que ambos os motores concluam com uma duração semelhante.

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 uma ramificação for executada 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 (Ordenar-Mesclar), 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...

The Join algorithm with AMP is based on hash join, so the record order is different.

Entrada Esquerda (L):

The Join algorithm - left input.

Entrada Direita (R):

The Join algorithm - right input.

Se fizermos a junção pela coluna CustomerID usando o motor original, os registros serão ordenados pelo campo CustomerID:

Join by CustomerID with the original Engine.

Com o AMP, os registros serão os mesmos, mas em uma ordem diferente:

Join by CustomerID with AMP.

Se você precisa de uma saída ordenada, adicione a ferramenta Ordenar após a ferramenta Junção ou habilite 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.

Use AMP Engine checkbox

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.