目标
坏记录进入数仓,因为导入文件在加载前没有任何校验。本配方用期望框架对必需列断言非空、对数值列断言范围,每个断言产生按列的通过/失败结果,并让加载脚本仅在期望通过时执行,从而在入口阻断脏数据;提醒期望应聚焦关键检查。
步骤要点
- 对必需列定义非空期望。
- 对数值列定义范围期望。
- 让加载仅在期望通过时执行。
- 从关键检查起步,数据稳定后再增加。
import great_expectations as gx
ctx = gx.get_context()
validator = ctx.sources.pandas_default.read_json('events.jsonl')
validator.expect_column_values_to_not_be_null('user_id')
validator.expect_column_values_to_be_between('amount', min_value=0)
排错提示
- 期望过严会频繁误报。
- 大文件校验慢,可抽样或下推到加载层。
- 不替代数仓的 schema 强制。
适用边界
- 只检查已定义的列。
- 会增加流水线一个阶段。