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.
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.
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.
Tip
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
FALLS erforderlich, besteht eine Problemumgehung darin, die Geodaten mithilfe des
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
Linke Eingabe:
Rechte Eingabe:
Wenn wir über die CustomerID mit der Original-Engine verknüpfen, wird die Reihenfolge der Datensätze nach dem CustomerID-Feld sortiert:
Mit AMP sind die Datensätze identisch, jedoch in einer anderen Reihenfolge:
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.
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.