TD Workflowとは?
簡単に言うとTDで実行するクエリをメタなレベルで処理するための機能。例えば、複数のクエリを任意の順序で実行したいときやクエリのループ処理をしたいとき等に使える。導入手順
- コンソールを起動(windowsだとコマンドプロンプト)
- 自分のTDアカウントにログインする
- TDをアップデートする(td update)
- TD Workflowをインストール(td workflow)
ループ処理の方法
1.クエリ操作するファイル(dig)とクエリを格納するフォルダを作成(必要に応じて)
td_testというフォルダ下に、クエリを保管するフォルダとdigファイルを作成している |
2.クエリを作成
sample.sqlSELECT
TD_TIME_FORMAT(time,
'yyyy-MM-dd',
'jst') AS time_date,
AVG(CLOSE) AS daily_avg_close
FROM
#TDにサンプルで入っているナスダックのデータ
sample_datasets.nasdaq
WHERE
#datetime_fromとdatetime_toはdigファイルで定義
TD_TIME_RANGE(time,
'${datetime_from}',
'${datetime_to}',
'JST')
GROUP BY
TD_TIME_FORMAT(time,
'yyyy-MM-dd',
'jst')
3.digファイルを作成
sample.dig_export:
basetime: "2011-03-01 00:00:00"
loopcount: 5
td:
database: workflow_temp
+loop:
loop>: ${loopcount}
_do:
+step:
_export:
datetime_from: ${moment(basetime, "YYYY-MM-DD HH:mm:ss").
add(i, "days").format("YYYY-MM-DD HH:mm:ss")}
datetime_to: ${moment(basetime, "YYYY-MM-DD HH:mm:ss").
add(1 + i, "days").format("YYYY-MM-DD HH:mm:ss")}
td>: queries/sample.sql
insert_into: roop_test
4.コンソールで実行(事前にdigファイルがあるディレクトリに移動しておく)
td wf run sampleで実行
実行中の画面 |
5.結果
しっかりデータが入っている
1ループ1日分の処理が5回されるため5日分のデータがテーブルに入る |
0 件のコメント :
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。