Medallion架构:数据推送至Reject文件夹的校验规则及场景咨询
Medallion架构中Reject文件夹相关问题解答
1. 推送到Reject文件夹前的校验检查
- 结构校验:验证记录的字段数量、字段名称是否与预定义Schema完全匹配
- 数据类型校验:检查字段实际数据类型是否符合Schema定义的类型要求
- 非空约束校验:确认必填字段不存在空值,或无法通过补全逻辑修复的空值
- 格式校验:针对特定字段做格式验证,比如日期格式、邮箱格式、手机号格式等是否合规
- 业务规则校验:检查记录是否符合核心业务逻辑,比如金额不能为负、年龄在合理区间等
- 关联完整性校验:验证关联字段值是否存在于对应的参考数据中,如外键关联的表记录
- 数据完整性校验:确保记录本身未损坏,比如JSON/CSV格式是否合法、无字段错位等
2. 列类型不符的处理选择及Reject文件夹适用场景
类型不符的处理判断
- 若为可安全转换的差异,如字符串格式数字转整数、标准日期字符串转日期类型,优先在Bronze层处理时完成类型转换,保留有效数据。
- 若为不可转换或转换会丢失核心信息的情况,如字符串"abc"转整数、完全错乱的日期格式,则将记录推送到Reject文件夹,避免污染后续层级数据。
需推送至Reject文件夹的典型场景
- 结构完全不匹配:记录字段数量、名称与Schema严重不符,无法映射到目标结构
- 数据类型不可兼容:实际类型与预期类型差异过大,无法通过转换修正,如布尔字段出现非合规值
- 违反非空约束:必填字段为空且无合理补全方案
- 格式校验失败:特定字段格式完全不符合要求且无法修正
- 严重违反业务规则:记录数据完全违背核心业务逻辑,如出生年份大于当前年份
- 关联完整性缺失:关联字段值在参考数据中不存在,且无法补全
- 数据损坏:记录本身格式损坏,如JSON语法错误、CSV行分隔符混乱
内容的提问来源于stack exchange,提问作者Charubala
相关产品推荐
相关产品推荐

