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

dbt编写relationship测试报test definition dictionary单key错误如何解决?

问题原因

该报错由YAML缩进配置错误导致。dbt要求带参数的测试项,参数必须作为对应测试名的子属性进行缩进,你当前写法中to、field和relationships属于同级属性,YAML会将三者解析为三个独立的测试配置键,因此触发编译错误。

正确配置示例

调整缩进,将to和field放到relationships的下一级,保持缩进统一即可:

- name: PROTOCOL_ID
  tests:
    - relationships:
        to: ref('Animal_Protocols')
        field: id
同类测试写法说明

accepted_values等其他带参数的测试也遵循同样的缩进规则,示例如下:

- name: STATUS
  tests:
    - accepted_values:
        values: ['active', 'inactive', 'draft']
注意事项
  • YAML对缩进敏感,统一使用2个或4个空格作为缩进单位,不要混用Tab和空格,Mac环境下建议开启编辑器的「Tab自动转空格」配置,避免隐形缩进错误
  • 无参数的unique、not_null测试不需要额外缩进,因此你之前的这两类测试可以正常运行
  • 该语法完全适配dbt 0.21.0版本与Snowflake数据源,不需要调整运行环境配置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 15:24:03