Treasure Workflow(Digdag)で SQL クエリに変数を使う


Treasure Workflow で SQL に変数を使いたい場合のメモです。

手元の環境は以下になります。

  • Ubuntu 18.04 LTS
  • td-agent 1.3.3

まず、以下のように .dig ファイルで変数を設定します。

timezone: Asia/Tokyo

_export:
  # 先月の月初から月末まで
  start_date: ${moment(session_time).subtract(1, 'months').startOf('month').format("YYYY-MM-DD 00:00:00")}
  end_date: ${moment(session_time).subtract(1, 'months').endOf('month').format("YYYY-MM-DD 23:59:59")}

クエリを実行する処理を .dig ファイルに追記します。

+task1:
  td>: queries/sample.sql
  create_table: sample_table

SQL ファイルの中で変数を呼び出します。

SELECT
  user_name,
  text
FROM
  review
WHERE
  create_datetime >= '${start_date}' AND
  create_datetime <= '${end_date}'