【dbt】dbt ~ config ~

◾️はじめに

今回は、dbt の config について扱う

目次

【1】config
 1)profiles.yml との住み分け
【2】configの設定方法
 1)config() での設定
 2)models/properties.yml での設定
 3)dbt_project.yml での設定
【3】configの設定内容
 1)Snowflake
 2)Postgres
【4】サンプル
 例1:config.enabled + target.type でDBごとで切り替える

【1】config

* dbt の各種Configurationを設定できる

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

1)profiles.yml との住み分け

* 個人的なイメージは以下の通り。

profiles.yml (profile)

* (dev/prodなどの各環境ごとではあるが)全体の基本設定

config

* project / model ごとの個別設定

【2】configの設定方法

https://docs.getdbt.com/reference/model-configs#configuring-models

にある通り、以下の3通り。

1)config() での設定
2)models/properties.yml での設定
3)dbt_project.yml での設定

1)config() での設定

* model (***.sql) 内の {{ config() }} で設定する

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

{{
  config(
    enabled=true,
    tags=["demo_tag1", "demo_tag2"],
    database="demo_db",
    schema="demo_schema",
    alias="demo_table"
  )
}}

select * from ...

2)models/properties.yml での設定

* models/properties.yml で設定する

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

version: 2

models:
  - name: demo_project
    config:
      enabled: true
      tags: ["demo_tag1", "demo_tag2"]
      database: "demo_db"
      schema: "demo_schema"
      alias: "demo_table"

3)dbt_project.yml での設定

* dbt_profiles.ymlファイルはプロジェクトの設定を記述するファイル

https://docs.getdbt.com/reference/dbt_project.yml

name: 'demo_dbt_project' # プロジェクト名
config-version: 2
version: '1.0.0'

profile: 'demo_dbt' # プロファイル名を指定

models:
  demo_project:
    +enabled: true
    +tags: ["demo_tag1", "demo_tag2"]
    +database: "demo_db"
    +schema: "demo_schema"
    +alias: "demo_table"

【3】configの設定内容

1)Snowflake

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

2)Postgres

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

【4】サンプル

例1:config.enabled + target.type でDBごとで切り替える

dbt seed 実行後、エラー「Cross-db references not allowed in postgres」が発生
https://dk521123.hatenablog.com/entry/2025/05/23/215144

-- models/snowflake_only_model.sql
{{
  config(
    database="another_db",
    enabled=(target.type == 'snowflake')
  )
}}
select ...

参考文献

https://numb86-tech.hatenablog.com/entry/2024/08/16/175300

関連記事

dbt ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2023/06/30/000000
dbt ~ 環境設定編 ~
https://dk521123.hatenablog.com/entry/2023/12/16/152147
dbt ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2023/05/30/151003
dbt ~ DB/Schema/Table の指定方法 ~
https://dk521123.hatenablog.com/entry/2024/09/29/185918
dbt ~ 変数 var / env_var ~
https://dk521123.hatenablog.com/entry/2025/05/03/140109
dbt ~ target ~
https://dk521123.hatenablog.com/entry/2025/05/10/232636
dbt CLI ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2024/07/21/234811
dbt seed 実行後、エラー「Cross-db references not allowed in postgres」が発生
https://dk521123.hatenablog.com/entry/2025/05/23/215144