简介:《数据治理方案(88页).pptx》面向企业数据管理者、数据治理从业者与信息化规划人员,围绕数据管理的常见痛点与整体治理框架展开。内容从数据表与模型繁多、统一标准缺失、数据质量低下、资产分散、安全难保障等问题切入,梳理数据治理在高效运营、风险管理、质量改进与数据共享方面的价值,并给出覆盖数据战略与规划、组织与职责、制度流程、数据标准、元数据、数据质量、主数据、数据资产、生命周期与数据安全等模块的治理框架,同时介绍亿信华辰的公司背景、产品线与行业实践,可作为方案汇报、体系搭建与内部培训的参考底稿。文件共1个pptx,压缩包约14.26MB,以图示化页面呈现治理框架图、角色流程图与实施步骤,便于直接取用和二次编辑。目前已有93人学习下载,适合需要快速理清数据治理脉络、搭建治理体系的从业者。
1. 88 页数据治理方案 PPT,卡住人的往往不是排版
评审会开到第 40 分钟,投影上还停在组织架构那一页,业务方突然问了一句:这条"客户主数据编码唯一"的标准,落到哪个系统、哪张表、谁来检?翻页的手停住了。数据治理方案(88页).pptx 这类文档,真正难产的从来不是配色和母版,而是每一页背后能不能接住这类追问。
88 页这个体量不是炫技,它是覆盖面:现状、组织、标准、元数据、质量、主数据、非结构化数据治理、平台选型、实施路线,一个都不能少。少一页,评审就多一个"这块没考虑"的口子。这篇面向要出这份 PPT 的数据治理工程师、数据架构师和项目负责人,从数据治理车轮图的骨架讲起,把方案怎么成体系、pptx 怎么批量生成、数据治理流程怎么落到 SQL 和台账上,一条线走通。
2. 数据治理车轮图:一份 88 页方案该有哪几个轮辐
数据治理车轮图是方案里最容易被画成装饰画的一页,也是最能暴露结构问题的一页。车轮图的本质是把治理拆成"一个中心 + 若干轮辐 + 一条轮辋",中心是治理目标与组织,轮辐是治理域,轮辋是支撑它们的流程与工具。轮辐画错一个,后面 60 页都会跟着歪。
2.1 车轮图的中心、轮辐与轮辋怎么划
常见的做法是把中心定成"数据资产价值最大化"或者更实的"支撑业务口径一致与合规可用",然后向外发散 7 到 9 根轮辐。轮辐数量少于 6 根,说明治理域没拆全,主数据、元数据、数据标准这些容易被合并成一根,评审时会被追问边界;多于 10 根,又会稀释主线,看着热闹但没人记得住。
我一般按这套划分来定轮辐:数据标准、数据质量、元数据、主数据、数据安全、数据生命周期、非结构化数据治理。前六根是 DAMA 体系里的常客,第七根是这几年新增需求最多的一根——合同、图纸、影像、工单附件这些文件类资产,过去不在治理范围,现在不进方案就不完整。
轮辋则是把轮辐串起来的两条线:一条是数据治理流程,从认责、定标、落标、监测到整改闭环;另一条是支撑平台,元数据中心、质量平台、标准管理、资产目录。轮辋画成虚线还是实线,取决于平台是否已落地——没落地的画虚线,PPT 上要标注"规划中",避免评审时被当成既成事实。
2.2 88 页的页数配比表
页数配比直接决定评审节奏。全是架构图,业务方看不懂;全是表格,技术方觉得没设计。下面这张表可以直接拿去做页数预算,改改数字就能套到自己项目上。
| 板块 | 建议页数 | 核心交付物 | 评审关注点 |
|---|---|---|---|
| 现状调研与痛点 | 8 | 系统清单、问题清单、调研问卷结论 | 问题是不是真实存在 |
| 顶层设计与组织 | 12 | 治理愿景、组织架构、车轮图、认责矩阵 | 谁牵头、谁配合 |
| 数据标准 | 16 | 标准清单、落标规则、编码规范 | 标准能不能落 |
| 元数据管理 | 12 | 元模型、采集范围、血缘示意 | 采得到、采得全吗 |
| 数据质量 | 14 | 规则库、阈值、闭环流程 | 谁改、多久改完 |
| 主数据管理 | 10 | 主数据域、编码规则、分发机制 | 一物一码是否成立 |
| 非结构化数据治理 | 6 | 文件资产目录、挂标规则、存储策略 | 怎么盘、怎么挂 |
| 平台与工具选型 | 6 | 技术架构、选型对比 | 自研还是采购 |
| 实施路线与 KPI | 4 | 里程碑、阶段目标、度量指标 | 半年后能看到什么 |
合计 88 页。这个配比里,数据标准 16 页最多,因为它是唯一一个"写不出来就没法落标"的板块;非结构化数据治理 6 页最少,是因为它更多依赖工具扫描和台账登记,方案层面能讲的新东西有限。
注意:页数配比不要平均分配。标准和质量占到三分之一,是因为这两块直接对应后续可度量的交付物,路线图和平台选型写多了反而像汇报材料。
2.3 从车轮图到目录:可复用的骨架
车轮图定完轮辐,目录其实就出来了。骨架顺序建议按"为什么做 → 做什么 → 怎么做 → 怎么管 → 什么时候做完"推。先把现状痛点放前面,让评审先认可问题;顶层设计紧跟其后,把组织认责钉死;然后按标准、元数据、质量、主数据、非结构化数据逐域展开;平台与工具放在域之后,是因为选型必须服务于前面拆出来的需求,顺序反了会变成"为了买工具找需求"。
每个治理域的小节结构也保持一致:现状与痛点、目标与原则、管理流程、落标/落地规则、指标与考核。五个小节各两到三页,一个域就是 12 到 16 页,八个域正好撑起 88 页的体量。骨架统一之后,后面用脚本生成时就只需要填内容,不用再纠结版式。
3. 用 python-pptx 批量生成数据治理方案骨架
88 页手工排,两个后果:改一版口径要重排半天,章节页和目录页的数字对不上。常见做法是把内容和版式分离——内容放进结构化数据里(YAML、JSON 或直接来自数据库的治理台账),版式交给母版,然后用 python-pptx 批量灌进去。
3.1 母版与版式约定
先做一份 governance_template.pptx,只保留母版和版式,不放任何内容页。母版里定好三级字体、主色、页脚占位符和页码域。版式至少留三个:标题页、节标题页、标题+内容页,分别对应 slide_layouts 索引 0、2、1(不同模板索引会变,用下面这段先探一遍)。
from pptx import Presentation prs = Presentation("governance_template.pptx") for i, layout in enumerate(prs.slide_layouts): # 打印版式索引、名称和占位符类型,用于确定索引映射 phs = [(ph.placeholder_format.idx, str(ph.placeholder_format.type)) for ph in layout.placeholders] print(i, layout.name, phs)逻辑说明:母版索引不是固定的,不同的模板顺序差异很大,硬编码slide_layouts[1]很容易把内容灌到节标题版式上,出现标题居中、正文跑到页面中间的情况。先打印一遍,把名称里带"标题和内容"的索引记录下来,再写进配置。
参数说明:placeholder_format.idx是占位符在版式内的编号,标题通常是 0,正文通常是 1,页脚和页码可能占 10、11、12。灌内容时按 idx 取,比按 shapes 顺序取稳得多,因为版式里插了装饰图形后顺序会变。
3.2 生成章节页与标准条目的最小代码
下面这段把一份治理域清单灌成 PPT,章节页和内容页分开处理。
from pptx import Presentation from pptx.util import Pt LAYOUT_CONTENT = 1 # 标题+内容版式索引 LAYOUT_SECTION = 2 # 节标题版式索引 def add_section(prs, name): slide = prs.slides.add_slide(prs.slide_layouts[LAYOUT_SECTION]) slide.shapes.title.text = name return slide def add_content(prs, title, bullets, size=16): slide = prs.slides.add_slide(prs.slide_layouts[LAYOUT_CONTENT]) slide.shapes.title.text = title tf = slide.placeholders[1].text_frame tf.clear() # 清空母版自带的示例文本 tf.word_wrap = True for i, item in enumerate(bullets): p = tf.paragraphs[0] if i == 0 else tf.add_paragraph() p.text = item p.level = 0 p.font.size = Pt(size) # 逐段设字号,避免继承母版的 28pt return slide prs = Presentation("governance_template.pptx") domains = [ ("数据标准", ["标准体系分层:基础类、业务类、技术类", "编码规范与值域字典", "落标检查规则与责任人"]), ("数据质量", ["规则维度:完整性、唯一性、有效性、一致性、及时性", "阈值分级:阻断/告警/提示", "整改闭环与 SLA"]), ("非结构化数据治理", ["文件类资产登记范围", "文本抽取与标签体系", "存储分级与归档策略"]), ] for name, items in domains: add_section(prs, name) add_content(prs, name + ":核心要点", items) prs.save("data_governance_v1.pptx")逻辑说明:add_section只负责生成节标题页,add_content负责正文页。tf.clear()这一步不能省,母版正文占位符里通常预置了"单击此处添加文本"或示例项目符号,不清空会和新内容叠在一起,表现是每页第一行多出一句提示语。
参数说明:size=16是正文基准字号,会议室投影用 16 到 18 比较稳,低于 14 后排看不清;如果某页要点超过 7 条,宁可拆两页,也不要降到 12pt——一份 88 页的方案里出现密集小字页,评审时基本没人读。
3.3 字号、版式、占位符参数表
把容易踩的参数整理成表,改模板时对照着调。
| 参数 | 推荐值 | 说明 |
|---|---|---|
| 章节页标题字号 | 40–44pt | 只放标题,居中,不加副标题 |
| 内容页标题字号 | 28–32pt | 超过 32pt 会挤压正文区 |
| 正文基准字号 | 16–18pt | 每条不超过 24 个汉字 |
| 表格字号 | 12–14pt | 表格页单独用版式,避免和正文混排 |
| 每页要点数 | 4–7 条 | 超过 7 条拆页 |
| 页码占位符 idx | 10 或 11 | 以模板实测为准 |
| 页脚保留区 | 底部 1.2cm | 放密级、版本号、日期 |
提示:表格页不要复用正文版式。正文版式的内容占位符有上下边距限制,塞进 8 行以上的表格会出现底部文字被裁掉,导出 PDF 时尤其明显。
3.4 目录页码与母版继承的坑
python-pptx 不能刷新域,所以"目录页页码"和"页码域"这两件事它管不了。目录页页码的常见做法是:生成完成后,用len(prs.slides)拿到总页数,把目录页里的页码文字按固定偏移量算出来再写回;页码域则交给 PowerPoint 打开后按 F9 更新,或者在导出前用一次"更新域"操作。
另一个坑是母版继承。用add_slide新加的页一定继承版式,但如果模板里的节标题页带背景图,节标题页的索引用错,整个第 2 章的视觉节奏就断了。检查方法是:生成后把 pptx 用 zip 打开,看ppt/slides/slideN.xml里引用的 layout 关系 ID,和预期版式对一遍,比重开 PowerPoint 翻页快得多。
4. 数据治理流程落地:元数据、数据标准、数据质量三条线
方案 PPT 里画的流程图,落到系统里就是三件事:元数据采得到、标准对得上、质量测得出。这三条线不打通,88 页方案就停在汇报层。数据治理流程的闭环,本质是让这三条线互相喂数据——元数据提供落标对象,标准提供质量规则的维度,质量结果反过来修正标准。
4.1 元数据采集:从 information_schema 落到治理台账
元数据采集的第一站通常是关系库的系统表。下面这条 SQL 把库、表、字段、类型、注释一次性拉平,直接作为治理台账的输入。
-- 拉取业务库字段级元数据,排除系统库 SELECT c.table_schema AS schema_name, c.table_name AS table_name, c.column_name AS column_name, c.data_type AS data_type, c.character_maximum_length AS data_len, c.is_nullable AS is_nullable, c.column_comment AS column_comment FROM information_schema.columns c JOIN information_schema.tables t ON t.table_schema = c.table_schema AND t.table_name = c.table_name WHERE t.table_type = 'BASE TABLE' AND c.table_schema NOT IN ('mysql','information_schema','performance_schema','sys') ORDER BY c.table_schema, c.table_name, c.ordinal_position;逻辑说明:information_schema.columns提供字段级信息,关联tables是为了过滤掉视图,只保留物理表。ordinal_position决定字段在台账里的展示顺序,缺了它,字段顺序在后续比对时会随机变化,落标结果会出现假的"字段缺失"。
参数说明:character_maximum_length对数值类型为 NULL,落标比较时要用COALESCE兜底;column_comment在不少库上是空的,方案里要明确"注释补录"作为一项整改任务,否则元数据资产目录的可读性会非常差。采集频率按周或按天,取决于变更频率,DDL 变更频繁的库建议按天。
4.2 数据标准落标检查
落标检查就是把标准台账和实际元数据做差集。先把标准表建成gov_data_standard,字段包括 std_code、table_name、column_name、std_type、std_len、owner。然后用下面这条 SQL 找出三类偏差。
-- 找出未落标字段:字段不存在、类型不符、长度不符 SELECT s.std_code, s.table_name, s.column_name, s.std_type, s.std_len, m.data_type AS real_type, COALESCE(m.character_maximum_length, -1) AS real_len, CASE WHEN m.column_name IS NULL THEN '字段缺失' WHEN m.data_type <> s.std_type THEN '类型不符' ELSE '长度不符' END AS diff_type FROM gov_data_standard s LEFT JOIN gov_meta_column m ON m.table_name = s.table_name AND m.column_name = s.column_name WHERE m.column_name IS NULL OR m.data_type <> s.std_type OR COALESCE(m.character_maximum_length, -1) <> COALESCE(s.std_len, -1);逻辑说明:用 LEFT JOIN 保证"标准里写了、库里没有"的字段也能被查出来,这是落标检查里最关键的一类偏差,右连接或内连接都会漏掉。diff_type用 CASE 直接分类,方便后续按类型分派整改责任人。
参数说明:std_len对数值型标准留 NULL,比对时用 -1 兜底,避免 NULL 和 NULL 比较返回 UNKNOWN 导致漏报。执行频率建议按月,随元数据采集批次走。
4.3 数据质量规则与告警阈值表
质量规则最好做成配置表,而不是写死在脚本里。下面这张阈值表可以直接建表使用。
| 规则编号 | 维度 | 检查对象 | 阈值 | 级别 | 动作 |
|---|---|---|---|---|---|
| DQ-001 | 完整性 | 客户表.证件号 | 空值率 > 1% | 告警 | 通知数据 owner |
| DQ-002 | 完整性 | 订单表.客户ID | 空值率 > 0.5% | 阻断 | 阻断入仓 |
| DQ-003 | 唯一性 | 客户表.客户编号 | 重复数 > 0 | 阻断 | 阻断入仓 |
| DQ-004 | 有效性 | 客户表.客户类型 | 值域外占比 > 2% | 告警 | 生成整改单 |
| DQ-005 | 及时性 | 日增量表.分区日期 | 延迟 > 2h | 告警 | 通知调度 |
| DQ-006 | 一致性 | 主数据.组织编码 | 与主数据不一致 > 0 | 阻断 | 阻断分发 |
| DQ-007 | 唯一性 | 合同附件.文件指纹 | 重复数 > 0 | 提示 | 进入去重队列 |
这张表对应到 SQL 就是按维度分组聚合。以完整性为例,把规则表和质量结果表关联,超过阈值就落一条告警记录,再由调度平台按级别决定是阻断还是通知。阈值不要一次定太紧,先跑两周拿基线,再收紧到能稳定告警但不炸群的水平。
4.4 非结构化数据治理:文件类资产的登记与挂标
非结构化数据治理的难点是"盘不清"。常见做法是先扫存储目录,抽出路径、大小、修改时间、扩展名、文件指纹,落到文件资产表;再对文本类文件抽正文、分词、打标,挂到业务对象上。
import hashlib, os, csv ROOT = "/data/contracts" rows = [] for dirpath, _, files in os.walk(ROOT): for f in files: fp = os.path.join(dirpath, f) st = os.stat(fp) # 用前 1MB 做部分哈希,兼顾去重准确率和扫描速度 h = hashlib.md5() with open(fp, "rb") as fh: h.update(fh.read(1024 * 1024)) rows.append({ "path": fp, "ext": os.path.splitext(f)[1].lower(), "size_kb": round(st.st_size / 1024, 1), "mtime": st.st_mtime, "fingerprint": h.hexdigest(), }) with open("file_asset.csv", "w", newline="", encoding="utf-8") as out: w = csv.DictWriter(out, fieldnames=rows[0].keys()) w.writeheader() w.writerows(rows) print("scanned", len(rows))逻辑说明:os.walk递归扫目录,fingerprint用文件前 1MB 的部分哈希,比全量哈希快一个数量级,对合同、图纸这类文件足够区分;如果同目录下有完全相同的重复文件,指纹一致,可以直接进入去重队列,对应上面规则表里的 DQ-007。
参数说明:1024 * 1024是部分哈希的读取长度,文件普遍较小时可调小到 256KB;size_kb保留一位小数便于人工核对;mtime用时间戳存,后续做归档策略时按时间分桶。扫描结果落到台账后,再补一列"关联业务对象"和"密级",由业务方认领,这一步不用脚本做,靠流程推。
5. 评审现场站得住:口径、版本与验证技巧
方案能不能过,最后一关是口径和版本。同一个指标在 PPT 第 23 页和第 61 页数值不一致,是评审翻车最常见的原因。我的做法是给整份方案建一张"口径主表",每个指标一行,记录口径编号、定义、计算公式、数据来源表、责任人、版本号。PPT 里所有出现该指标的地方都标注口径编号,评审追问时直接翻到附录。
| 口径编号 | 指标名 | 计算逻辑 | 来源 | 责任人 | 版本 |
|---|---|---|---|---|---|
| KPI-01 | 数据标准落标率 | 已落标字段数 / 标准字段总数 | gov_data_standard | 标准组 | v1.2 |
| KPI-02 | 元数据覆盖率 | 已采集表数 / 应采集表数 | gov_meta_column | 元数据组 | v1.1 |
| KPI-03 | 质量规则阻断率 | 阻断级告警数 / 规则总数 | gov_dq_result | 质量组 | v1.0 |
| KPI-04 | 非结构化挂标率 | 已挂标文件数 / 文件资产总数 | file_asset | 档案组 | v1.0 |
验证技巧上,我一般做两件事。第一件是反向抽查:从 88 页里随机抽 10 页,把页面上的每个数字回溯到口径主表和源表,任何一个数字对不上,就先改口径表再改 PPT,绝不直接在 PPT 上改。第二件是版本冻结:评审前 48 小时锁版本,文件命名带 v 号和日期,评审当天只允许改错别字,不允许改数字,否则会后没人知道哪版是准的。
pptx 本身的校验可以用一条命令快速过一遍,确认页数、节数和预期一致,避免生成脚本漏灌某个治理域:
# 统计生成的 pptx 中幻灯片页数 unzip -l data_governance_v1.pptx | grep -c "ppt/slides/slide[0-9]*\.xml$"页数对不上时,先看生成脚本里的 domains 列表长度,再看每章是否都调用了 add_section;两个都对,就检查母版里有没有隐藏的空白页版式被误加。这个动作花不了一分钟,但能挡掉"第 3 章整段消失"这种最尴尬的现场事故。
本文还有配套的精品资源,点击获取