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

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

profiles.ymlとtarget(環境切り替え)

dbtはprofiles.yml(通常~/.dbt/profiles.ymlに置く)で、ウェアハウスへの接続情報を管理する。1つのプロファイルの中に、dev(開発)・prod(本番)のような複数のtarget(ターゲット)を定義でき、実行時にどのtargetを使うか切り替えられる。

dbt run                 # デフォルトのtarget(通常dev)で実行
dbt run --target prod   # prodターゲットで実行

Jinjaの中ではtarget変数で現在のターゲット情報を参照でき、環境によってモデルの挙動を変えることができる。

{{ config(
    materialized = 'table' if target.name == 'prod' else 'view'
) }}

select * from {{ source('raw', 'orders') }}

接続情報をコードに直接書かず、profiles.ymlを認証情報と分離してプロジェクトの外に置くことで、パスワードなどの機密情報がバージョン管理に含まれないようにするのが基本的な運用。