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

如何用Jinja从dbt的sources.yml中提取<database>.<schema>格式内容?

用Jinja从dbt的sources.yml提取.格式内容

针对你给出的sources.yml配置,有两种简单的Jinja实现方式来提取my_project.my_schema这种格式的字符串:

方法1:针对特定source提取

如果你明确要提取某个source(比如示例里的my_source)的数据库+schema,直接用dbt内置的source()宏获取对应属性后拼接即可:

{% set target_source = source('my_source', 'items') %}
{{ target_source.database }}.{{ target_source.schema }}

执行后会直接输出my_project.my_schema。这里source()的第二个参数填该source下任意一张表名就行(示例里是items),因为同一个source下的表共享database和schema配置。

方法2:遍历所有sources提取

如果需要批量处理所有已配置的sources,用dbt上下文里的graph.sources变量遍历即可:

{% for source in graph.sources.values() %}
{{ source.database }}.{{ source.schema }}
{% endfor %}

这段代码会逐个输出每个source对应的<database>.<schema>字符串,对于你的示例配置,同样会输出my_project.my_schema。

说明

dbt会自动把sources.yml里的配置加载到Jinja上下文的graph对象中,直接调用内置变量或宏比手动解析yml文件更可靠,也能适配dbt的环境变量、配置覆盖等场景。

内容的提问来源于stack exchange,提问作者justcode

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 18:44:54