编 辑:老彭
来 源:大数据架构师
彭友们好,我是老彭。今天DCMM评估团队为一个评估要点讨论得非常激烈,我正好左右无事,过去听了一耳朵。
怎么个事儿呢?
原来啊,我们在为一家央企做DCMM4级(量化管理级)的评估。小宇同志负责数据架构域的评估工作。其中数据模型评估项量化管理级有一个能力等级标准是这么写的:
小宇之前做3级(稳健级)比较多,对4级的要求不太理解,就不太知道应该怎么评价一个企业怎么才算是建立了组织级数据模型和系统应用级数据模型的同步更新机制,怎么又确保模型的一致性。
这个老彭熟悉啊!当年做某部委项目的时候,天天查的就是这个
企业级和系统级数据模型
DCMM很多人吐槽,但也不得不说有些细节设计的很合理。企业级数据模型一致性的要求,放在量化管理级最合适不过。因为企业或者业务没到那个阶段,是没有一致性这个需求的。
在一个小公司,做一个独立的信息系统,你就是唯一,你想咋耍就咋耍,不需要跟谁保持一致。
但是在一个大型公司,通常会有有N多个信息系统,在系统之间进行数据交互的时候,你就会知道数据模型一致性的好处了。如果数据模型一致,甚至可以做到无缝丝滑对接。如果数据模型不一致,不说额外增加的开发量,就日期格式对不齐就能出N多Bug。
同理,在一个集团公司中,你就得考虑下级生产单位的系统对接需求,平级兄弟单位的数据交换需求,以及上级单位数据上报需求,这时候就不得不考虑数据模型一致性的问题了。
如果上下一致因为如果上下一致,会省很多事。如果不一致,哼哼....跨组织协调的效率你知道的,且等着吧...
确保数据模型一致性
那么问题来了,如何确保企业级数据模型和系统应用级数据模型的一致性呢?
所有的问题早就有解决方案。生活中处处都是智慧。给你举个简单的例子你就明白了。
老彭的娃在上初中,他有好几身校服。学校有校服着装要求,必须按要求着装,不能奇装异服,不能在校服上涂写绘画。
这比老彭初中的时候松快多了。老彭初中的时候,不穿校服不能进校门,男生头发不能超过手指的厚度,不能挽裤腿,还不能穿拖鞋。
你看,学校关于校服着装的规矩就是企业级数据模型,班级里关于校服着装的规矩就是应用级数据模型。班级的规定必须遵从学校的规定。
怎么保证学生校服着装的一致性呢?很简单么。大家都是小学毕过业的,都懂!那就是:
设立校门口的检查督导小组!每天在校门口进行日常检查,还会到班级进行突击检查。
他们权力可大着呢!手上都拿着小本本,遇到着装不符合要求的,轻则扣班级分,重则不让进校门呐!
数据模型一致性工作也是如此,就是定期做一致性检查。
建设期的项目,把数据模型一致性列入验收标准,与企业级数据模型不一致的,不予通过验收。
已经投产的项目,检查出与企业级数据模型不一致的,发通知让相关单位限期整改,并在绩效考核里扣分。
简单粗暴,才能直接有效。
数据模型同步
回到同事的问题:怎么才能算是 “建立了组织级数据模型和系统应用级数据模型的同步更新机制,确保一致性”了呢?
这句话其实包括了两个工作:
1.数据模型的同步更新机制;
2.数据模型的一致性。
企业级数据模型和系统应用级数据模型的同步更新机制很好理解,就是企业级数据模型改了,系统应用级数据模型也得跟着一起改。
数据模型的同步更新机制可以从两个层面进行评估:
1.有没有相关的流程和工具;
数据模型同步的制度流程好说,发个文就行了。那工具是啥呢?有人会会所,数据建模工具是不是可以处理这个事情?
传统的power designer应该是不行的。可以看看数语的Datablau Data Modeler(DDM)产品,有SaaS版和客户端版,可以进行数据模型标准的同步。
图片来自于datamodeling.cn
其实更好用的是数据库发布工具。不仅可以同步数据模型,还可以在严密的权限和流程控制下,实现企业范围内数据结构的一键发布。
比如:身份证号码由15位改成18位的时候,字段长度会发生变化。这时候企业级数据模型里员工表的身份证号发生变化,数据库工程师修改好之后,可以将所有员工表里的身份证号字段的长度进行同步调整,确保该表该字段的全局统一。
当然啊,没有专业工具也是可以进行同步的,发个邮件通知各单位各部门同步更新也是可以得分的。
2.有没有按照流程同步执行数据模型的更新操作。
需要注意的是,同步更新机制和确保一致性是两件事情。有这个机制,不代表着就一定能确保数据模型的一致性。因为机制经常会失效的。
每个家庭都有早餐叫醒机制,但是暑假的娃娃好像不吃这一套。
所以应该用各种办法确定该机制是否生效。
从过程的视角,可以查阅执行记录,确认上级发布的数据模型同步更新通知,下级单位是否遵照执行。
从结果的视角,可以定期进行检查,看看系统应用里的数据模型是否与最新的企业级数据模型保持一致。
三态分析
“三态分析”就是用来确保数据模型的一致性的重要手段。所谓的三态指的是标准态、设计态和运行态。
在进行三态分析的时候,这三态不一定是固定的。有些时候也会用标准态、过去某个时间的运行态和现在的运行态进行分析。这样可以发现数据模型在不同时间节点发生了什么变化。
各个企业的管理水平不一样,开发团队的意识水平也不一致。有些开发人员可不管你什么标准不标准的。胡乱改表结构导致出bug的情况比比皆是。
可以利用模型三态分析或者模型比对、扫描的方式及时发现表结构违规调整引发的问题,减少损失。
标准态的载体一般是各种标准文本,比如国标、行标、团标、地标或者企业标准。有条件的可以把元数据标准导入到系统中进行管理。评估的时候可以把这些文件或者工具中的标准判定为企业级数据模型。
设计态的载体一般是各种数据库设计文件/说明书。如果有建模工具的话,可以同步企业级数据模型中设定的各种标准。评估的时候可以把这些设计文件判定为系统应用级数据模型。
运行态的载体就是生产环境中的数据库表了。但是在做三态分析的时候会在数据治理平台中将元数据采集至元数据管理子系统中,避免直接连库比对影响生产环境的性能。
三态分析有两种用法:
一是用作企业级数据模型和系统应用级数据模型的一致性检查。就是标准态、设计态和运行态的比对。
二是用作运行态数据模型标准化的常规检查。就是用标准态和不同时间的运行态进行比对。比如最新的标准态和今年年初的运行态,以及当前的运行态进行对比,查看三者的区别,跟踪年初三态分析时发现的问题是否得到调整,以及有没有新的问题。
老彭当年做某部委基础数据库项目的时候,就有这个需求。部委颁发了基础数据标准,各省的建设单位都要遵照执行。这时候就不能简单的靠行政命令这一单一的手段,必须还得有其他办法定期检查各省是否按照标准设计数据模型。
老彭当时可没有数据治理系统,让开发兄弟做了个前台页面,后台各省元数据采集更新、与标准比对等都是老彭用Kettle手搓的。
前台功能中设置任务信息,传入任务执行参数,并调起Kettle程序执行一致性检查任务。Kettle采集元数据,与最新标准进行比对后,把结果输出至数据库中。部信息中心的老师看到结果后,发现问题冒头直接按死,责令限期整改,以确保全国数据模型的统一。
总结
判断企业是否有组织级数据模型和系统应用级数据模型的同步更新机制,可以看是否有数据模型标准同步流程或者操作细则,系统工具层面看是否有元数据标准同步功能。
判断企业是否能确保模型的一致性,可以看是否做了三态分析或者数据模型的一致性检查。
上述两个评估检查工作不仅要看有没有制度流程、系统工具,还要看执行的记录。是否曾经同步过企业级数据模型标准,是否有三态分析报告、数据模型一致性检查报告。作为量化管理级,同时还应该要看是否对查出的问题进行对应的优化调整。
更多精彩:
DAMA、DCMM等数据管理框架各个能力域的内在逻辑是什么?
排版 | 老彭
审校 | 老彭 主编 | 老彭