データマネジメントの学校
← コースに戻る

未ログインのため、この講座の進捗は記録されません。ログインすると記録が残るようになります。

dbt_project.ymlでのconfig継承

dbtでは、モデルごとに個別のconfigブロックを書かなくても、dbt_project.ymlの中でディレクトリ単位の設定を一括で指定できる。ディレクトリ構造に沿って設定を「継承」させる仕組みで、より深い階層の設定がより浅い階層の設定を上書きする。

# dbt_project.yml
models:
  jaffle_shop:
    staging:
      +materialized: view
    marts:
      +materialized: table
      finance:
        +materialized: incremental

この例では、staging/配下のモデルはデフォルトでview、marts/配下は基本table、その中でもmarts/finance/配下だけはincrementalになる。設定名の先頭に+を付けるのがdbt_project.yml内でのconfig指定の書き方。

モデルファイル個別の{{ config(...) }}はさらに優先され、dbt_project.ymlの設定を上書きできる。ディレクトリ単位で一括設定し、例外だけをモデル個別に上書きするのが、大規模プロジェクトでの基本的な運用パターン。