ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

技术视角解码DAMA数据管理框架,落地数据资产化

技术视角解码DAMA数据管理框架,落地数据资产化 前阵子和一个做数据平台的同行聊天他一听到“数据资产化”就苦笑着说元数据平台建了血缘也画了资产目录也上线了可老板还是觉得“资产”没真正“化”起来。这个问题我特别有共鸣。数据资产化这几年被反复提起但它从来不是单点工具能解决的事背后需要一套能指导全局的框架。DAMA数据管理框架DMBOK恰恰是这套框架里最常被引用的底座之一。只不过很多技术团队一看它是“管理类”知识体系下意识就划走了觉得跟自己没关系。这篇东西我想从技术视角重新解码一下DAMA数据管理框架聊聊它到底解决了什么问题、怎么把它和元数据、数据血缘、数据质量、主数据管理这些技术落地动作接起来以及数据资产化在工程层面的完整链路长什么样。适合正在做数据平台、数据中台、数据治理或者被“资产化”指标压得喘不过气的数据架构师、数据开发工程师和数据产品经理。1. 为什么技术团队也要啃DMBOK从“管理教材”里读出的工程启示我第一次翻DMBOK 2.0的时候心里也犯嘀咕整本书讲的都是数据治理组织、职责、流程看着像给咨询顾问写的跟写代码的人有什么关系但后来真到了做数据资产盘点、做数据质量问题定级的时候才发现这本书最大的价值不是告诉你“该建什么组织”而是把数据管理领域涉及的各项能力做了一次穷举和分类让技术团队能按图索骥找到自己正在做的事在整个体系里处于什么位置。1.1 十一大知识域哪些和你真正相关DMBOK 2.0 把数据管理拆成了十一个知识领域。大多数技术人对这个清单并不陌生但很少有人认真想过自己日常的每个动作到底对应其中哪个域、缺少哪个域。知识领域技术团队最容易接触到的落地模块工程关注度数据治理数据治理委员会、制度流程、责任矩阵中数据架构企业数据架构、数据流设计高数据建模与设计数仓建模、ER图、维度建模高数据存储与操作数仓、数据湖、库表设计、TTL管理高数据安全权限控制、数据分级分类、脱敏加密中数据集成与互操作数据同步、ETL/ELT、API接口高文档与内容管理非结构化数据管理、知识库低参考数据与主数据码表管理、MDM、客户/产品主档中高数据仓库与商务智能数仓分层、指标平台、BI报表高元数据元数据采集、数据字典、血缘解析高数据质量质量规则、质量监控、问题追踪高看这张表就能发现技术团队日常投入最大的几个域——数据建模、数据集成、数据仓库BI、元数据、数据质量——恰好是DMBOK里篇幅最重、定义最细的几块。书里对每一项都给出了“活动”“输入产出”“最佳实践”和“度量指标”这就相当于给工程实施列了一张完整的检查清单。1.2 车轮图背后的工程逻辑DMBOK还有一个非常著名的“车轮图”中间是数据治理周围一圈是数据架构、数据建模、数据存储、数据安全、数据集成、文档管理、参考数据和主数据、数据仓库BI、元数据、数据质量。大多数人在看这幅图时注意的是“有哪些块”但我更关注的是它的另一层含义所有知识域都依赖底层的数据治理机制同时它们之间是互相咬合的。翻译成工程语言就是如果元数据不完整血缘解析就是半残的如果数据质量标准没定元数据里的质量分数就是摆设如果参考数据没人管数仓里几百张维表就会各建各的主数据更是无从谈起。DMBOK的价值不是给出一个标准化的“目录结构”而是绘制了这些能力之间的依赖关系让你知道做数据资产化时哪些事必须排在前头、哪些事可以并行。1.3 框架落地的现实落差不做裁剪就是灾难我见过一些团队拿着DMBOK的流程图上纲上线什么都要按书里的成熟度模型来建。结果是项目推进三个月产出只有一堆模板文档没有一条质量规则上线没有一个数据资产被真正消费。问题出在光读框架、没有做工程化裁剪。框架要落地我的经验是三句话先做自动化能兜底的再做流程能约束的最后才碰组织协同类的。元数据采集、血缘解析、质量规则配置这些偏工具能力的事技术团队可以立刻启动数据资产分级分类、质量考核机制这些需要业务部门配合的事则要放在工具能力成熟之后。DMBOK是用来对齐认知的坐标系不是拿来照抄的施工图。2. 数据资产目录元数据采集、血缘解析与资产的注册机制数据资产化最基础的一步就是建目录。但很多团队对“目录”的理解太浅以为拿一个开源元数据平台部署起来把表扫进来就算完成。实际上从“有目录”到“资产可被检索、可被信任、可被计量”中间差着三层功夫元数据采得全不全、血缘画得准不准、资产有没有一套注册和分级机制。2.1 元数据分三层缺哪层都会“近视”元数据不是单纯指“表结构信息”。DMBOK里把元数据分成三类技术元数据、业务元数据、操作元数据。技术元数据是库表结构的物理描述业务元数据是数仓里字段的业务含义、口径和数据owner操作元数据则是调度状态、运行日志、数据刷新时间等运行层面的信息。大多数团队的元数据平台只做了技术元数据业务元数据严重缺失。带来的最直接症状就是用户在资产目录里搜“订单金额”能搜出一堆叫order_amount、order_amt、total_price的字段但没人说得清哪个是GMV、哪个是实付、哪个含退款。所以做资产化之前先把业务元数据补齐比再上一套新工具要优先得多。2.2 血缘解析从“能画图”到“画得准”血缘是数据资产化里最容易被“过度宣传”的能力。很多人以为部署了Atlas或者DataHub血缘就自动有了。真实情况是血缘解析的精度取决于能拿到多少有效的SQL文本。我处理过的现实场景大概分成三类表级血缘通过解析调度系统中的ETL任务依赖关系生成准确率较高因为任务之间天然有上下游依赖。字段级血缘通过解析SQL语句中的select、insert、where条件来推导准确率取决于SQL的复杂度。简单SQL能到90%以上复杂SQL存储过程、动态SQL、多层子查询掉到60%-70%都很正常。跨系统血缘比如线上业务库到数仓、数仓到BI报表之间的链路往往需要靠命名约定和手动补录来兜底。我个人的建议是做资产目录初期不要死磕字段级血缘的100%准确先把表级血缘和核心链路的字段级血缘做扎实。血缘图的核心价值在于“影响分析”——上游表结构变更了下游哪些指标会挂这个能力只要有70%的准确率就能在日常变更管理中发挥很大作用。具体技术上表级血缘可以等调度系统自己吐依赖关系字段级血缘用SQL解析器去做。注意解析SQL时最好基于AST而不是正则否则复杂SQL会漏掉大量依赖。真实项目中我见过有的团队用Calcite做SQL解析拿到血缘关系虽然对某些方言SQL兼容性要调但比正则匹配要靠谱得多。2.3 从“扫描表”到“注册资产”目录需要一套准入机制把元数据扫进系统形成的是“数据字典”只有对数据做了分级分类、定义了owner和数据域注册进资产目录才算得上“数据资产”。这一步不能省略。我建议的准入规则很简单一个数据集如果同时满足“有明确owner”“有业务口径描述”“有质量分哪怕初始分数很低”“有至少一类用户在使用”四个条件才允许注册为资产。没有owner的数据集不管多重要都先挂在“待认领池”里否则后面数据出问题连找谁处理都不知道。资产分级也要现实一点。不要一上来搞“核心资产、重要资产、一般资产”这种摸不着头脑的定性描述要落到具体规则上。比如被超过5个下游任务引用的表自动升为核心资产用于对外报表或监管报送的表自动升级为重要资产连续90天无访问的资产自动打上“待下架”标签。规则自动化程度越高目录越不容易烂掉。3. 数据质量规则映射DMBOK质量维度如何变成监控告警与修复工单数据资产值不值得被信赖质量是关键。DMBOK里给了一组数据质量维度——准确性、完整性、一致性、及时性、有效性、唯一性。这六个词听起来像教科书概念但落到工程上每一个维度都可以翻译成具体的SQL规则、质量任务和告警阈值。这一段我直接把对应的工程实现方式拆开讲。3.1 六个质量维度每一维都能落成“规则”质量维度工程翻译典型SQL规则示例完整性字段空值率、必填项是否缺失count(1) - count(*) 为空值行数比例唯一性主键是否重复、业务键是否唯一group by 业务键 having count(*) 1有效性字段值是否符合枚举、长度、格式范围where 状态码 not in (合法枚举)准确性数据与真实业务事实的吻合度抽样人工核对、与业务系统对账一致性同名同义字段在不同系统中是否一致关联业务库与数仓同名指标做差比对及时性数据是否按时产出、延迟多久比较数据日期与当前日期、调度结束时间与SLA时间这里最关键的一点是在工程上准确性的自动化检测最弱大部分时候我们用“一致性”去间接逼近“准确性”。比如财务月结后让数仓报表数据和财务系统报表数据做一次总数核对差异超过阈值就触发告警。这个场景本质上是在做一致性校验但它真正保护的是数据的准确性。认知到这一点质量工具的建设路径会清晰很多。3.2 质量规则引擎规则要能“集中配置、分级执行”质量规则有两种落地方式。一种是每张关键表写死几个校验SQL挂在调度任务后面另一种是上专门的规则引擎把规则配置和调度解耦。小团队可以先从前者做起但一旦资产规模到几百张表一定要往后者走。规则引擎的设计我的建议是拆成三层规则配置层、执行调度层、结果通知层。配置层提供模板化的规则创建方式比如选择表、选择字段、选择质量维度、填阈值生成一套JSON格式的规则配置执行层定时调度Spark或者纯SQL任务去消费这些规则结果通知层根据质量分结果把问题分发给该资产owner。规则配置和业务表解耦之后新增一条质量规则的边际成本会大幅下降质量监控的覆盖面积才铺得开。质量分不用搞太复杂的公式。我常用的方案是一张表的质量分等于权重乘各维度得分的总和。完整性、准确性、一致性权重最高各占30%唯一性、有效性、及时性权重各占剩下的零头。初始分数设成100规则每命中一条就按权重扣分跑批结束自动刷新分数。分数落到资产卡片上用户消费数据之前先看分数比自己闷头踩坑要高效得多。3.3 质量问题闭环监控只是开始修复才是关键DMBOK数据质量章节最薄弱的环节是“出问题之后怎么办”因为流程设计者默认这是组织协同问题。但工程上完全可以建设“问题闭环”机制把质量告警变成一张工单自动派发给owner并记录处理状态。我见过做得不错的团队是这样实现的质量规则引擎触发告警后自动创建一张问题单附带质量维度、影响表清单、影响下游任务列表从血缘里取并按照严重程度决定通知方式。P0级核心资产或监管报送数据出错直接发短信拉群P1级重要资产出错发站内信和邮件P2级一般资产出错只记录日志。修复完成后填入根因标签比如“上游源系统变更”“开发代码缺陷”“数据源本身脏数据”月底统计根因分布反推治理重点。这套机制的价值在于它让数据质量管理从“到处救火”变成了“日清日结”。质量分是昨天的结果问题工单的处理时效才是今天的抓手。4. 主数据与参考数据技术团队最容易被“业务概念”卡住的地方DMBOK把参考数据和主数据分成一个独立的知识域很多技术人一看“主数据”三个字就发怵觉得这是业务部门或者MDM厂商的事情。但做数据资产化做到后期你必然会遇到“同一个客户在不同系统里编码不一样”“同一个产品在订单表和库存表里叫法不一致”这类问题。这就是主数据和参考数据的范畴。技术团队如果不懂这块资产目录做得再漂亮核心实体的数据也是脏的。4.1 参考数据本质就是“码表管理”参考数据大白话就是码表和枚举值。性别代码、国家代码、订单状态、支付渠道这些都算。DMBOK为什么要把这么简单的事单独立成一个知识域因为现实里码表的管理极度混乱。同一个渠道交易系统里叫channel_id1数仓里叫channel_code‘APP’风控系统里叫channel_name‘手机端’三套体系并存。参考数据的技术落地并不复杂核心就三件事统一编码标准、建立映射关系、做版本管理。我的建议是搭一个轻量的参考数据管理服务把各业务系统的码表都收编进去对外提供统一的映射查询API。注意参考数据的变更一定要走版本化流程不能直接update否则历史数据在回溯时会集体失真。比如支付渠道枚举值增加了一个新渠道必须新增一个版本保留旧值在历史分区中的可解释性。4.2 主数据匹配、合并、生存一个都不能少主数据管理的对象是企业最核心的业务实体比如客户、产品、供应商、组织架构。技术难点不在存储而在实体识别和去重合并。同一个客户可能在CRM系统里叫张三、身份证号是A在电商系统里叫z_san、手机号是B在线下门店系统里叫Mr.Zhang、证件号是A。要把这三条记录识别成同一个客户靠人工去对是完全不现实的。工程实现上主数据匹配的常见做法是分层匹配策略。第一层是确定性匹配拿身份证号、统一社会信用代码这类全局唯一标识直接关联第二层是概率匹配用姓名、手机号、地址这些字段组合做相似度打分超过阈值才认为指向同一实体第三层是人工审核兜底对系统拿不准的记录进入待审核队列。需要特别提醒的一点是主数据的“合并”不是简单地把多条记录并成一条它涉及“生存规则”的制定。张三在CRM里用的手机号是139开头在电商系统里用的是188开头合并成客户主数据后以哪个为准DMBOK里给出的是“生存规则”和“记录画像”的思路工程上落地就是给每个字段设定来源优先级比如核心系统优先于外围系统和数据置信度比如实名认证过的手机号置信度更高。这条规则不在前期定义好后面合并完了想再拆开成本会非常高。4.3 主数据和普通业务系统的边界别搞成“第二个数据中心”实践里最怕一种情况主数据项目做着做着变成了一个包罗万象的数据中台什么数据都想收进来。DMBOK在主数据这块强调得最狠的一个原则就是主数据只管理“高共享性、高价值、跨流程复用”的核心实体不是所有数据都能进主数据体系。判断标准可以参照两条。一条是跨系统复用度至少三个以上业务系统依赖这份主数据才有必要纳入主数据管理。另一条是变更频率如果是一天变化几百次的流水型数据这应该是事实数据而不是主数据。主数据是“慢变量”它的核心是稳定共享不是实时采集。把边界划清楚团队的主数据建设才不会被大量低价值需求拖垮。5. 数据资产化的账本视角成本归属、价值度量与运营机制回到开头那位同行的困惑。他的团队把元数据、血缘、质量、目录都做了可老板依然觉得资产没“化”起来。问题出在哪里我的判断是缺少一本“账”。资产不只是被管理起来的东西更是可以被计量、被评估、被运营的资源。数据资产化最重要的一步是让数据有自己的“资产负债表”和“损益表”。5.1 数据资产也要搞“成本归属”一套数据资产放在数仓里不是免费的。它要占用存储空间每天跑批要消耗计算资源出了问题要人工去排查修复。这些成本如果不在资产卡片上体现数据开发就永远不会心疼自己每张表占了多少资源也不会主动去清理那些半年没用的临时表。成本归属怎么做我建议从三块入手。存储成本按表大小和存储类型折算成月费用计算成本按调度任务消耗的计算资源统计分摊到产出表维护成本按该资产的故障工单数和处理时长估算人力投入。听起来复杂但第一版不需要很精确一个大致的量级估算已经足够让研发团队产生成本意识。很多团队就是在这个环节突然意识到“随便建的临时表”其实是每个月在烧真金白银。5.2 价值度量别只看“访问量”要看“消费深度”有了成本还得有“价值”侧的数字否则资产化只剩“越管越贵”的负面观感。数据资产价值的度量最容易想到的指标是访问量、查询次数、被引用数量。但如果只看访问量就会出现一种奇特现象某个BI报表每周被点击几百次听起来很“核心”实际是这个报表的数据经常出问题用户反复刷新试图确认数据是否修好了。我见过相对有效的价值评估方式是看数据资产被“消费”的真实深度。几个典型信号被正式指标系统引用、被外部系统通过API调用、被核心报表引用、被数据服务订阅的次数。和访问量配合使用才能大致刻画出一份数据资产到底在业务链路里承担什么角色。价值度量不是为了给资产排名而是为了让治理决策有数据支撑哪些资产该加大投入提升质量哪些资产该降级甚至下架都有了相对客观的依据。5.3 运营机制资产目录不是“建完上线”而是要“天天有人管”数据资产化的另一个误区是把交付物当成终点平台上线了目录建好了就觉得大功告成。事实上资产化是一个持续的运营过程因为数据本身在持续生产、持续变化资产目录必须跟着动态更新。工程侧的运营机制我建议至少做三件事。第一自动巡检每天跑一批任务发现脏数据、血缘断裂、owner缺失就自动生成待办。第二月度资产评审以月为单位由核心数据owner参加过一遍核心资产的质量分变化、成本变化、问题工单关闭情况决定哪些资产要专项治理、哪些要降级。第三消费侧的反馈入口每个资产卡片上保留“上报数据问题”的入口让消费方能够对资产质量和数据口径提出反馈。这个反馈闭环一旦转起来数据治理会从“治理团队推着业务走”慢慢变成“业务推着治理团队跑”。DMBOK框架在其中扮演的是知识底座的角色。它不给你具体的工具也不直接告诉你先做哪一步但它把数据管理的各项能力边界和依赖关系刻画得足够清楚。做数据资产化的过程中随时可以回来翻一翻看看自己走到哪儿了、还缺哪些能力、下一步优先补什么。我个人这几年的体会是框架这东西只有在被反复应用并和现实碰撞时才有价值。它真正解决的不是某个具体技术问题而是让你在数据资产化这条长路上不容易迷失方向。
返回列表