【dbt】dbt Macro ~ 入門編 ~

■ はじめに

dbt の macro (マクロ) について、徐々に学んでいく

目次

【1】dbt Macro (マクロ) 
【2】サンプル
 例1:Hello world

【1】dbt Macro (マクロ)

* 再利用可能なコードを作成する機能

 => 元々は、テンプレートエンジン Jinja の機能
 => Jinja のマクロについては、以下の関連記事を参照

Jinja ~ マクロ ~
https://dk521123.hatenablog.com/entry/2023/11/28/235951

【2】サンプル

例1:Hello world

macros/say_hello.sql

{% macro say_hello(column_name) %}
    CONCAT('Hello, ' , {{ column_name }}, '!!!')
{% endmacro %}

models/hello_world.sql

select
  id,
  {{ say_hello('name') }} as result
from
  hello_world

target/compiled/models/hello_world.sql

select
  id,
  CONCAT('Hello, ' , name, '!!!') as result
from
  hello_world

参考文献

https://docs.getdbt.com/docs/build/jinja-macros#macros
https://zenn.dev/foursue/books/31456a86de5bb4/viewer/3da80d#%E3%83%9E%E3%82%AF%E3%83%AD-(macros)
https://dev.classmethod.jp/articles/dbt-jinja-macros-packages-tutorial/

関連記事

dbt ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2023/06/30/000000
dbt ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2023/05/30/151003
dbt ~ 基本編 / SEED ~
https://dk521123.hatenablog.com/entry/2023/11/20/230946
dbt ~ 基本編 / Model ~
https://dk521123.hatenablog.com/entry/2023/11/25/231128
dbt ~ DB/Schema/Table の指定方法 ~
https://dk521123.hatenablog.com/entry/2024/09/29/185918
dbt ~ 条件分岐 ~
https://dk521123.hatenablog.com/entry/2024/09/11/003301
dbt ~ SQL実行関数 / run_query ~
https://dk521123.hatenablog.com/entry/2025/04/28/000032
dbt Macro ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2024/10/22/002940
dbt Macro ~ DWHごとに処理切替 / adapter.dispach ~
https://dk521123.hatenablog.com/entry/2024/08/20/150724
Jinja ~ Macro ~
https://dk521123.hatenablog.com/entry/2023/11/28/235951