You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在dbt中选择两个模型共同关联的所有中间模型?

在dbt中筛选两个模型之间的关联模型(交集)

当然可以实现这个需求,dbt的选择器语法支持通过交集运算精准筛选同时关联模型A和B的中间模型,也就是A到B路径上的所有模型。

具体操作是利用dbt的选择器逻辑运算符intersect,结合上下游选择符:

  • A+ 代表模型A及其所有下游模型(包括A)
  • +B 代表模型B及其所有上游模型(包括B)
  • 两者通过intersect取交集,就能得到同时在A下游、B上游的模型,也就是你要的A和B之间的关联模型

举个实际命令例子(比如你要运行这些模型):

dbt run --select "A+ intersect +B"

如果不需要包含A或B本身,可以调整命令剔除两端模型:

dbt run --select "(A+ except A) intersect (+B except B)"

这个逻辑适用于dbt的所有核心命令(run、test、build等),也可以结合标签、目录路径等其他选择器进一步缩小范围,比如只筛选某个目录下的交集模型:

dbt run --select "models/staging/A+ intersect +models/marts/B"

内容的提问来源于stack exchange,提问作者Joseph Jeremiah Noonan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 14:52:08