G’day みなさん!
2度目の登場のケニーです!
4月なのになんでこんなに寒いんですか!!
砂漠の地から来た自分には厳しすぎます・・・
夏は夏で湿気で溶けそうになるんですけどね。
ずっとぽかぽか 春陽気であってほしいですねー
さて今回は、Inputツールと Dynamic Input ツールの使い分けについてお話ししようと思います!
日本語設定だと入力ツールと動的入力ツールですね。どうでもいいけど動的入力ってあんまりぴんと来ないのは自分だけなのでしょうか。
上の図がそれぞれのツールです。InputはIn/Outの下に、Dynamic InputはDeveloperの下に格納されてます。
通常の Inputは単一のファイル・データを取得する際に使用するもの、Dynamic Inputは「一定の条件にマッチする」複数のファイル・データを取得できるツールです。
Input は使用頻度も高いので、そんなに使い方に困ることはないと思うので、使い方については割愛します!
もう一方のDynamic Inputには二つのオプションがあります。
オプション1はデータソースを複数読み込むときに使えて、オプション2はデータベースのクエリ自体を書き換えられます。
実際にデータを使って動作を見てみましょう!
使用するデータは2015年度国勢調査から抜粋した以下のようなものです。
「target」列に性年代、「area」にエリア名、「pop」に人口データが格納されています。
このデータがさらにエリア別でシートに分かれています。
このファイル名をpopulation.xlsxと名付けています。
オプション 1
このデータをDynamic Inputのオプション1を使って複数シート読み込んでみましょう。
まずは通常のInputを下図のように設定、使用して、上記ファイルのシート名すべて読み込みます。
次に、Dynamic Inputを接続します。
赤丸で囲ってあるEditボタンを押すとウィンドウが出てきます。
そこから「型・テンプレート」となるシートを以下のように設定します。
ちなみにこれ、以前の記事でも説明がありましたが、ちょっとでもデータの型や列数・列名が違うとそのシートは読み込んでくれません。
特にエクセルだと実は列名に開業が入っていたり、以前データが入っていた列も読み込んでしまったりといろいろと問題が起きやすいので、その際は上のマクロをご使用ください!
さて、上記ステップでテンプレートを設定したら、今度はデータの読み込み方を設定します。オプション1の部分を以下のように設定します。
今回はシート名だけの設定なので、以下の様にしていますが、例えば複数フォルダにまたがっていて、「フォルダパス・ファイル名」自体を設定する場合はDirectoryツールでフォルダパスを読み込んで、ActionをChange Entire File Pathとすれば複数ファイルでも読み込めます。
ここまでのステップを実行すると、すべてのエリアのデータを読み込んだ、以下のようなアウトプットが吐き出されます!
オプション1はこれで成功です!
オプション2
オプション2は前述しましたが、実際にDBへのクエリを書き換えるために使います。
なので、先ほどのpopulationデータをmySQLに書き出してみました。
このデータをオプション2のクエリで読み込ませてみましょう。
まずはDynamic InputでDBを先ほどみたいに「テンプレート」として設定しますが、今回はそれに条件式を以下の様に追加します。
population テーブルから、「target」が【hh】なおかつ「area」が【KNT】のものだけ読み込むという至ってシンプルなクエリです。Dynamic Inputではこのクエリ自体をいちいち書き換えなくてもいいように設定してくれます。
今回抽出するデータは関東の世帯と関西の男性20-34歳の人口データです。
でもDB上のデータのままだとエリア名とターゲット名がわかりにくいので、日本語表記もアウトプットに追加したいと思います。
Dynamic Inputの手前にText Inputを追加して、以下のように設定します。
Text Inputの後は実際にDynamic Inputを以下のように設定します。
上と同じようなステップでエリアも設定してください!
次は、エリアとターゲットの日本語表記です。
今度はDynamic Inputの設定を以下のように追加してください。
ポップアップでは単純にパススルーさせたい列を選択すればよいので、今回は「area_jp」と「target_jp」を追加してください。
すべて設定が終わり、ワークフローを走らせてみると以下のような結果になります!
まとめ
如何でしょうか、何となくInputとDynamic Inputの使い分け方がわかったでしょうか?
え?Dynamic Inputの使い方を書いただけじゃないかって?
・・・
・・・・
・・・・・
確かにそうですね。
ざっくりまとめるとこんな感じです:
Input
「単一」のファイルおよびデータベースから「決まった」データを抽出するのに使用
例えば:単月の売り上げデータ
Dynamic Input オプション1
「複数」のファイルおよびデータベースから「決まった」データを抽出するのに使用
例えば:複数月の売り上げデータ
Dynamic Input オプション2
単一のデータベースから「可変的・動的」なデータを抽出するのに使用
例えば:複数月の異なる商品の売り上げデータ
特にDynamic Inputのオプション2は、Text InputやFormulaツールと繋げると毎月走らせているワークフローが自動化できたりするので便利です。
Interfaceツールと繋げてアプリ化しちゃえばだれでもDBからデータ抽出できるようにもなったります!
是非お試しあれ!!
ではでは!
Have a nice arvo everyone!!