【发布时间】:2022-12-03 04:57:21
【问题描述】:
我正在构建一个应用程序,我们的每个客户都需要自己的数据仓库(出于安全性、合规性和可维护性原因)。对于每个客户,我们从多个第三方集成中提取数据,然后将它们合并到一个统一的视图中,我们使用该视图对这些集成中的数据执行分析和报告指标。这些转换和所有相关模式对于所有客户端都是相同的。我们需要它来扩展到 1000 个客户。
据我所知,dbt 的设计使每个项目对应一个仓库。我看到两个选项:
- 使用一个项目并为每个客户端创建一个单独的环境目标(可能还有一个开发环境)。鉴于环境不是为此而设计的,这有什么问题吗?由于某种原因,安排、编排或查询输出会很痛苦或无法扩展吗?
配置文件.yml:
example_project: target: dev outputs: dev: type: redshift ... client_1: type: redshift ... client_2: type: redshift ... ...- 创建多个项目,并创建一个包含大部分逻辑的共享 dbt 包。这似乎非常笨重,需要为每个客户维护一个单独的回购协议,而且对开发人员的友好性较低。
配置文件.yml:
client_1_project: target: dev outputs: client_1: type: redshift ... client_2_project: target: dev outputs: client_2: type: redshift ...想法?
【问题讨论】:
标签: amazon-redshift data-warehouse dbt