🔥
【dbt Docs】Building a dbt Project - Models - Using custom databases
Using custom databases
Configuring custom databases
database
が指定されていれば、そのデータベースに、モデルを構築する。
もし、設定されていない場合、profiles.yml
の値を使う。
設定は、dbt_project.yml
かそれぞれの .yml
ファイルで指定できる。
Configuring database overrides in dbt_project.yml
dbt_project.yml
name: jaffle_shop
models:
my_project:
+database: jaffle_shop
# For BigQuery users:
# project: jaffle_shop
Configuring database overrides in a model file
{{ config(database="jaffle_shop") }}
select * from ...
generate_database_name
marco generate_database_name
で生成される。このファイルをプロジェクトに配置することで挙動を上書きすることができる。
generate_database_name
は2つの引数を取ることができ、
- モデル構成で提供されるカスタムデータベース
- カスタムデータベースが生成されているノード
get_custome_database.sql
{% macro generate_database_name(custom_database_name=none, node=none) -%}
{%- set default_database = target.database -%}
{%- if custom_database_name is none -%}
{{ default_database }}
{%- else -%}
{{ custom_database_name | trim }}
{%- endif -%}
{%- endmacro %}
Considerations
BigQuery
BigQueryの場合は、profiles.yml
のなかのproject_id
を用いる。
Discussion