介绍
# Data quality & reconciliation with exception reporting and no silent failure
## 目的 使用稳定标识符(工号、驾照、司机卡和司机资格卡号)对数据源进行对账,生成异常报告并进行“无静默失败”检查。
## 使用场景 - 触发条件: - 对这两个数据源进行对账,并生成包含原因的异常报告。 - 跨文件匹配姓名和工号,并标记任何未匹配的内容。 - 构建“无静默失败”检查,如果计数不匹配则停止流水线。 - 创建一份关于缺失记录、重复记录和日期缺口的周差异报告。 - 设计带有阈值和警示标志的数据质量记分卡。 - 何时不用…… - 您需要没有验收标准开放式模糊匹配时。 - 任何来源中都没有稳定标识符时。
## 输入 - 必需: - 至少两个包含工号和/或司机证件编号的数据集(CSV/XLSX)。 - 必须匹配哪些字段(例如姓名、有效期)。 - 可选: - 标准化规则(大小写、空格、标点符号)。 - 门禁/记分卡的阈值(最大缺失百分比等)。 - 示例: - 工资单导出 + 合规登记表 - 来自不同系统的两份周导出数据
## 输出 - 对账计划(匹配规则、标准化、连接策略)。 - 异常报告规范(CSV 列 + 原因代码)和差异检查。 - 可选工件:`assets/exceptions-report-template.csv` + `references/matching-rules.md`。 成功 = 每条记录都被归类(已匹配/缺失/重复/不匹配/无效)并附带明确原因;流水线在出现异常时停止。
## 工作流 1. 确认来源和关键优先级(工号 → 司机卡 → 驾照 → DQC)。 2. 标准化列: - 去除空格;统一大小写;去除证件编号的常见标点符号。 3. 验证键: - 标记空白/无效格式;识别每个来源的重复项。 4. 连接: - 对工号进行精确连接;然后仅对剩余未匹配项尝试次级连接。 5. 生成带有原因的异常类别: - 在 A/B 中缺失、重复键、字段不匹配、无效键。 6. “无静默失败”门禁: - 计数在容差范围内;未匹配率低于阈值;标记重复项激增。 7. 停止并询问用户,如果: - 列未映射, - 存在多个竞争 ID 且没有优先级, - 预期容差未指定。
## 输出格式 ```csv exception_type,reason,source_a_id,source_b_id,pay_number,name,field,source_a_value,source_b_value ```
原因代码:`MISSING_IN_A`、`MISSING_IN_B`、`MISMATCH`、`DUPLICATE_KEY`、`INVALID_KEY`。
## 安全与边缘情况 - 默认只读;不要自动编辑源数据。将异常发送以供审查。 - 优先使用确定性匹配规则;除非明确要求,否则避免模糊匹配。 - 始终生成异常报告;切勿丢弃未匹配的行。
## 示例 - 输入:“工资单与合规;按工号匹配;标记姓名不匹配。” 输出:连接计划 + 不匹配原因 + 异常报告架构。
- 输入:“某些行的工号为空。” 输出:次级键匹配 + 针对真正无法匹配的行的无效键异常。