Slide 16
Slide 16 text
© 2024 Treasure Data, Inc. Confidential
dbtのJinjaテンプレート/macroを利用してSQLを簡略化
16
{% for metrics in [
'metric_a',
'metric_b',
'metric_c',
'metric_d',
] %}
SELECT
time,
'{{metrics}}' AS metric,
...
FROM
...
{% if not loop.last %} UNION ALL {% endif %}
{% endfor %}
Jinjaテンプレートを使った書き換え例
{{
auto_config(refresh_time_range=in_prev_nday(n=var('backfill_d
ays', var('default_backfill_days')))) }}
SELECT
…
FROM
...
WHERE
{{ in_prev_nday(
n=var(
'backfill_days',
var('default_backfill_days'
)
)) }}
# TD_TIME_RANGE('time', ‘...’, ‘...’) へ置き換えられる
自前macroを使った書き換え例