【dbt】dbt ~ Macro ~

■ はじめに

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

【1】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 hoge

参考文献

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
Jinja ~ Macro ~
https://dk521123.hatenablog.com/entry/2023/11/28/235951