🔥

【dbt Docs】Building a dbt Project - Models - Using custom databases

2022/03/11に公開

Using custom databases

https://docs.getdbt.com/docs/building-a-dbt-project/building-models/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つの引数を取ることができ、

  1. モデル構成で提供されるカスタムデータベース
  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