Alteryx 2020.2 新機能:ワークフローの処理を高速化するAMP(Alteryx Multi-threaded Processing)エンジンが利用可能になりました

マルチスレッドでの実行を実現するAMPエンジンでワークフローを高速化してみました
2020.06.08

データアナリティクス事業本部プロダクト営業部の営業じゃない方・新納(にいの)です。

2020/6/3にAlteryxの最新バージョン2020.2がリリースされました。Designerのインストーラのファイルサイズもすくすく成長してなんと約1GBに!

本エントリでは2020.2から利用可能になった、AMP(Alteryx Multi-threaded Processing)エンジンについてご紹介します。

AMPエンジンとは?

AMP(Alteryx Multi-threaded Processing)エンジンとは、データを並列パケットで処理するAlteryxエンジンのアーキテクチャです。従来のAlteryxエンジンはデータをレコード単位で順次処理していましたが、AMPエンジンではマルチスレッドで処理を実行します。マシンリソースを効率的に使用することで大規模なデータの処理を高速化する…というものです。

実際に使ってみた

Alteryx Desinger

デフォルトでは従来のエンジンを使用するようになっていますので、AMPエンジンを使用するには設定が必要となります。左ペイン[ランタイム]→[AMP Engineを使用する]にチェックを入れれば設定完了です。

今回の検証のために、1億レコードを処理するワークフローを処理に負荷がかかるツールを選んで作成してみました。良い子は決して真似してはならない、重たいだけで何の有用な結果も生み出さないワークフローです。

従来のエンジンで処理した際のCPU使用率がこちら。

AMPエンジンを使って処理した際のCPU使用率がこちら。(従来のエンジンよりかはCPUを均等に使っているようにも見えます。)

処理時間に関しては従来のエンジンでは4分19秒、AMPエンジンでは2分42秒という結果になりましたが、私の個人PCで数回実行したこの結果だけで「早くなった!」とも言いづらいのでAlteryx Serverでも試してみましょう。

Alteryx Server

Alteryx社公式ドキュメントによると2020/6/7現在本番環境のAlteryx ServerにおいてAMPエンジンの利用は推奨されておりません。現段階ではAlteryx ServerでのAMPエンジンはプレビューリリースという位置づけですので、テスト環境での試験的な運用が推奨されております。利用の際はタグ付けやワークフロー名でAMPエンジンを利用したワークフローであることを明示しておくとわかりやすいです。

Alteryx Serverでも事前にAMPエンジンを使用するための設定が必要です。System Settingsを開き、[Controller]→[General]→[Engine]配下の「Enable e2 Engine」にチェックを入れます。

上記のチェックを入れた後にAMPエンジンの設定をONにしたワークフローをアップロードします。なお、チェックを入れずにワークフローをアップロードした場合、「E2 Disabled」という画面が表示されて実行できないのでご注意ください。

今回はAMPエンジンをON・OFFにしたワークフローをそれぞれアップロードして10回ずつ実行してみました。

従来のエンジンを使ったワークフローの実行結果は以下の通り。平均約3分で実行が完了しています。

AMPエンジンをONにしたワークフローの実行結果は以下の通り。平均して2分6秒ほどで実行が完了しており、従来のエンジンで実行するよりも実行時間が早くなっていることが確認できました。

まとめ

2020.2の新機能・マルチスレッドでワークフローを実行するAMPエンジンについてご紹介しました。試行回数は少ないかもしれませんが、実行時間はAMPエンジンを使用したほうが早いという結果が得られました。時間のかかる大規模なデータ処理にお悩みの方はAMPエンジンをお試しください。

参考資料

Alteryxの導入なら、クラスメソッドにおまかせください

日本初のAlteryxビジネスパートナーであるクラスメソッドが、Alteryxの導入から活用方法までサポートします。14日間の無料トライアルも実施中ですので、お気軽にご相談ください。 alteryx_960x400