■ はじめに
https://dk521123.hatenablog.com/entry/2023/11/29/003751
の続き。 小ネタ。 DBTにおいて、各DWH(DB)により、処理を切り替える方法を記載する
目次
【1】adapter object 1)dispach メソッド 【2】サンプル 例1:Hello world
【1】adapter object
https://docs.getdbt.com/reference/dbt-jinja-functions/adapter
{{ adapter.<method name> }}
1)dispach メソッド
* macroの呼び出す際に、対象DWHごとに処理を切り替えたい場合に使用
https://docs.getdbt.com/reference/dbt-jinja-functions/dispatch
DWH | [DWH]__[マクロ名(my_macro)] |
---|---|
Postgres | postgres__my_macro |
Redshift | redshift__my_macro |
Snowflake | snowflake__my_macro |
BigQuery | bigquery__my_macro |
OtherAdapter | otheradapter__my_macro |
default | default__my_macro |
【2】サンプル
例1:Hello world
{% macro concat(fields) -%} {{ return(adapter.dispatch('concat')(fields)) }} -- ★呼び出し★ {%- endmacro %} -- <DWH>__<マクロ名>で定義 -- デフォルト {% macro default__concat(fields) -%} concat({{ fields|join(', ') }}) {%- endmacro %} -- RedShift用 {% macro redshift__concat(fields) %} {{ fields|join(' || ') }} {% endmacro %} -- Snowflake用 {% macro snowflake__concat(fields) %} {{ fields|join(' || ') }} {% endmacro %}
参考文献
https://zenn.dev/mashiike/articles/829ab9b4cafe8f
関連記事
dbt ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2023/06/30/000000
dbt ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2023/05/30/151003
dbt Macro ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2023/11/29/003751
dbt Macro ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2024/10/22/002940