Alteryx Engine と AMP の主な違い

バージョン:
2023.1
Last modified: March 21, 2023

Alteryx AMP Engine の記事では、Alteryx Engine と新しい Alteryx マルチスレッド処理 (AMP) について説明しました。それでは、両者の主な違いについて詳しく見てみましょう。

データ処理の違い

従来の Engine のアーキテクチャでは、主にシングルスレッド処理が可能で、データはレコードごとに連続して処理されていました。一方、新しい AMP コンセプトでは、大規模なマルチスレッド処理を可能にします。レコード処理は高速化のために 4 MB パケットで並列実行されます。そのため、出力レコードの順序に影響を与える場合があります。

複数のコアを使用している場合、AMP アーキテクチャはマルチスレッド処理を行うことができます。

従来の Engine アーキテクチャでは、データがレコードごとに処理されるシングルスレッド処理を行っています。

入力の違い 

改行を引用符で囲んだフィールドを含む CSV ファイルは、追加オプションAMP のみ: 引用符で囲まれたフィールドで改行を許可するを有効にしていない場合、失敗します。

レコード制限

すべての入力に対するレコード制限 のワークフロー設定ランタイム設定は、AMP では次のツールで有効になります。

  • データ入力
  • テキスト入力
  • 行生成
  • マクロ入力 

動的入力 ツールにおけるツールレベルのレコード制限の AMP サポートは、2021.1 パッチ 2 以降のすべてのリリースで追加されました。

出力の違い

AMP Engine を使用したワークフローの実行時に、いくつかのツールが従来の Engine とは異なる順序でレコードを出力する場合があります。次のようなツールがあります。

  • クロスタブ
  • データクレンジング (NULL 行を削除する場合)
  • 結合
  • 複数結合
  • 複数行フォーミュラ
  • ポリビルド
  • 累計
  • ソート (辞書ソートが特殊文字に対し使用されている場合) 
  • 集計 (グループ化が使用されている場合)
  • タイル
  • ユニオン
  • ユニーク

ワークフローで、上記のツールのレコードを下流のツールの作業のために特定の順序にする必要がある場合は、エンジン互換モード を使用して、従来のEngineと同じ順序を維持できます。これは、特定のワークフローを慎重に検討した後、主に従来のEngineで作成されたワークフローを AMP Engine で実行するために移行する場合に使用します。

AMP に変換されていない特定の機能または設定は、動作するために従来の Engine ツールに戻ります。したがって、AMP 変換ツールと変換ツール以外の両方のツールを含むワークフローは、AMP とシームレスに実行されます。

AMP に変換されたツールについて質問がある場合は、AMP でのツールの使用 にアクセスしてください。

従来のEngineのツールは、下流のツールとのつながりが強く、下流に何もなければすぐに機能が停止します。AMP並列実行では、下流に何もなくなってもツールが停止しない場合があります。下流に何もない場合、データストリームは処理されないというのが前提です。ログメッセージの情報は、単なる通知です。ストリーム内のレコード数が重要な場合は、テストツールを使用して、適切なレコード数が得られない場合にエラーメッセージを表示させることができます。

パフォーマンスの読み取り

AMP Engine で書き込まれた YXDB ファイルは、従来の Engine で書き込まれた YXDB よりも高速に読み込まれます。

従来の Engine で書き込まれた YXDB ファイルは、AMP が有効になっていると読み取り速度が遅くなります。形式は、相互に互換性があります。
AMP では、XLSX、CSV、YXDB、および SQLite ファイル形式を使用し、これらのファイル形式は、マルチスレッドの読み込みデータをサポートしています。

Zip ファイルを読み込むときに、従来の Engine と AMP 間でレコードとパッケージを変換する場合には、パフォーマンスコストが発生します。これにより、AMP では大きな Zip ファイルの読み取り速度が大幅に低下する可能性があります 

ヒント

テキストエディターで開くと、AMP で記述された YXDB ファイルには、ファイル内容の最初に「Alteryx e2 Database file」があります。従来の Engine で書き込まれたファイルは、同じ場所に「Alteryx データベースファイル」を表示するだけです。

書き込みパフォーマンス

従来の Engine のパフォーマンスを向上させる (従来の Engine で作成された YXDB ファイルを AMP で書き込む) には、データ出力 - 構成 メニューに、Designer 18.1 以前のバージョンと互換性のある YXDB ファイルを作成するオプションがあります。

出力ツール は、レコードに SpatialObj データ が含まれる場合、CSV ファイルを保存した時の動作が従来の Engine と AMP Engine で異なります。AMP Engine では、CSV ファイルに保存するときに SpatialObj データをファイルに書き込みますが、オリジナルの Engine は書き込みません。そのため、ファイルサイズが異なり、パフォーマンスが低下する可能性があります。
必要に応じて、セレクトツールを使用してレコードから空間データを削除すると、両方の Engine が同様の時間で完了します。

パフォーマンスプロファイル

AMP を使用したツールごとのパフォーマンスプロファイルは、Designer のバージョン 2021.3 以降で利用できます。

R ツールのパフォーマンス

AMP は R との間でデータを従来の Engine の形式で渡します。二重変換には時間がかかります。単一 R ツールの実行時間は、従来の Engine よりも AMP の方が遅くなる可能性がありますが、複数のブランチを同時に実行すると速くなります。

テキスト入力ツールとオートフィールドツール

AMP は、下流のツールで処理したときにフィールドのサイズが不足するという問題に対処しました。結果のデータが元のデータ型の長さを超える場合に、データ型を変更するセレクトツールを追加する必要はありません。AMP は文字列と整数に最大サイズフィールドを作成し、以降の操作では、より大きな下流の値を保持するために必要な容量を保ちます。

スロットルツール

スロットルツールは完全にはAMP用に変換されていませんが、ダウンロードツール  と一緒に使用できます。(スロットルツールを先に使用してください)

ファジーマッチ

ファジーマッチは、従来のEngineとAMPでは異なる結果を出力する場合があります。AMPレコードは、別の方法を使用して照合されます。一致の順序が異なる場合があり、出力も順序が逆になる場合があります。ファジーマッチは、従来のEngineに比べてAMPでのパフォーマンスが低いという既知の問題があります。

正規表現ツール

AMPではUnicodeおよびPerlのエンコード標準が使用され、文字 $+<=>^|~ は句読点と見なされません。式関数 REGEX_Replace または 正規表現ツール を使用して、正規表現セット [[:punct:]] で句読点をフィルタリングする際に、AMP を使用する場合は式を変更する必要があります。

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

グループ化ツールとブロックツール

従来のEngineを使用する 結合 アルゴリズムは、ソートーマージ結合方式に基づいており、レコードは常に並び替えられた順序で実行されます。AMPを使用した新しい 結合 アルゴリズムはハッシュ結合方式に基づいているため、レコードの順序は順序通りの結果にはなりません。例:
AMPを使用した結合アルゴリズムはハッシュ結合に基づいているため、レコードの順序が異なります。

左入力:
結合アルゴリズム - 左入力

右入力:
結合アルゴリズム - 右入力

従来のEngineと CustomerID で結合する場合、レコードの順序は CustomerID フィールドで並べ替えられます。
従来のEngine を使用してCustomerIDを結合します。

AMPでは、レコードは同じですが、順序は異なります。
AMPを使用して、CustomerIDを結合します。

結合出力のソート順順を設定する必要がある場合は、結合の後にソートツールを追加するか、[ワークフロー設定] > [ランタイム] で [AMP Engineを使用する] 設定の下の [エンジン互換モード] 設定を有効にします。

[AMP Engine を使用する] チェックボックス

反復マクロ

従来のEngineとAMPの違いは、マクロ内のツールがエラーを報告した際に表れます。シングルスレッドの場合、マクロでエラーが発生すると、従来のEngineは停止します。AMPは、反復出力が空になるまで、または最大反復回数が発生するまで機能します。実行された反復回数が多いため、次のような状況が発生する可能性があります。

  • AMPではエラーが発生した場合に、エラー数が従来の Engine より多くなることがある。
  • AMPではレコード数が従来の Engine より多くなることがある。
  • 出力スキーマが AMP 実行時には異なることがある。

フォーミュラツール

フォーミュラ ツールの ConvertFromCodePage および ConvertToCodePage 関数は、文字列をパラメーターとして受け取り、結果として文字列を返すため、文字列がどのようにエンコードされているかは判別できません。これらの関数を従来のEngineとAMPで使用した場合、フォーミュラ ツールの出力が異なります。 

入力データのバイナリ表現が異なるのは、UTF-8エンコード文字列のAMPでの内部処理の違いによるものです。異なるエンコードのデータをインポートすると、元のデータに戻す方法はありません。従来のEngineでは、バッファとして使用された文字列をLatin-1またはUTF-16でエンコードされた文字列として保存し、データを正しく元通りに変換できます。

フォーミュラアドイン

フォーミュラアドインはAMPではサポートされていません。フォーミュラアドイン機能を含むワークフローを実行する必要がある場合は、従来の Engineを使用して実行してください。

分析アプリ

マップツール を使用して、分析アプリの 空間参照 レイヤーから選択するアプリは、引き続き、従来のEngineを使用する必要があります。 

Expect Equal (等しいことを検証)

従来の Engine では、Expect Equal (等しいことを検証) ツール は CReW マクロのままです。AMP では、ネイティブツールとして実行されます。

並列分岐実行とツールの実行順序

一部のワークフローは、ファイルから読み取った後、書き戻しを行います。これには、書き込みを開始する前に読み取りが完了したことを確認するために、シーケンスが必要です。同様に、1 つの XLSX ファイルに複数のシートを書き込むワークフローでは、シートを 1 つずつ書き込む必要があります。Alteryx Designer には、完了までブロック (BUD) ツールが用意されており、処理をフェーズに分けて、他の処理をお互いに邪魔しないようにすることができます。
E メールツールについても、前のブランチからの出力ファイルを添付ファイルとして受けて使用する場合、同じ回避策が適用可能です。データ処理が完了したら待つ必要があり、その後に E メールツールに添付ファイルとして追加します。

複数の分岐 (主に入力から出力に大別されるストリーム) を持つワークフローで作業する場合、入力ツール ID の番号が最も小さいワークフローの分岐に 完了までブロック ツールを配置します。これにより、後続のすべての分岐は、前の分岐が完了し、ツールが期待どおりに動作するまで実行を待機します。

利用可能な機能

特定のツール機能の詳細については、AMP でのツール使用 にアクセスしてください。

このページは役に立ちましたか?

Alteryx 製品のご利用中に何か問題がございましたら、Alteryx コミュニティにアクセスするか、サポートにお問い合わせください。このフォームを送信できない場合E メールでお送りください。