咨询Airflow中BigQueryColumnCheckOperator允许的column_mappings映射类型
BigQueryColumnCheckOperator 的 column_mappings 参数详解
column_mappings 是一个嵌套字典,核心结构是列名 -> 检查规则集合,下面详细拆解它支持的所有映射类型:
顶层结构
顶层键是你要检查的表中列的名称,对应的值是该列需要执行的所有检查规则的集合(也是一个字典)。
支持的检查类型及配置
每个列的规则集合里,可以同时配置多种内置检查,每种检查的配置方式如下:
1. null_check(检查NULL值数量/占比)
用于校验列中NULL值的数量或占总记录数的比例,支持以下配置参数:
equal_to/less_than/greater_than/less_than_or_equal_to/greater_than_or_equal_to:针对NULL值的绝对数量设置阈值ratio_equal_to/ratio_less_than等带ratio_前缀的参数:针对NULL值占总记录数的比例(0~1之间的浮点数)设置阈值
示例:
{"value": {"null_check": {"ratio_less_than": 0.01}}} # NULL值占比不超过1%
2. distinct_check(检查唯一值数量)
校验列中唯一值的数量或占比,支持的配置参数和null_check完全一致,既可以检查绝对数量,也可以检查占比。
示例:
{"user_id": {"distinct_check": {"equal_to": 1000}}} # 唯一用户ID数量恰好是1000
3. unique_check(检查列值是否完全唯一)
校验列中所有值是否都是唯一的(即唯一值数量等于总记录数),只需配置equal_to: True即可。
示例:
{"user_id": {"unique_check": {"equal_to": True}}} # user_id列不能有重复值
4. min_check/max_check(检查最小/最大值)
校验列的最小或最大值,支持所有数值比较参数(equal_to/greater_than等)。
示例:
{"age": { "min_check": {"greater_than_or_equal_to": 18}, "max_check": {"less_than_or_equal_to": 65} }}
5. sum_check(检查列总和)
校验列的数值总和,支持数值比较参数。
示例:
{"sales": {"sum_check": {"greater_than": 10000}}} # 销售额总和超过10000
6. avg_check(检查列平均值)
校验列的平均值,除了常规数值比较参数,还支持between参数(接受一个包含两个数值的列表,指定平均值的合法区间)。
示例:
{"score": {"avg_check": {"between": [60, 90]}}} # 平均分在60到90之间
多规则组合示例
单个列可以同时配置多个检查规则,算子会依次执行所有校验:
column_mapping={ "order_amount": { "null_check": {"equal_to": 0}, "min_check": {"greater_than": 0}, "sum_check": {"greater_than_or_equal_to": 1000} } }
内容的提问来源于stack exchange,提问作者Tomás Jullier
相关产品推荐
相关产品推荐

