Alteryx Engine et AMP : principales différences

Version:
2023.1
Last modified: March 28, 2023

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

Les fichiers CSV contenant un champ avec de nouvelles lignes entre guillemets échoueront si vous n'activez pas l'option supplémentaire AMP uniquement : les champs entre guillemets peuvent contenir de nouvelles lignes.

Limite d'enregistrements

Le paramètre d'exécution de la configuration du workflow Limite d'enregistrements pour toutes les entrées est activé avec AMP pour les outils suivants :

  • Entrée de données,
  • Saisie de texte,
  • Générer les lignes,
  • Entrée de macro. 

La prise en charge d'AMP pour la limite d'enregistrements au niveau de l'outil dans l'outil Entrée dynamique a été ajoutée avec le correctif 2 de la version 2021.1 et à toutes les versions ultérieures.

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 (lorsque le tri du dictionnaire est utilisé avec des caractères spéciaux) 
  • 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.

Avec le moteur d'origine, les outils sont davantage connectés aux outils en aval et cessent de fonctionner dès qu'ils ne détectent rien en aval. Lorsqu'AMP est exécuté en parallèle, les outils peuvent ne pas s'arrêter lorsqu'il n'y a plus rien en aval. Il est présumé qu'avec l'aval vide, le flux de données n'est pas pris en compte. Les informations contenues dans le message de journal sont fournies à titre indicatif. Si le nombre d'enregistrements dans le flux est important pour vous, vous pouvez y placer un outil Test et lui faire envoyer un message d'erreur s'il n'obtient pas le bon nombre d'enregistrements.

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.

L'outil Sortie se comporte différemment avec les enregistrements contenant des données SpatialObj lorsqu'un fichier CSV est enregistré avec le moteur d'origine et AMP Engine. Alors qu'AMP Engine écrit des données SpatialObj dans le fichier lorsque vous les enregistrez en tant que fichier CSV, le moteur d'origine ne le fait pas. Cela entraîne des différences de taille de fichier et un risque de baisse des performances.
Si nécessaire, une solution consiste à supprimer les données spatiales des enregistrements à l'aide de l'outil Sélectionner. Les deux moteurs se terminent alors avec des durées similaires.

Profilage des performances

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

Performances de l'outil R

AMP transmet les données vers et depuis R au format du moteur d'origine. Cette double conversion prend du temps. Le temps d'exécution d'un seul outil R peut être plus lent avec AMP qu'avec le moteur d'origine, mais il sera plus rapide si plusieurs branches sont exécutées simultanément.

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.

Utiliser la case à cocher 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. 

Attendre des flux égaux

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.
La même solution s'applique à l'outil E-mail lorsque vous utilisez le ou les fichiers de sortie des branches précédentes comme pièces jointes. Vous devez attendre que le traitement des données soit terminé, puis les ajouter en pièces jointes à l'outil E-mail.

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.