62
設計のポイント③ - 子dig
summary.dig
timezone: "Asia/Tokyo"
schedule:
daily>: 00:00:00
# 共通で使う環境変数を読み込む
!include : 'config/config.dig'
# 共通集計(アクセスログの集計)
+create_access:
call>: 'common_summary/access/create_access.dig'
# タイトル個別の集計(バトルログの集計)
+create_battle:
call>: 'unique_summary/battle/create_battle.dig'
create_access.dig
+create_access:
loop>: ${ moment(END_DATE).diff(moment(START_DATE), 'days') + 1 }
_do:
_export:
DATE: ${ moment(START_DATE).add(i,'days').format("YYYY-MM-DD")}
SUFFIX_DATE:${moment(START_DATE).add(i,'days').format("YYYYMMDD") }
bq>: create_access.sql
destination_table: access$${SUFFIX_DATE}
dataset: summary
write_disposition: WRITE_TRUNCATE
・再集計に耐えうるよう日付でループ処理する設計
→冪等性の担保
・部の様々なメンバーが設置することも考慮し、
データセット名
テーブル名
クエリのファイル名
を入れ替えれば、基本的にどんな集計も実現できる設計にした