【dbt】dbt ~ Model あれこれ ~

■ はじめに

https://dk521123.hatenablog.com/entry/2023/11/25/231128

の続き。

今回は、DBTのModel について、徐々にTipsを書き溜めておく

目次

【1】config
 1)alias
 2)schema
 3)database
 サンプル
【2】変数
 1)変数設定
 2)変数の参照
 3)サンプル

【1】config

https://docs.getdbt.com/reference/model-configs

{{
config(
    enabled=true | false,
    tags="<string>" | ["<string>"],
    pre_hook="<sql-statement>" | ["<sql-statement>"],
    post_hook="<sql-statement>" | ["<sql-statement>"],
    database="<string>",
    schema="<string>",
    alias="<string>",
    persist_docs={<dict>},
    meta={<dict>},
    grants={<dict>},
    contract={<dictionary>}
)
}}

1)alias

https://docs.getdbt.com/reference/resource-configs/alias

-- DB 上には hello_world というテーブル名でテーブルが作成
{{ config(alias='hello_world') }}

2)schema

https://docs.getdbt.com/reference/resource-configs/schema

-- demo_schema というスキーマ名を指定
{{ config(schema='demo_schema') }}

--- <target_schema>_<custom_schema> => public_demo_schema 

3)database

https://docs.getdbt.com/reference/resource-configs/database

-- sample_db というDB名を指定
{{ config((database='sample_db') }}

サンプル

/models/hello.sql

{{
  config(
    alias='hello_world',
    schema='demo_schema',
    database='sample_db',
    materialized='table'
  )
}}

select 1 as id, 'Mike' as name, now() as insert_at

実行

# dbt run でモデルを作成
>dbt run

【2】変数

1)変数設定

[1] dbt run --vars "{ 変数: 値 }" で設定

# dbt run -h より
--vars YAML
Supply variables to the project.
This argument overrides variables defined in your dbt_project.yml file.
This argument should be a YAML string,
eg. '{my_variable: my_value}'

2)変数の参照

-- var で参照(変数を使う)
'{{ var("remark", "hello_world") }}' as remark,

3)サンプル

/models/hello.sql

{{
  config(
    alias='hello',
    schema='demo_schema',
    database='sample_db',
    materialized='table'
  )
}}

select
  1 as id,
  'Mike' as name,
  '{{ var("remark", "hello_world") }}' as remark,
  now() as insert_at

実行

>dbt run --vars "{remark: Hello!!!}"

参考文献

https://zenn.dev/foursue/books/31456a86de5bb4/viewer/4201af

関連記事

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