为正值编写 dbt 测试

Dav*_*sip 12 dbt

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

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

我知道您可以编写查询,./tests但对于如此简单的事情来说,这看起来有点过分了。

小智 19

你可以使用dbt_utils.expression_is_true

version: 2

models:
  - name: model_name
    tests:
      - dbt_utils.expression_is_true:
          expression: "col_a > 0"
Run Code Online (Sandbox Code Playgroud)

  • 可靠的答案。稍微补充一下:如果您要将这样的测试添加到模型中的特定列,那么您就不会包含列名称。所以这里的测试只是`表达式:"> 0"` (7认同)

小智 10

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

version: 2

models:
  - name: model_name
    columns:
      - name: user_id
        tests:
          - dbt_utils.accepted_range:
              min_value: 0
              inclusive: false
Run Code Online (Sandbox Code Playgroud)