注目の投稿

【kepler.gl】コロナ対策による人流の変化も地図上に可視化(各種メディアで報道)

kepler.glのサイト画面 kepler.glを使ってコロナ対策の効果を分析したところ、テレビ、新聞、ネットのメディアから問い合わせや報道依頼が殺到。今も、土日返上で都内や全国の人流変化を分析しています。この記事では人流変化の可視化に便利なkepler.glにつ...

2017年2月21日火曜日

【トレジャーデータ:Treasure Workflow】今注目のTreasure Workflowとは?その導入手順と活用例(SQL文ループ処理)の紹介

TD Workflowとは?

簡単に言うとTDで実行するクエリをメタなレベルで処理するための機能。例えば、複数のクエリを任意の順序で実行したいときやクエリのループ処理をしたいとき等に使える。

導入手順

  1. コンソールを起動(windowsだとコマンドプロンプト)
  2. 自分のTDアカウントにログインする
  3. TDをアップデートする(td update)
  4. TD Workflowをインストール(td workflow)

ループ処理の方法


1.クエリ操作するファイル(dig)とクエリを格納するフォルダを作成(必要に応じて)



td_testというフォルダ下に、クエリを保管するフォルダとdigファイルを作成している

2.クエリを作成

sample.sql
SELECT 
  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日分のデータがテーブルに入る



◇参考サイト(一部、TDのアカウントが無いと見れないかも)





0 件のコメント :

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。