Free Trial

ブログ

アナリティクスに関する聡明な考えに触れ、インサイトとアイデアが得られます。
AkimasaKajitani
17 - Castor
17 - Castor

初の投稿となりますので、不備ありましたがご容赦ください。

 

今回は、ワークフロー開発の際に、開発効率を高めるTipsを紹介したいと思います。

 

ワークフロー開発の際に、ちょっとしたオプションなど様々な機能を使いこなすことで、開発効率を高めることができます。

 

  • 進行状況を常に表示
  • ワークフローの一部処理をツールコンテナで無効化
  • 出力を書き込むすべてのツールを無効にする
  • 入力のレコード数に制限をかける
  • キャッシング実行

 

以下、順番に説明します。

 

進行状況を常に表示

Alteryx Designerでワークフローを実行すると、進行状況が表示されると思います。その際、アイコンごとにレコード数とデータ容量が表示されます。これ、デフォルト設定では実行後一定時間が経過すると消えてしまいます。

 

レコード数とデータ容量をずっと表示できていたらワークフローのデバッグに役に立つのに!と思っていらっしゃる方に朗報です。

「Workflow - Configuration」の「Canvas」タブから「接続の進行状況」がデフォルトで「実行時のみ表示」になっているので、「表示」に切り替えるだけでできます。

 

このオプションを変えるだけで、ずっと表示されます。

 

 

ワークフローの一部処理をツールコンテナで無効化

ワークフローをツールコンテナでブロック化することで、ワークフローを理解しやすくできますが、それ以外にも一時的に「無効」にすることで、処理をスキップすることができます。

例えば、ワークフローの途中で分岐している処理があり、片方は作り終わったのでツールコンテナに入れておき、無効にしておくことで、開発効率を高めることができます。

 

 

出力を書き込むすべてのツールを無効化

ワークフローを作り込んで行く際、ある程度完成してくると、ファイルに出力する部分で処理に時間がかかり、結果的にワークフロー作成の効率が落ちる要因となります。そのような際に、出力を書き込むツールを無効にすることができます。

「Workflow - Configuration」の「Runtime」タブから「出力を書き込むすべてのツールを無効にする」にチェックを入れるだけです。

 

上記オプションにチェックを入れると、無効化されたアイコンが網掛けされます。

 

 

すべての入力のレコード数に制限をかける

入力データのレコード数が多い場合、ワークフローの作成に時間がかかります。入力ツール上で、ひとつひとつのインプットに対してレコード数の制限をかけることもできますが、面倒ですしかけたまま間違えて展開、ということもあるかもしれません。

そんな場合に、すべての入力に一括で制限をかけるオプションが存在します。

 

「Workflow - Configuration」の「Runtime」タブから「すべての入力に対するレコード制限」のテキストボックスに数字を入れるだけです。

 

上記オプションですが、空白にしておけば制限なしとなります。ちなみに、マスターテーブルなどがある場合、そちらまで制限がかかると困るケースもあるかと思いますので、上手に使ってください。

 

デバッグが終わったらオプションは忘れずに解除しましょう!

 

キャッシング実行

ワークフローを作成する際、何度もワークフローを実行すると思いますが、入力データの読み込み自体にかなりの時間を取られることが多いと思います。正直なところ、Alteryx内部の処理自体はそれほど時間かからないのに、読み込みに時間がかなり持っていかれる、というのはみなさんよく経験しているかと思います。それだけメモリ上の処理が高速、ということかと思います。

それを解決する策の一つとして、「ワークフローのキャッシュと実行」の機能があります。

この機能であれば、入力データの制限などと比べると完全なデータを高速に扱うことができるという利点があります。

やり方は、キャッシュをかけたいアイコンで右クリックし、メニューから「ワークフローのキャッシュと実行」を選択するだけです。

 

「ワークフローのキャッシュと実行」を行うと、キャッシュデータを作成しながらワークフローが実行されます。キャッシュされているアイコンについては形状が変わります。

 

手動でキャッシュを削除したい時は、右クリックから「キャッシュの消去」を選択します。

 

なお、キャッシュがかかっているアイコンに変更を加えるとキャッシュは自動的に削除されます。また、キャッシュの起点(?)となるアイコンは青色の枠で囲まれていますが、それ以外のアイコンは灰色の枠で囲まれています。

 

 

 

※本記事は、弊社ブログ(画像付きで掲載しております)の転載となります

オリジナルリンク:https://newssdx.kcme.jp/alteryx-tips-speedup_wf_develop/

Akimasa Kajitani
Deputy Manager, Data Solution Dept.

I like to help people who are having trouble using Alteryx and focusing on improving the everyone's Alteryx skill. And I’m exploring how far we can go with no code or with code using Alteryx. My companiy's blog : https://newssdx.kcme.jp/ My private blog for Alteryx : https://analytics-x.tech/en/

I like to help people who are having trouble using Alteryx and focusing on improving the everyone's Alteryx skill. And I’m exploring how far we can go with no code or with code using Alteryx. My companiy's blog : https://newssdx.kcme.jp/ My private blog for Alteryx : https://analytics-x.tech/en/

コメント
DaisukeTsuchiya
マグネター

梶谷さん

 

非常に参考になりました。ありがとうございます。
1)進行状況常に表示いいですね。件数がJoin、Filter、Uniqueの前後でどうなっているかはいつも気にしているのでこれ助かります。

2)出力の無効化も便利そうです。今までは出力の部分を全部ContainerにいれてOffにしていました。

3)キャッシング実行もためになりました。開発者タブ内のCash Dataも使ったことがあるのですが、いまいち挙動が安定しないため使っていませんでした。その代わりContainerを二つ作り、切り替えていました。(①Data読み込みと同時にYXDBで出力、②YXDBを読み込む の二つのContanerで作成し、Unionで結合。Containerを片側だけOnにして実行。)ProjectでInput Dataの切り替えをしてDebugしなくてはいけない事が多くこの手法を使っていますが、単純な物であれば右クリックのDebug便利そうです。

AkimasaKajitani
17 - Castor
17 - Castor

出力の無効化ですが、使用しているマクロ内でファイル書き込みなどを行っている場合、それも書き込みオフにされてしまいますので、ご注意ください。

 

Cash Dataは確かCommunityにあがっていたマクロだったかと思います。一時的にyxdbファイルをキャッシュとして利用するようなものでした。キャッシュ実行が実装されるまでは有用に使わせて頂いておりました。

 

ozawa
ACE Emeritus
ACE Emeritus

こちらに記載されてるほど即効性のあるものではないですが、Performance Profilingを使うというのも有効かと思います。

ボトルネックになっている部分が確認できるのでワークフローを最適化して高速化する際に利用すると便利です。

AkimasaKajitani
17 - Castor
17 - Castor

ozawaさん

 

コメントありがとうございます。

Performance Profilingも良いですね!

 

dataprofile.png

 

こんな感じで可視化できるので非効率な部分などの改善に役立ちそうです。

DaisukeTsuchiya
マグネター

Performance Profilingってどこから見るのでしょうか?

ozawa
ACE Emeritus
ACE Emeritus

@DaisukeTsuchiya 

 

ワークフローの設定のRuntimeタブに「Enable Performance Profiling」という項目があるので、

こちらにチェックを入れた状態でワークフローを実行するとツールごとの処理時間が出力されます。

 

profile.png