Alteryx Engine と AMP の主な違い

バージョン:
2022.1
Last modified: June 22, 2022

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

データ処理の違い

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

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

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

入力の違い 

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

出力の違い

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

  • クロスタブ
  • データクレンジング (NULL 行を削除する場合)
  • 結合
  • 複数結合
  • 複数行フォーミュラ
  • ポリビルド
  • 累計
  • ソート (特殊文字を含む順序は、従来の Engine とは異なります)
  • 要約 (グループ化が使用されている場合)
  • タイル
  • ユニオン
  • ユニーク

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

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

AMP に変換されたツールについて質問がある場合は、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 ファイルを作成するオプションがあります。

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

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

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

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 を使用する 設定の下で、ワークフロー設定 – ランタイムエンジン互換モード 設定を有効にします。

反復マクロ

従来の 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) ツールが用意されており、処理をフェーズに分けて、他の処理をお互いに邪魔しないようにすることができます。

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

利用可能な機能

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

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

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