Alteryx Engine と AMP の主な違い

バージョン:
2021.3
Last modified: August 19, 2021

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

データ処理の違い

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

複数のコアを使用する場合、AMP アーキテクチャはマルチスレッド処理を可能にします。

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

出力の違い

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

  • クロスタブ
  • 動的入力
  • 結合
  • 複数結合
  • ポリビルド
  • 累計
  • タイル
  • ユニオン
  • ユニーク

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

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

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

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

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

書き込みパフォーマンス

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

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

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

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

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

スロットルツール

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

ファジーマッチ

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

正規表現ツール

AMP は、Unicode および Perl エンコード標準を使用しており、$+<=>^|~ は句読点として使用できません。AMP を使用してフォーミュラ式関数 REGEX_Replace または 正規表現 ツールで、RegExセット [[:punct:]] を利用して句読点をフィルタリングする場合、式を変更する必要があります。例: REGEX_REPLACE([_CurrentField_],'[[:punct:]]|[\$\+<=>\^`\|~]','')

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

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

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

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

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

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

結合出力で並べ替え順序を設定する必要がある場合は、結合 の後に ソート ツールを追加します。
グループ化に重複したフィールドを使用すると、複数結合 ツールでエラーが発生します。

反復マクロ

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

  • AMP ではエラーがある場合に、エラーの数が多くなる可能性がある。
  • AMP ではレコード数が多くなる可能性がある。
  • 出力スキーマは 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) ツールが容易されており、作業をフェーズに分けて、他の作業をお互いに邪魔しないようにすることができます。

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

利用可能な機能

特定のツール機能の詳細については、AMP でのツール使用 を参照してください。

役に立ちましたか?

Running into problems or issues with your Alteryx product? Visit the Alteryx Community or contact support. Can't submit this form? Email us.