Alteryx Engine et AMP : principales différences

Version:
2022.3
Last modified: July 15, 2022

Dans l'article Alteryx AMP Engine nous avons couvert ce qu'est Alteryx Engine et le nouveau Alteryx Multi-Threaded Processing (AMP). Maintenant, nous allons voir plus en profondeur les principales différences entre les 2.

Différences dans le traitement des données

L'architecture du moteur d'origine permet un traitement à thread unique, où vos données sont traitées de façon séquentielle, enregistrement par enregistrement. En revanche, le nouveau concept AMP permet un traitement multi-threaded massif. Les enregistrements sont traités dans des paquets 4 Mo, pour un temps d'exécution plus rapide et parallèle, ce qui peut affecter l'ordre des enregistrements de sortie.

Avec des processeurs multicœurs, l’architecture AMP permet un traitement multi-threaded.

L’architecture du moteur d’origine permet un processus à thread unique, où vos données sont traitées enregistrement par enregistrement.

Différences dans les entrées 

Le fichier CSV contenant un champ avec des nouvelles lignes entre guillemets échouera si vous n'activez pas l'option supplémentaire AMP uniquement : les champs entre guillemets peuvent contenir des nouvelles lignes.

Différences dans les résultats

Plusieurs outils peuvent produire des enregistrements dans un ordre différent de celui du moteur d'origine lors de l'exécution d'un workflow avec AMP Engine. Certains de ces outils incluent...

  • Tableau croisé dynamique
  • Nettoyage des données (lors de la suppression de lignes nulles)
  • Jointure
  • Plusieurs Jointures
  • Formule à plusieurs lignes
  • PolyBuild
  • Total cumulé
  • Trier (un ordre comportant des caractères spéciaux diffère du moteur d'origine)
  • Agréger (lorsque l'option Regrouper par est utilisée)
  • Ensemble
  • Union
  • Unique

Si votre workflow nécessite que les enregistrements des outils ci-dessus soient dans un ordre spécifique pour les opérations en aval, le mode de compatibilité du moteur est disponible pour maintenir le même tri que le moteur d'origine. Cette option doit être utilisée après avoir soigneusement pris en compte le workflow spécifique, principalement lors de la migration de workflows créés avec le moteur d'origine pour une exécution avec AMP Engine.

Des fonctionnalités ou des paramètres spécifiques qui n'ont pas été convertis pour être utilisés avec AMP reviennent au moteur d'origine pour fonctionner. Par conséquent, les workflows qui contiennent à la fois des outils convertis et non convertis pour utiliser AMP sont parfaitement exécutables avec AMP.

Si vous avez des questions sur les outils qui ont été convertis pour utiliser AMP, consultez la rubrique : Utilisation d'outils avec AMP.

Performance de lecture

Un fichier YXDB écrit avec AMP Engine est lu plus rapidement qu'un fichier YXDB écrit avec le moteur d'origine.

Un fichier YXDB écrit avec le moteur d'origine est lu plus lentement avec AMP activé. Les formats sont toujours compatibles les uns avec les autres.
Utilisez les formats de fichiers XLSX, CSV, YXDB et SQLite avec AMP : ils prennent en charge les données de lecture multi-thread.

La conversion des enregistrements et des empaquetages entre le moteur d'origine et AMP lors de la lecture de fichiers Zip présente un coût de performance. Cela peut ralentir considérablement la lecture des fichiers Zip plus volumineux avec AMP. 

CONSEIL

Lorsqu'il est ouvert dans un éditeur de texte, un fichier YXDB écrit avec AMP affiche « Alteryx e2 Database file » au tout début du contenu du fichier. En revanche, un fichier écrit avec le moteur d'origine affichera uniquement « Alteryx Database File » au même endroit.

Performance d'écriture

Pour améliorer les performances du moteur d'origine (en faisant écrire à AMP un fichier YXDB créé avec le moteur d'origine), accédez au menu Configuration de l'outil Sortie de données, où vous pouvez créer une version du fichier YXDB compatible avec Designer 18.1 et versions antérieures.

Profilage des performances

Le profilage des performances par outil avec AMP est disponible avec Designer version 2021.3 et versions ultérieures.

Outils Saisie de texte et Champ automatique

AMP traite un problème historique où la taille du champ peut ne pas être assez grande lorsqu'il est traité par un outil en aval. Vous n'avez pas besoin d'ajouter des outils Sélectionner pour modifier les types de données lorsque les données résultantes dépassent la longueur du type de données d'origine. AMP crée un champ de taille maximale pour les chaînes et les nombres entiers afin que les opérations ultérieures aient la marge de manœuvre nécessaire pour contenir des valeurs en aval plus grandes.

Outil Régulateur

Bien que l’outil Régulateur n’ait pas été entièrement converti en AMP, vous pouvez l’utiliser avec l’outil Télécharger (Utilisez l'outil Régulateur en premier).

Correspondance partielle

L'outil Correspondance partielle peut générer des résultats différents entre le moteur d'origine et AMP. Les enregistrements AMP sont appariés à l’aide d’une méthode alternative. L'ordre de correspondance peut être différent et la sortie peut être aussi dans l'ordre inverse. Il existe un problème de performances connu avec l'outil Correspondance partielle étant moins performant avec AMP que le moteur d'origine.

Outil RegEx

AMP utilise les normes de codage Unicode et Perl, où les caractères $, +, <, =, >, ^, | et ~ ne sont pas considérés comme de la ponctuation. Lorsque vous utilisez la fonction de la formule REGEX_Replace ou l'outil RegEx pour filtrer la ponctuation à l'aide de l'ensemble RegEx [[:punct:]], avec AMP, vous devez changer l'expression.

Exemple

REGEX_REPLACE([_CurrentField_],'[[:punct:]]|[\$\+<=>\^`\|~]','')

Outils de regroupement et outils de blocage

Dans le moteur d'origine, l'algorithme de l'outil Jointure est basé sur la méthode de jointure de tri-fusion, où les enregistrements viennent toujours dans un ordre trié. Avec AMP, le nouvel algorithme de l'outil Jointure est basé sur une méthode de jointure de hachage, de sorte que les enregistrements sortent de manière désordonnée. Par exemple :
Avec AMP, l’algorithme de l’outil Jointure est basé sur la jointure de hachage, de sorte que l’ordre d’enregistrement est différent.

Entrée gauche :
Algorithme de l'outil Jointure - entrée gauche.

Entrée droite :
Algorithme de l'outil Jointure - entrée droite.

Si nous effectuons la jointure par la colonne CustomerID en utilisant le moteur d'origine, l'ordre des enregistrements est trié par le champ CustomerID : 
Jointure par la colonne « CustomerID » avec le moteur d’origine.

En utilisant AMP, les enregistrements sont les mêmes, mais dans un ordre différent :
Jointure par la colonne « CustomerID » avec AMP Engine.

Si vous avez besoin d'avoir une sortie ordonnée, ajoutez l'outil Trier après l'outil Jointure ou activez le paramètre Mode de compatibilité du moteur dans Configuration du workflow – Exécution, sous le paramètre Utiliser AMP Engine.

Macros itératives

La différence entre le moteur d’origine et AMP peut se produire lorsqu’un outil à l’intérieur de la macro signale une erreur. En étant un thread unique, le moteur d’origine s’arrête si une erreur se produit dans la macro. AMP fonctionne jusqu'à ce que la sortie itérative soit vide ou que le nombre maximum d'itérations se produise. Vous pouvez rencontrer ces situations, en raison d'un plus grand nombre d'itérations :

  • Le nombre d’erreurs (le cas échéant) peut être plus élevé avec AMP.
  • Le nombre d'enregistrements peut être plus élevé avec AMP.
  • Le schéma de sortie peut être différent avec AMP.

Outil Formule

Les fonctions ConvertFromCodePage et ConvertToCodePage de l'outil Formule acceptent la chaîne comme paramètre et renvoient la chaîne comme résultat. Il n'est donc pas possible de distinguer la façon dont la chaîne est codée. Il existe une différence dans la sortie de l'outil Formule lorsque ces fonctions sont utilisées avec le moteur d'origine et AMP. 

Une représentation binaire différente des données entrantes est causée par l'utilisation interne par AMP de chaînes codées UTF-8. Lorsque les données avec un codage différent sont importées, il est impossible de restaurer les données d'origine. Le moteur d'origine stocke les chaînes sous forme de chaînes codées Latin-1 ou UTF-16 qui ont été utilisées comme tampon et permettent de reconvertir les données correctement.

Compléments de formules

Les compléments de formules ne sont pas encore compatibles avec AMP. Si vous avez besoin d'exécuter un workflow contenant la fonctionnalité Compléments de formules, exécutez-le sur le moteur d'origine.

Applications analytiques

Les applications utilisant l'outil Carte pour sélectionner à partir d'une couche de référence spatiale dans une application analytique doivent continuer à utiliser le moteur d'origine. 
Le débogage n'est pas disponible avec les applications analytiques ou les macros.

Expect Equal

Avec le moteur d'origine, l'outil Expect Equal reste une macro CReW. Avec AMP, il fonctionne comme un outil natif.

Exécution parallèle des branches et ordre d'exécution des outils

Certains workflows lisent un fichier, puis réécrivent dans le même fichier. Cela nécessite une séquence qui assure que la lecture est terminée avant que l'écriture ne commence. De même, un workflow qui vise à écrire plusieurs feuilles dans un fichier XLSX doit écrire une feuille à la fois. Alteryx Designer fournit l'outil Bloquer jusqu'à la fin pour aider à diviser le travail en phases qui ne sont pas l’une sur le chemin de l’autre.

Lorsque vous travaillez sur un workflow avec plusieurs branches (flux largement séparés des entrées vers les sorties), placez l'outil Bloquer jusqu'à la fin dans la branche du workflow qui possède l'outil d'entrée avec l'identifiant le plus bas. Cela fait que chaque branche subséquente n’est exécutée que lorsque la branche précédente soit terminée, ce qui garantit que les outils fonctionnent comme prévu.

Fonctionnalité disponible

Pour plus d'informations sur le fonctionnement spécifique de chaque outil, voir : Utilisation d'outils avec AMP.

Cette page vous a-t-elle été utile ?

Vous rencontrez des problèmes avec votre produit Alteryx ? Visitez la communauté Alteryx ou contactez le  support. Vous n'arrivez pas à soumettre ce formulaire ? Envoyez-nous un e-mail.