gpt4 book ai didi

dbt - 选择器未找到 `dbt test` 的节点

转载 作者:行者123 更新时间:2023-12-05 02:04:44 31 4
gpt4 key购买 nike

我正在尝试定义一个 dbt YAML selector这样我就可以为一组特定的模型运行模式测试。

YAML 选择器看起来有点像这样:

selectors:
- name: test_selector
definition:
union:
- intersection:
- node+
- tag:tag1
- intersection:
- node+
- tag:tag2
- intersection:
- node+
- +tag:tag3
- intersection:
- node+
- +tag:tag4
- exclude:
- config.materialized:view
- config.materialized:materialized_view

此选择器描述了从单个节点上游和节点联合下游的节点选择,不包括 View 和物化 View (在我们的 dbt 项目中自定义)。

使用此语法,我可以使用 dbt ls --selector test_selector --output name 成功列出此语法指定的节点,并使用 dbt run --selector 成功运行指定的模型test_selector,但同样的行为似乎不适用于 dbt test

当我尝试 dbt test --selector test_selector 时,我收到了输出

WARNING: Nothing to do. Try checking your model configs and model specification args

我希望与 dbt test 类似,此命令将运行与 test_selector 选择中指定的模型关联的所有测试,但这似乎不是是这样的。

似乎在syntax overview 中为dbt 测试 指定了--selector 标志。 , 和 Test Selection examples文档的一部分提到“您可以使用选择器方法来检查正在测试的资源的配置属性”。没有任何在测试中使用 --selector 标志的示例,所以我不确定我是否遗漏了什么。应该支持这种类型的语法还是我误解了文档?谢谢!

最佳答案

很高兴您使用 YAML 选择器!

组合使用测试和 config.materialized:view 选择器时存在一个已知错误:https://github.com/fishtown-analytics/dbt/issues/2806 .它 100% 限于“ View ”物化。鉴于您的选择器定义排除了所有 config.materialized:view,当前的行为是错误地排除了所有 测试。你没有做错任何事;我们正在努力为下一版本的 dbt 解决该问题。

与此同时,如果您可以指定不同的逻辑——例如与其排除所有 View 实体化模型,不如排除 staging 目录中的所有模型——我建议您试一试。

关于dbt - 选择器未找到 `dbt test` 的节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64179320/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com