使用 dbt 配置原始数据库和分析数据库
Configuring raw and analytics databases with dbt
我一直在阅读 dbt 的 How we configure Snowflake 指南,其中解释了拥有 raw
数据库和 analytics
数据库的基本原理。原始数据被加载到您的仓库中 raw
(例如通过使用 Fivetran),dbt 使用 analytics
来保存转换后的 data/views 数据 analysts/scientists.
但是,我似乎找不到任何关于如何实际设置它的指南。 profiles.yml 文件需要指向原始数据所在的位置,以便 dbt 可以开始转换。但是,此文件似乎还指定了保存转换后的 data/views 的数据库和模式。
在 dbt 的许多 .yml 文件中,我应该全局指定在哪里保存转换后的数据?
设置你的 profiles.yml
,它不存在于实际项目中,而是存在于你机器上的 ~/.dbt
文件夹中,这样它就指向你的目标 database/schema。对于开发,这看起来就像您在下面看到的那样。 For production on dbt Cloud。现在,您只需像往常一样设置您的来源(见下面的第三块)。没有通用源选项,只有一个目标 database/schema.
Profiles.yml Docs and Snowflake Profile Docs
-- profiles.yml
my_profile:
target: dev
outputs:
dev:
type: snowflake
account: <snowflake_server>
user: my_user
password: my_password
role: my_role
database: analytics
warehouse: dev_wh
schema: dbt_<myname>
threads: 1
client_session_keep_alive: False
-- dbt_project.yml
name: 'my_dbt_models'
version: '1.0.0'
config-version: 2
profile: 'my_profile'
...
...
...
-- src.yml
version: 2
sources:
- name: jaffle_shop
database: raw
tables:
- name: orders
模型中:
raw.jaffle_shop.orders
变为 {{ source( 'jaffle_shop' , 'orders' ) }}
请注意,dbt 处理此源,默认情况下假定名称是架构,但是,我发现您真的可以随意命名它,如果您想给它一个架构,则可以添加一个架构特殊名称。
例如……
sources:
- name: my_special_name
database: raw
schema: jaffle_shop
tables:
- name: orders
模型中:
raw.jaffle_shop.orders
变为 {{ source( 'my_special_name' , 'orders' ) }}
我希望所有这些都有意义。
我一直在阅读 dbt 的 How we configure Snowflake 指南,其中解释了拥有 raw
数据库和 analytics
数据库的基本原理。原始数据被加载到您的仓库中 raw
(例如通过使用 Fivetran),dbt 使用 analytics
来保存转换后的 data/views 数据 analysts/scientists.
但是,我似乎找不到任何关于如何实际设置它的指南。 profiles.yml 文件需要指向原始数据所在的位置,以便 dbt 可以开始转换。但是,此文件似乎还指定了保存转换后的 data/views 的数据库和模式。
在 dbt 的许多 .yml 文件中,我应该全局指定在哪里保存转换后的数据?
设置你的 profiles.yml
,它不存在于实际项目中,而是存在于你机器上的 ~/.dbt
文件夹中,这样它就指向你的目标 database/schema。对于开发,这看起来就像您在下面看到的那样。 For production on dbt Cloud。现在,您只需像往常一样设置您的来源(见下面的第三块)。没有通用源选项,只有一个目标 database/schema.
Profiles.yml Docs and Snowflake Profile Docs
-- profiles.yml
my_profile:
target: dev
outputs:
dev:
type: snowflake
account: <snowflake_server>
user: my_user
password: my_password
role: my_role
database: analytics
warehouse: dev_wh
schema: dbt_<myname>
threads: 1
client_session_keep_alive: False
-- dbt_project.yml
name: 'my_dbt_models'
version: '1.0.0'
config-version: 2
profile: 'my_profile'
...
...
...
-- src.yml
version: 2
sources:
- name: jaffle_shop
database: raw
tables:
- name: orders
模型中:
raw.jaffle_shop.orders
变为 {{ source( 'jaffle_shop' , 'orders' ) }}
请注意,dbt 处理此源,默认情况下假定名称是架构,但是,我发现您真的可以随意命名它,如果您想给它一个架构,则可以添加一个架构特殊名称。 例如……
sources:
- name: my_special_name
database: raw
schema: jaffle_shop
tables:
- name: orders
模型中:
raw.jaffle_shop.orders
变为 {{ source( 'my_special_name' , 'orders' ) }}
我希望所有这些都有意义。