在dbt中声明多个仓库
Declaring multiple warehouses in dbt
我是 dbt 的新手,我想在一个项目中使用两种仓库,目前我声明了我的 clickhouse 仓库,我将为其制作表格,我需要添加另一个仓库 mindsDB,因为我想参考其中的一些表格
目前我的 prfofile.yml 看起来像这样
dbt-project:
target: dev
outputs:
dev:
type: clickhouse
schema : clickhouse_l
host: 8.77.780.70
port: 6000
user: xxx
password: xxxx
我也想添加下面的仓库
type: mysql
host: mysql.mindsdb.com
user: mindsdb.user@example.com
password: xxx
port: 3306
dbname: mindsdb
schema: exampl_xxx
threads: 1
有办法吗?谢谢
这有点超出了 dbt 的设计目的。有什么理由不能将多个项目用于自己的部署?大概这些模型相互依赖?
如果我必须这样做,我会:
- 创建两个目标(或目标集),每个仓库一个(或每个仓库 dev/prod,等等)
- 创建一个 custom materialization 包装典型的 table 实体化,但是 no-ops 如果
target.type
不匹配指定的适配器
- 运行 系列中每个适配器上的项目,在 shell 脚本中
- 将标签用于 select DAG 中 up/downstream 来自其他适配器模型的部分
我认为问题的核心是 dbt run
需要一个数据库连接来编译你的项目,所以你真的不能 run
同时针对两个数据库。我上面描述的并不比拥有两个独立项目好多少。您可能需要考虑使用协调器,例如 Airflow、Dagster 或 Prefect。
我是 dbt 的新手,我想在一个项目中使用两种仓库,目前我声明了我的 clickhouse 仓库,我将为其制作表格,我需要添加另一个仓库 mindsDB,因为我想参考其中的一些表格
目前我的 prfofile.yml 看起来像这样
dbt-project:
target: dev
outputs:
dev:
type: clickhouse
schema : clickhouse_l
host: 8.77.780.70
port: 6000
user: xxx
password: xxxx
我也想添加下面的仓库
type: mysql
host: mysql.mindsdb.com
user: mindsdb.user@example.com
password: xxx
port: 3306
dbname: mindsdb
schema: exampl_xxx
threads: 1
有办法吗?谢谢
这有点超出了 dbt 的设计目的。有什么理由不能将多个项目用于自己的部署?大概这些模型相互依赖?
如果我必须这样做,我会:
- 创建两个目标(或目标集),每个仓库一个(或每个仓库 dev/prod,等等)
- 创建一个 custom materialization 包装典型的 table 实体化,但是 no-ops 如果
target.type
不匹配指定的适配器 - 运行 系列中每个适配器上的项目,在 shell 脚本中
- 将标签用于 select DAG 中 up/downstream 来自其他适配器模型的部分
我认为问题的核心是 dbt run
需要一个数据库连接来编译你的项目,所以你真的不能 run
同时针对两个数据库。我上面描述的并不比拥有两个独立项目好多少。您可能需要考虑使用协调器,例如 Airflow、Dagster 或 Prefect。