Alteryxツールアイコン「スロットルツール」(Throttle Tool)をご紹介します
スロットルツール (Throttle Tool)
[開発者]カテゴリの[スロットル]ツールについて紹介します。概要
このツールは、データを処理する速度を抑制するツールです。
通常のデータ処理においては処理速度は早ければ早いほどが良いですが、クラウドやWEBのサービスからデータを取得するような際、処理速度が早すぎるとサーバー側に負荷がかかりすぎてしまう可能性があります。そのような場合に、データの処理速度をわざと落として処理することで、負荷を軽減させるために使用します。
よくあるパターンとして、ダウンロードツールとセットで使うことになります。
設定項目
設定内容 | 詳細 |
---|---|
レコード処理数/分 | 1分間あたりのレコード処理数を設定します。60と設定すると、1秒に1レコード処理されます。 |
検証
いくつかのパターンで検証してみました。
スタンダードな使い方
行生成ツールで10レコード生成後、スロットルツールを配置した際の時間を計測します。
スロットルツール前後の時間計測とレコード間の時間差を計算しました。
結果としては、以下の通りで、1秒に1レコード処理する設定(設定値:60)にすると、ちょうど1秒ごとに処理されていることがわかります。
ワークフロー内の分岐
スロットルの前で分岐して計測してみました。
下の分岐した方のワークフローの処理結果を見てみたいと思います(赤枠のところ)。
結果的には、スロットルツールの前で分岐しているにも関わらず、スロットルツールの後ろと同様に1秒毎に実行されています。
つまり、スロットルツールの前も後ろも一続きのデータ処理の中ではスロットルツールの設定が全体に影響を及ぼす、ということになります。
ワークフロー内で接続されていない場合
WF内に、スロットルが組み込まれた処理と、組み込まれていない処理があるとします。
この場合は、スロットルが組み込まれている処理の方はスロットルの影響がありますが、その処理と接続がない方はスロットルの効果が及ばず最速のタイミングで処理されています。
スロットルを2つ接続
一つのWF内にスロットルを2つ組み込んでみました。それぞれ設定は60と30にしました(前者は1秒に1レコード処理、後者は2秒に1レコード処理)。
結果としては、処理時間が長い方の設定に引きずられ、2秒に1レコード処理されました。
同じデータストリームの中には一つ設定すれば十分ということになります(細かく見ると、1秒に1レコード処理している箇所はありますが・・・)。
なお、今回は直列に接続していますが、以下のように並列で接続した際も同じような動きとなります。
スロットルを2つ接続(ブロッキングツールを利用)
一つ前のサンプルと同様に、一つのWF内に2つのスロットルを組み込みましたが、スロットルの間に「完了までブロックツール」を挟み込んでみました。
結果としては、「完了までブロックツール」の前と後ろでそれぞれのスロットルツールの結果が反映されました。
ツールの中には一度データを溜め込んで流れを一度止める「ブロッキングツール」というものがありますが(例:集計ツール等)、これでWF内が区切られている場合は、スロットルツールをそれぞれに入れる必要があります(設定もそれぞれの設定が有効になります)。
ブロッキングツールについては、「The Periodic Table of Alteryx tools fa-share-square-o」を参照ください(英語です)。
まとめ
- 主にダウンロードツール等と組み合わせて、接続先に負荷をかけないように処理を行いたい場合に使います
- 基本的には複数の設定の異なるスロットルを入れても意味はありません
- ブロッキングツールで処理が区切られている場合はスロットルを複数設置する必要があります
サンプルワークフローダウンロード
ThrottleSample fa-download
※Alteryx Designer 2020.1.2.24185時点の情報です