今回は、複数のワークフロー実行の順序を制御することについて考えてみたいと思います。
Alteryxでは、ワークフローを順次実行するための機能としていくつか持っています。作り込みが必要なもの、基本機能、など様々な形式がありますが、整理してみましょう。
- 分析アプリのチェーンアプリ
- CReW Macroのランナーツール
- マクロ化し、別ワークフローから呼び出す
- ServerAPIによる起動
- Alteryx Analytics CloudのPLANs
難易度としては1が一番低く、6が一番高いです(6に関してはいろんな意味で・・・)。
ちなみに、Alteryx Designerではコマンドライン実行には制御がかけられており、適切なライセンスがないとできないようになっています(デスクトップオートメーションもしくはServerのライセンスが必要です)。ですので、バッチファイルでの連続実行やWindowsのスケジュール実行などは機能しない、ということになります。
1.分析アプリのチェーンアプリ
分析アプリ(YXWZ形式)では、実行が正常に成功したときは次のアプリを呼びだすチェーンアプリという機能が備えられています。メニューの[表示]から[インターフェースデザイナー]を選択すると、インターフェースデザイナーが起動するので、一番左下のギアのマークをクリックすると開くプロパティで「成功した場合-別の分析アプリを実行する」オプションから設定が可能です。
しかし注意点として、基本的に人間がこの起動したアプリの実行を行う前提なので、サーバーで自動的に連続的に人間が関与せず実行するようなことはできません。DesignerでもServerでも必ずパラメーターの入力画面が出てそこで一度止まります。パラメータを設定する必要のない分析アプリも以下のような画面が必ず出るのです・・・。
基本的な分析アプリの使い方としては準備パラメータを人間が設定しながら進める、といった用途になるからでしょうか・・・。
これができれば非常に楽だったのですが・・・。
2.CReW Macroのランナーツール
Designerの場合はCReW Macroのランナーツールを使うのが常套手段です。本家版は2バイト文字圏のユーザーの方はエラーになると思うので、Alteryx社サポート版を使う必要があります。
ダウンロードしてYXZPファイルを開いたあと、もともとのCReW Macroを上書きしてください(特にAlteryxRunner.exeというバイナリ実行ファイルが日本語でも動作するように修正されているところがポイントです)。これにより、他のランナー系マクロ(List Runner/Conditional Runner)も動作するようになります。
ただし、Alteryx Serverで使う場合はランナーツールはサポート外になります。これは、ランナーツールがServerの管理するエンジン以外のエンジンを立ち上げ実行するからです。つまり、同時にランナーツールがいくつも動くとServerに予期せぬ負荷を与える可能性がある、ということです。
3.マクロ化し、別ワークフローから呼び出す
これはWeekly Alteryx Tips Week55の応用です。実行したいワークフローをバッチマクロにして次々と他のワークフローから呼び出して実行していきます。
実行したいワークフローは、以下のようにバッチマクロ化します。実行制御用のコントロールパラメーター入力以外に、連続起動用(マクロを数珠つなぎにする)のマクロ入力ツール・出力ツールを直結したものを配置しています。これらは呼び出したいワークフローすべてに追加する必要があります。
これを呼び出すワークフローは以下のとおりです。
ちなみに、バッチマクロに出力がある場合は何かしら接続する必要があるので、閲覧ツール以外を接続しておきましょう(Serverで動かしても大丈夫なように)。
この方法は、Alteryx Serverでワークフローの起動順序の制御を行うために、ServerAPIを使わずに行う方法の一つです。手間は少々かかりますが、効果的な方法です。
4.ServerAPIによる起動
Alteryx ServerがあればServerAPIによる制御が可能です。つまり、ワークフローの最後にServer APIで次に起動するワークフローを指定する、という方法です。これであればCReW MacroのランナーマクロのようにServerの管理外でワークフローが動作する、という心配はありません。ServerのAPIもMarketPlaceからダウンロードできるServerAPIツールで比較的簡単に利用が可能です。
5.Alteryx Analytics CloudのPLANs
これは、前提条件として、Designer CloudとCloud Execution for Desktopを契約している必要があります。
Alteryx Analytics Cloud(俗に言うDesigner Cloudのプラットフォーム部分です)にはPLANsという機能があります。これを使うとワークフローの起動の制御ができます。Cloud Execution for Desktopが使えれば、Designer CloudだけではなくDesktop版のワークフローの起動の順序も制御できます。お金があれば、これが一番楽な方法です・・・。
まとめ
- ワークフローを順次呼び出して実行する5つの方法を紹介しました
- 分析アプリのチェーンアプリ
- CReW Macroのランナーツール
- マクロ化し、別ワークフローから呼び出す
- ServerAPIによる起動
- Alteryx Analytics CloudのPLANs
- それぞれ一長一短があるので、目的やコストにあった方法を採用してください。
No | 方法 | Designer | Server | コメント |
---|---|---|---|---|
1 | 分析アプリのチェーンアプリ | ◯ | ✗ | 次のWFは手で進めないといけない |
2 | CReW Macroのランナーツール | ◯ | ✗ | |
3 | マクロ化し、別ワークフローから呼び出す | ◯ | ◯ | |
4 | ServerAPIによる起動 | ✗ | ◯ | |
5 | Alteryx Analytics CloudのPLANs | ✗ | △ | 高い(CloudとCloud Execution for Desktopの契約必要) |
サンプルワークフローダウンロード
3の「マクロ化し、別ワークフローから呼び出す」のサンプルです。
次回
未定です。
コメント