◾️はじめに
今回は、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