D04 · 数据治理 · 单题页
数据治理
多源异构数据集成与质量管控——用 PostgreSQL 统一数据平台 + Go 侧自建治理组件落地
本项目不引商业数据中台,全部落在 PostgreSQL 18 元数据表 + Go 校验任务上。
真题原文(逐字引)
本题对应两份真题的试题三,主题分别是"多源数据集成"与"多源异构数据集成", 都属于数据治理的核心场景。
频次与权重
| 维度 | 数据 |
|---|---|
| 数据类主题频次 | 9 年 7 次(2023 起连续 4 年) |
| 本题真题出处 | 2023 试题三 · 2024下 试题三 |
| 考题方向 | 多源数据集成(2023)、多源异构数据集成(2024下) |
| plan.md 权重 | 2026H2 观察方向——最高 |
TL;DR
脏数据是怎么被治理干净的
多源数据集成最反直觉的一点是:数据源各自都没错,合起来就是错的。 会员系统记"张三",报名系统记"张三(先生)",存证系统记"张 三"——三条记录指向同一个人, 但主键不同、格式不同、填报口径不同。不做治理,仓里就是三倍的噪声。
下面这个模拟器用固定规则跑:把 1000 条来自多源的数据送进治理流水线, 每一类缺陷有不同的可修复率(格式标准化 85%、主数据对齐 80%、去重幂等 95%)。 拖动"脏数据率"、开关各类治理能力,看入仓数据的可用率怎么变。
数据治理流水线
输入:1000 条多源数据。缺陷均分为三类——格式/标准不一致、主数据引用缺失、重复记录。
这个模拟器是怎么算的代码
模型只有四行,每一行都对应一个真实治理动作:
// ① 缺陷总量 = 1000 × 脏数据率,三类缺陷各占三分之一
缺陷 = 1000 × 脏数据率 ÷ 3
// ② 每开一个治理能力,就修好对应一类缺陷的一部分
修复量 = Σ (该类缺陷 × 该能力的修复率) // 85% / 80% / 95%
// ③ 剩下的缺陷:有质量校验则隔离,没有就直接进仓变成污染
隔离 = 质量校验开 ? 剩余缺陷 : 0
污染 = 质量校验开 ? 0 : 剩余缺陷
// ④ 一致可用率 = (总记录 − 缺陷 + 修复量) ÷ 总记录
关键区别在"隔离"和"污染"。修复能力决定能救回多少; 质量校验决定救不回的那些会不会污染仓库。 所以只开校验、不开修复,可用率不升,但污染记录归零——数据变"可信"了。
注意:这是教学模拟,修复率是按治理经验取的演示值,不是实测。 本页论文里出现的数字口径见第 ⑨ 段。
三份数据,三个说法
治理缺位时,最典型的后果不是"数据丢了",而是"数据还在,但没人敢用":
| 不治理 | 后果 | 治理动作 |
|---|---|---|
| 编码不统一 | 同一会员三个 ID,跨模块统计对不上 | 数据标准 + 主数据 |
| 来源不可追溯 | 被问"这个数从哪来"答不出 | 元数据 + 数据血缘 |
| 脏数据直接入仓 | 错误被下游反复放大 | 质量规则 + 隔离区 |
| 各源时点不一致 | 报表数字每天都不一样 | CDC + 每日对账 |
对应 fazi 哪个模块
fazi 协会平台五大模块就是五个数据源,它们本可以各自为政,我选择让它们共用一套治理底座:
| 模块 | 数据特征 | 治理落点 |
|---|---|---|
| 法律智能咨询 | 问答对、向量、文档 | 知识库数据标准 + 入库质量校验 |
| 电子存证 | 哈希、时间戳、不可改 | 数据血缘 + 唯一性约束 |
| 培训报名 | 报名、名额、支付 | 主数据对齐 + 幂等去重 |
| 社交系统 | 关注、收藏、评论 | 会员主数据统一引用 |
| 信息发布 | 新闻、公告 | 元数据登记 + 来源追溯 |
三个取舍
用 PG 承载元数据与血缘,不引数据中台。协会只有 500 常用会员, 商业中台的采购与运维成本远超收益。元数据表、血缘表、质量规则表都是普通业务表, 一个 PostgreSQL 18 实例全装下。
集成链路用 Go 自建,不引消息中间件。模块间同步走 PostgreSQL 逻辑复制与触发器, 外部数据用 Go 定时任务拉取,全部经统一入库服务做幂等——所需能力 PG 和 Go 都原生具备。
脏数据隔离而不自动改。质量校验发现异常只生成问题单,不静默修复, 避免"自动改错"掩盖真实缺陷。宁可让数据少一点,也不要让数据假一点。
六段全文
展开/收起全文(摘要 + 一~六段)
摘要
一、项目背景
二、理论概述
三、实践一:统一数据标准与主数据
四、实践二:多源集成与数据血缘
五、实践三:数据质量校验与对账
六、总结展望
每段讲什么
| 段 | 讲什么 | 字数(纯汉字) |
|---|---|---|
| 摘要 | 项目 + 主题 + 效果数据 | 304 |
| 一、项目背景 | 定稿逐字抄,交代项目与本人职责 | 459 |
| 二、理论概述 | 数据治理内涵 + 四类集成路线 + 本项目原则 | 428 |
| 三、实践一 | 统一数据标准与主数据(对应第 3 问) | 372 |
| 四、实践二 | 多源集成与数据血缘(对应第 3 问) | 347 |
| 五、实践三 | 质量校验与对账、效果(对应第 3 问) | 358 |
| 六、总结展望 | 定稿 + 数据治理展望 | 269 |
怎么拿分
题干三问对应本文哪段
| 题干 | 问什么 | 对应本文 |
|---|---|---|
| 2023 第 1 问 / 2024下 第 1 问 | 项目概况与本人工作 | 第一段 |
| 2023 第 2 问 / 2024下 第 2 问 | 集成策略 / 重要内容与技术路线 | 第二段 |
| 2023 第 3 问 / 2024下 第 3 问 | 如何设计与实现 / 问题·解决·效果 | 第三、四、五段 |
· 第二段把集成路线说全(抽取转换加载 / 变更捕获 / 接口 / 联邦),并给出各自取舍,而非只讲一种
· 三段实践分别落在标准、集成、质量三个不同层面,互不重复,构成完整治理闭环
· 出现技术名词即落到 PG 18 / Go / pgx 手写 SQL 的真实做法(逻辑复制、检查约束、外键、元数据表)
· 主动写"问题→解决":数据不一致→主数据归并;格式混乱→标准化函数;脏数据污染→隔离区
· 效果指标与摘要一致(可用性 99.95%、MTTR 45→8 分钟),前后不打架
· 通篇讲数据仓库、数据湖产品,却不落到自己项目的具体表与代码
· 写了本项目技术栈里不存在的中间件(重型消息队列、独立缓存、搜索引擎)——阅卷追问即露馅
· 三问只答两问:把第 2 问的技术路线和第 3 问的实现混成一段
· 只有清洗没有治理:只讲"我把数据洗干净了",没有标准、血缘、质量的持续机制
· 效果全是大词("大幅提升""显著改善")却给不出可核对的量或机制
记这几句
哪些是真、哪些是取值
| 数字 / 结论 | 性质 | 说明 |
|---|---|---|
| 可用性 99.95%、MTTR 45→8 分钟 | 固化取值 | 运营指标,无法自证,按 essay-common 定稿取值,全页一致 |
| Recall@20 0.92、P95 380ms、缓存命中率 92% | 固化取值 | 摘要定稿承诺值,正文不展开细节 |
| 数据时效性从按天提升到分钟级 | 固化取值 | 机制可达的量级描述,非本页实测 |
| 修复率 85% / 80% / 95% | 教学模拟 | 第 ③ 段模拟器演示用,非实测,不得写进论文 |
| 数据标准表 / 主数据表 / 血缘表 / 质量规则 | 机制 | 落点真实存在,用 PG 表与 Go 任务实现,不编造具体记录数 |