为正值编写 dbt 测试

问题描述 投票:0回答:3

是否有一种简单的方法可以为 dbt 中呈阳性的列编写测试?

accepted_values
似乎不适用于连续变量。

我知道你可以在

./tests
中编写查询,但对于这么简单的事情来说,这看起来有点过分了。

dbt
3个回答
19
投票

你可以使用

dbt_utils.expression_is_true

version: 2

models:
  - name: model_name
    tests:
      - dbt_utils.expression_is_true:
          expression: "col_a > 0"

9
投票

之前的答案是正确的。另一个选项是 accepted_range:

version: 2

models:
  - name: model_name
    columns:
      - name: user_id
        tests:
          - dbt_utils.accepted_range:
              min_value: 0
              inclusive: false

3
投票

我认为 dbt_utils 建议很好,我能想到的唯一合理的替代方案是编写自定义模式测试:

https://docs.getdbt.com/docs/guides/writing-custom-schema-tests/

但是当你可以只使用 expression_is_true 时为什么还要麻烦呢 @杰克

© www.soinside.com 2019 - 2024. All rights reserved.