dbt - dbt 关系测试编译错误:测试定义字典必须只有一个键
问题描述
我是dbt的新用户,正在尝试写一个关系测试:
- name: PROTOCOL_ID
tests:
- relationships:
to: ref('Animal_Protocols')
field: id
我收到此错误:
Compilation Error
Invalid test config given in models/Animal_Protocols/schema.yml:
test definition dictionary must have exactly one key, got [('relationships', None), ('to', "ref('Animal_Protocols')"), ('field', 'id')] instead (3 keys)
@: UnparsedNodeUpdate(original_file_path='model...ne)
同一个文件中的“唯一”和“非空”测试工作正常,但我有一个与“accepted_values”类似的错误。
我在 MacOS Big Sur 11.6 上使用带有 Snowflake 的 dbt cli 版本 0.21.0。
解决方案
你很亲近!我 96% 确定这是一个缩进问题——使用 YAML 的第一痛点。解决方案是两者to
和都field
需要在relationships
键下方缩进,而不是在同一级别。
有关示例,请参阅测试 dbt 文档页面
- name: PROTOCOL_ID
tests:
- relationships:
to: ref('Animal_Protocols')
field: id
推荐阅读
- django - Django多客户端部署解决方案
- database - 函数和光标帮助 ORACLE PL/SQL
- postgresql - 带有 ORDER BY 和 LIMIT 的 Postgres UNION
- database - 如何在 DolphinDB 中设置数据保留时间?
- python - 如何从 Json Url 中获取价值?
- kubernetes - 有时缺少desiredContainers
- java - 即使在系统关闭后,Oracle 活动和非活动会话仍然存在
- postgresql - 行或列的大小是否会影响 Postgresql 中的聚合查询?
- powershell - 为什么 powershell2 iex (Invoke-Expression) 打开一个新的控制台?
- syntax - 使用计算字段计算每个用户的事件频率