Skip to main content

Alteryx Engine und AMP: Hauptunterschiede

Im Artikel Alteryx AMP Engine haben wir die Alteryx Engine und die neue Alteryx Multi-threaded Processing (AMP) behandelt. Lassen Sie uns nun ausführlicher auf die Hauptunterschiede zwischen den beiden eingehen.

Unterschiede bei der Datenverarbeitung

Die Original-Engine-Architektur ermöglicht meist eine Single-Threaded-Verarbeitung, bei der Ihre Daten Datensatz für Datensatz sequentiell verarbeitet werden. Im Gegensatz dazu ermöglicht das neue AMP-Konzept eine massive Multithreading-Verarbeitung. Die Datensätze werden in 4-MB-Paketen verarbeitet, um die Laufzeit zu verkürzen, und zwar parallel, wodurch die Reihenfolge der ausgegebenen Datensätze beeinflusst werden kann.

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.

Unterschiede bei der Eingabe

CSV-Dateien, die ein Feld mit Zeilenumbrüchen in Anführungszeichen enthalten, schlagen fehl, wenn Sie die zusätzliche Option  Nur AMP: Felder in Anführungszeichen können Zeilenumbrüche enthalten nicht aktivieren.

Datensatzlimit

Die Laufzeiteinstellung für die Workflow-Konfiguration Datensatzlimit für alle Eingaben ist bei AMP für die folgenden Tools aktiviert:

  • Eingabedaten

  • Texteingabe

  • Zeilen generieren

  • Makroeingabe

AMP-Unterstützung für das Datensatzlimit auf Tool-Ebene im Dynamische-Eingabe -Tool wurde mit 2021.1, Patch 2 und allen nachfolgenden Versionen hinzugefügt.

Unterschiede bei der Ausgabe

Manche Tools geben Datensätze möglicherweise in einer unterschiedlichen Reihenfolge als die Original-Engine aus, wenn ein Workflow mit der AMP-Engine ausgeführt wird. Zu diesen Tools gehören unter anderem:

  • Kreuztabelle

  • Datenbereinigung (beim Entfernen von Nullzeilen)

  • Verknüpfen

  • Mehrere verknüpfen

  • Mehrzeilige Formel

  • Poly-Erstellung

  • Laufende Summe

  • Sortieren (wenn Wörterbuchsortierung mit Sonderzeichen verwendet wird)

  • Zusammenfassen (bei Verwendung von „Gruppieren nach")

  • Kachel

  • Zusammenführung

  • Einmalig

Wenn in Ihrem Workflow Datensätze aus den oben genannten Tools für nachgeschaltete Vorgänge in einer spezifischen Reihenfolge vorliegen müssen, ist der Engine-Kompatibilitätsmodus verfügbar, um dieselbe Sortierung wie bei der Original-Engine beizubehalten. Dieser sollte nach sorgfältiger Prüfung des spezifischen Workflows verwendet werden, vor allem bei der Migration von Workflows, die mit der Original-Engine erstellt wurden, damit diese mit der AMP-Engine ausgeführt werden können.

Bei spezifischen Funktionen oder Konfigurationen, die nicht in AMP konvertiert wurden, stellt Designer das Tool automatisch wieder so her, wie es in der Original-Engine war. Daher werden Workflows, die sowohl AMP-konvertierte als auch nicht konvertierte Tools enthalten, nahtlos mit AMP ausgeführt.

Wenn Sie Fragen dazu haben, welche Tools auf AMP umgestellt wurden, gehen Sie zu Tool-Verwendung mit AMP .

Mit der Original-Engine sind Tools stärker mit nachgeschalteten Tools verbunden und halten die Ausführung an, sobald nichts Nachgeschaltetes mehr erkennbar ist. Beim AMP-Parallelbetrieb kann es vorkommen, dass die Tools nicht mit dem leeren nachgeschalteten Strom anhalten. Es wird davon ausgegangen, dass der Datenstrom nicht berücksichtigt wird, wenn keine Tools nachgeschaltet sind. Die Info in der Protokollmeldung dient nur zur Information. Wenn Ihnen die Anzahl der Datensätze im Datenstrom wichtig ist, können Sie ein Test-Tool verwenden und eine Fehlermeldung ausgeben lassen, wenn die Anzahl der Datensätze nicht korrekt ist.

Leseleistung

Eine mit der AMP Engine geschriebene YXDB-Datei wird schneller eingelesen als eine mit der Original-Engine geschriebene YXDB-Datei.

Die mit der Original-Engine geschriebene YXDB-Datei wird bei aktivierter AMP Engine langsamer gelesen. Die Formate sind weiterhin miteinander kompatibel.

Verwenden Sie XLSX-, CSV-, YXDB- und SQLite-Dateiformate mit AMP – sie unterstützen eingelesene Multi-Threading-Daten.

Die Konvertierung von Datensätzen und Paketen zwischen Original-Engine und AMP beim Einlesen von Zip-Dateien ist mit Leistungseinbußen verbunden. Dies kann dazu führen, dass größere Zip-Dateien mit AMP deutlich langsamer gelesen werden.

TIPP

Wenn eine mit AMP geschriebene YXDB-Datei in einem Texteditor geöffnet wird, steht „ Alteryx e2 Database file " ganz am Anfang des Dateiinhalts. Eine Datei, die mit der Original-Engine geschrieben wurde, zeigt an der gleichen Stelle nur „ Alteryx Database File " an.

Schreibleistung

Um die Leistung der Original-Engine zu verbessern (indem AMP eine YXDB-Datei schreibt, die mit der Original-Engine erstellt wurde), navigieren Sie zum  Konfigurationsmenü des  Datenausgabe-Tools . Dort finden Sie die Option, eine Version der YXDB-Datei zu erstellen, die mit Designer 18.1 und älter kompatibel ist.

Das Ausgabe-Tool verhält sich unterschiedlich bei Datensätzen, die SpatialObj-Daten enthalten, je nachdem, ob eine CSV-Datei mit der Original-Engine oder mit der AMP Engine gespeichert wird. Während die AMP Engine beim Speichern als CSV-Datei SpatialObj-Daten in die Datei schreibt, ist dies bei der Original-Engine nicht der Fall. Dieser Unterschied führt zu unterschiedlichen Dateigrößen. Außerdem kann es sein, dass Sie Leistungseinbußen feststellen.

FALLS erforderlich, besteht eine Problemumgehung darin, die Geodaten mithilfe des  Datenfelder-auswählen-Tools aus den Datensätzen zu entfernen. Dann wird die Ausführung bei beiden Engines ähnlich lange dauern.

Leistungsprofilerstellung

Die Leistungsprofilerstellung pro Tool mit AMP ist ab Designer Version 2021.3 verfügbar.

R-Tool-Leistung

AMP leitet Daten an und von R im Original-Engine-Format weiter. Diese doppelte Konvertierung nimmt Zeit in Anspruch. Die Ausführung eines einzelnen R-Tools kann mit AMP langsamer sein als mit der Original-Engine, ist jedoch schneller, wenn mehr als ein Zweig gleichzeitig ausgeführt wird.

Texteingabe- und Auto-Datentypbestimmung-Tools

AMP behebt ein historisches Problem, bei dem die Größe des Feldes bei der Verarbeitung durch ein nachgeschaltetes Tool möglicherweise nicht groß genug ist. Sie müssen keine Datenfelder-auswählen-Tools hinzufügen, um Datentypen zu ändern, wenn die resultierenden Daten die Länge des ursprünglichen Datentyps überschreiten. AMP erstellt das Feld für die maximale Größe von Zeichenfolgen und Ganzzahlen, damit nachfolgende Vorgänge den notwendigen Platz haben, um größere nachgeschaltete Werte aufzunehmen.

Drosselung-Tool

Obwohl das Drosselung-Tool nicht vollständig auf AMP umgestellt wurde, können Sie es in Kombination mit dem Herunterladen-Tool (Drosselung als Erstes) verwenden.

Fuzzy-Übereinstimmung

Fuzzy-Übereinstimmung kann zu unterschiedlichen Ergebnissen zwischen der Original- und der AMP Engine führen. AMP-Datensätze werden nach einer alternativen Methode abgeglichen. Die Reihenfolge der Übereinstimmung kann unterschiedlich sein und die Ausgabe kann auch in umgekehrter Reihenfolge erfolgen. Es gibt ein bekanntes Leistungsproblem, bei dem das Fuzzy-Übereinstimmung-Tool im Vergleich zur Original-Engine mit AMP eine geringere Leistung erbringt.

RegEx-Tool

AMP verwendet Unicode- und Perl-Codierungsstandards, wobei die Zeichen $ , + , < , = , > , ^ , | und ~ nicht als Interpunktion gelten. Wenn Sie die Formelfunktion REGEX_Replace oder das RegEx-Tool verwenden, um Interpunktion mit dem RegEx-Satz [[:punct:]] zu filtern, müssen Sie mit AMP den Ausdruck ändern.

Beispiel

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

Gruppierungs- und Blockierungs-Tools

Der Verknüpfen -Algorithmus mit der Original-Engine basiert auf der Sortierungs-Zusammenführungs-Verknüpfungsmethode, bei der die Datensätze immer in einer sortierten Reihenfolge vorliegen. Der neue Verknüpfen -Algorithmus von AMP basiert auf einer Hash-Verknüpfungsmethode, wodurch die Reihenfolge der Datensätze ungeordnet ist. Beispiel:

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

Linke Eingabe:

The Join algorithm - left input.

Rechte Eingabe:

The Join algorithm - right input.

Wenn wir über die CustomerID mit der Original-Engine verknüpfen, wird die Reihenfolge der Datensätze nach dem CustomerID -Feld sortiert:

Join by CustomerID with the original Engine.

Mit AMP sind die Datensätze identisch, jedoch in einer anderen Reihenfolge:

Join by CustomerID with AMP.

Wenn Sie eine sortierte Reihenfolge in der Verknüpfungsausgabe benötigen, fügen Sie das Daten-sortieren -Tool nach dem Verknüpfen -Tool hinzu oder aktivieren Sie den Engine-Kompatibilitätsmodus . Diesen Modus finden Sie im Workflow-Konfigurationsfenster  auf der Laufzeit -Registerkarte – unter der AMP Engine verwenden -Option.

Use AMP Engine checkbox

Iterative Makros

Der Unterschied zwischen der Original-Engine und AMP kann auftreten, wenn ein Tool innerhalb des Makros einen Fehler meldet. Da es sich um einen Single-Threaded-Prozess handelt, stoppt Original-Engine bei einem Fehler im Makro. AMP läuft so lange, bis die Iterationsausgabe leer ist oder die maximale Anzahl von Iterationen erreicht ist. Diese Situationen können aufgrund einer höheren Anzahl von Iterationen auftreten:

  • Die Anzahl der Fehler (falls vorhanden) kann mit AMP höher sein.

  • Die Anzahl der Datensätze kann mit AMP höher sein.

  • Das Ausgabeschema kann mit AMP anders sein.

Formel-Tool

Die Funktionen ConvertFromCodePage und ConvertToCodePage im Formel-Tool akzeptieren Strings als Parameter und geben Strings als Ergebnis zurück, sodass es nicht möglich ist, zu unterscheiden, wie der String codiert ist. Es gibt einen Unterschied in der Ausgabe des Formel -Tools, wenn diese Funktionen mit der Original-Engine und AMP verwendet werden.

Die unterschiedliche binäre Darstellung der Eingabedaten wird durch die AMP-interne Verwendung von UTF-8-codierten Zeichenfolgen verursacht. Wenn die Daten mit einer unterschiedlichen Codierung importiert werden, gibt es keine Möglichkeit, die ursprünglichen Daten wiederherzustellen. Die Original-Engine speichert Zeichenfolgen als Latin-1- oder UTF-16-codierte Zeichenfolgen, die als Puffer verwendet wurden und die korrekte Rückkonvertierung von Daten ermöglichen.

Formel-Add-Ins

Formel-Add-Ins werden von AMP noch nicht unterstützt. Wenn Sie einen Workflow mit Formel-Add-In-Funktionalität ausführen müssen, führen Sie ihn mit der Original-Engine aus.

Analyse-App

Apps, die das Karten-Tool zur Auswahl aus einer Geo-Referenzebene in einer Analyse-App verwenden, sollten weiterhin die Original-Engine verwenden.

Expect Equal

Mit der Original-Engine bleibt „Expect Equal" ein CReW-Makro. Mit AMP läuft es als ein natives Tool.

Parallele Ausführung von Verzweigungen und Reihenfolge der Tool-Ausführung

Manche Workflows lesen aus einer Datei und schreiben dann in diese zurück. Dies erfordert eine Sequenzierung, um sicherzustellen, dass der Lesevorgang abgeschlossen ist, bevor der Schreibvorgang beginnen kann. In ähnlicher Weise muss ein Workflow, der mehrere Blätter in eine .xlsx-Datei schreiben möchte, die Blätter nacheinander schreiben. Alteryx Designer bietet ein Befehlsausführung-blockieren-Tool (Block Until Done, BUD) an, um die Arbeit in Phasen zu unterteilen, die sich nicht gegenseitig behindern.

Dieselbe Problemumgehung gilt für das E-Mail-Tool, wenn Sie (eine) Ausgabedatei/en aus (einer) vorherigen Verzweigung/en als Anhang verwenden. Sie müssen warten, bis die Datenverarbeitung abgeschlossen ist, und können dann den Anhang zum E-Mail-Tool hinzufügen.

Wenn Sie an einem Workflow mit mehreren Zweigen arbeiten (weitgehend getrennte Ströme von Eingaben zu Ausgaben), ordnen Sie das Befehlsausführung-blockieren-Tool  (BUD) im Workflow-Zweig mit der niedrigsten nummerierten Eingabedaten-Tool-ID. Dadurch wird sichergestellt, dass jede nachfolgende Verzweigung erst dann ausgeführt wird, wenn die vorherige Verzweigung abgeschlossen ist und das Tool wie erwartet funktioniert.

Verfügbare Funktionen

Weitere Informationen zu spezifischen Tool-Funktionen finden Sie unter Tool-Nutzung mit AMP .