治理要从数据建模抓起 | 京东云技术团队
数据治理是对数据管理权力的执行和落实。数据建模可以被认为是对数据定义权力的执行和实施。数据建模这门学问涉及到在"正确"的时间,由"正确"的人,为组织定义"正确"的数据, 这就是数据治理的本质。
创建数据模型的动因有很多。一般包括遵循数据标准、减少冗余、符合业务规则、数据整合以及数据资产化等。但是,笔者认为建立数据模型的根本原因是为组织贯彻数据纪律。
“令行禁止,王者之师。”纪律是一支军队的命脉。大凡能征善战的军队,无不是“军令如山,守纪如铁”。河流没有堤坝的约束,必然横流无羁。数据没有纪律的约束,必然是散沙一盘。
数据治理就是数据建模,或者说数据建模是数据治理万丈高楼的地基。因为它是确保数据设计符合纪律的主要抓手。 数据模型可以约束垃圾数据的进出 ,包括对数据类型的约束、对数据格式的约束、对取值范围或取值集合的约束、对空值的约束、实体完整性约束、引用完整性约束、函数依赖约束、统计约束、修改列定义时的约束、修改列值时的约束等。数据标准从源头落地,可以减少数据的处理成本,永绝后患,缺点是对于老系统存在较大改动风险和成本。 笔者认为,应该将数据标准和数据建模合为数据治理的一个领域。 作为不同的领域单独管理很容易造成标准难以落地,二者结合的实在是太紧密了,数据建模之前需要数据标准的输入,而数据标准必须在企业数据模型中落地才能发挥它的作用。
根据典记,魏文王曾求教于名医扁鹊:“你们家兄弟三人,都精于医术,谁是医术最好的呢?”扁鹊:“大哥最好,二哥差些,我是三人中最差的一个。”魏王不解地说:“请你介绍的详细些。”扁鹊解释说:“大哥治病,是在病情发作之前,那时候病人自己还不觉得有病,但大哥就下药铲除了病根,使他的医术难以被人认可,所以没有名气,只是在我们家中被推崇备至。我的二哥治病,是在病初起之时,症状尚不十分明显,病人也没有觉得痛苦,二哥就能妙手回春,使乡里人都认为二哥只是治小病很灵。我治病,都是在病情十分严重之时,病人痛苦万分,病人家属心急如焚。此时,他们看到我在经脉上穿刺,用针放血,或在患处敷以毒药以毒攻毒,或动大手术直指病灶,使重病人病情得到缓解或很快治愈,所以我名闻天下。”事后控制不如事中控制,事中控制不如事前控制。 数据建模做的正是事前控制, 让数据在产生之初就是符合规范和标准的,这样在后期有些数据质量问题根本就不会出现了。
不对数据进行建模的组织,更难提高从数据中获得的价值,因为他们的数据会充满不一致和误解。这种高度的不准确性,正在导致数据债务的大问题。问任何一个未对数据进行建模的组织: “你们的数据是否得到了治理?” 答案肯定会是 "没有" 。
数据建模是一门数据学科。通过这门学科,我们能够按照标准设计组织的数据结构,减少冗余并建立有用数据业务定义。 包括数据质量标准和度量规则、元数据及数据安全等定义都可以在这一过程中一并完成。
当然,数据建模的使用在不同的组织中差异很大。有的做得很好,有的做得就不那么好。 不好的数据模型有十宗罪 :第一宗罪是没有准确的捕获到需求;第二宗罪是数据模型不完整;第三宗罪是各层模型与其扮演角色不匹配;第四宗罪是数据库结构不合理;第五宗罪是抽象化不够,造成模型不灵活;又或过于抽象化,带来程序开发的困难;第六宗罪是没有或者不遵循命名规范;第七宗罪是缺少数据模型的明确定义和描述;第八宗罪是数据模型可读性差;第九宗罪是元数据与数据不匹配;第十宗罪是数据模型与企业标准不一致。
同时, 面对不同的对象,应该设计不同的数据模型 。比如,和业务用户沟通时应该设计比较易于理解的模型(图1)。模型开发工程师真正在系统中实现的应该是更加抽象的模型。
![](https://s3.cn-north-1.jdcloud-oss.com/shendengbucket1/2022-08-24-17-58kB758YGdbZXSbasx.png)
每个项目可以由一个或多个阶段构成,每个阶段可以由一个或多个任务构成。该模型适用于和项目经理讨论问题,它可以帮助数据建模工程师清晰地阐明数据需求和概念。但是如果使用这个模型来建物理表是有问题的,因为如果层级架构有变化(比如项目之上再增加一层年度工作计划),将导致数据模型失效,需要更改数据模型,而这会造成重大的返工。
![](https://s3.cn-north-1.jdcloud-oss.com/shendengbucket1/2022-08-24-17-59R598BCVFfVJeNOUr.png)
上图才是工作计划数据模型非常全面的方案,它采用了递归的方法维护了关联分类和规则,比如:一项任务可能属于多个阶段,任务之间也是分优先级的(比如有前置任务、并行任务等),除了项目、阶段和任务未来可能还会有计划等类型。这个模型非常灵活,能够避免因数据冗余的造成的数据质量问题,特别适用于那些业务规则驱动的企业。但是这个模型对于业务人员来说,却过于抽象和复杂。
开发企业数据模型往往是一项艰巨的任务,因为数据建模是学习数据的过程,也是一个用于定义和分析支持组织中信息系统内的业务流程所需的数据需求的过程。在数据建模的过程中,专业的数据建模人员需要与业务利益相关者以及数据和信息系统的潜在用户紧密合作。
企业数据模型既是整个组织数据和数据质量改进的起点,也是定义和满足企业整体数据需求的起点, 完成这项艰巨的任务, 无论付出多大的努力都是非常值得的 。
作者:京东科技 李然辉
来源:京东云开发者社区 转载请注明来源