我们如何处理多个DBT项目

2024-05-29 04:55:27 发布

您现在位置:Python中文网/ 问答频道 /正文

如果提供了最佳实践,任何人都可以分享如何在dbt中组织多个项目。我目前的抽象体系结构层次如下

Analytics 
--.dbt/
-----profiles.yml
--projects/
-----project_1/
----------models/
----------dbt_project.yml
-----project_2/
----------models/
----------dbt_project.yml
--tests/
-----projects/
----------project_1/
----------project_2/

要为项目1或项目2创建模型,效果非常好

但是,当我尝试为project_2运行测试(模型单元测试)时,问题就出现了。当我运行时,它给出了错误 '在temp/project_1/…中的预期路径中未找到dbt_project.yml'(我尝试运行的单元测试是针对项目2的) 但是,路径是绝对正确的,但是dbt_project.yml的查找在错误的目录中(在临时目录中)。另一方面,一些project_2模型确实依赖于少数project_1模型

任何人都可以分享或参考我在哪里可以得到帮助来解决这种多dbt项目问题


Tags: 项目模型路径目录projectmodels体系结构yml
2条回答

您能否详细介绍一下运行dbt test时正在运行的特定命令,以及运行该命令时在该文件结构中的位置,以及完整的错误消息?我不确定我是否完全理解这个问题,但是您可能想研究一下 profiles-dir选项here

就像很多事情一样,你在这里要问的是两个子问题:

  1. 可能吗
  2. 这是个好主意吗

可能吗?

虽然您没有提到您正在运行的数据平台/方言,但是的,这是可能的。这里的例子和建议:

这是个好主意吗

我认为Jeremy在这篇回复中很好地阐述了支持和反对的主要论点:

但是,如果你已经决定要这样做,并且不想要monorepo,并且你对实现这一点的“最佳”方式最感兴趣,我推荐Stefano的这篇文章:

是的,这是可能的。最好建议的方法是管理generate_schema_name/generate_database_name宏,或者在主项目导入的包中定义低级模型

相关问题 更多 >

    热门问题