Skip to main content

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.

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 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:

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 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 .

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 .