首先澄清数据建模(Data Modeling)的概念
这里指的是数据库建模,不是数学模型
笔者在上大学时接触了数据库设计,当时正是关系数据库如日中天的时代,随着计算机技术的普及,关系数据库作为整个软件应用的基础,迅速成长起来,出现了Oracle这样的巨头。为了有更加优良和标准的数据库开发,重视管理的西方企业使用Erwin/PowerDesigner这样的工具。那么,数据建模在当前大数据时代是否还需要呢?这里笔者和大家分享讨论一下。
当前现状
最近通过笔者与多家企业的交流发现,数据库建模依然需要,而且具有一些新的发展趋势。过去中国的软件环境都是以满足企业业务系统的软件项目为主,比较少见通用型工具。现在中国的企业基本完成信息化建设,正在向数据驱动精细化转型。如何利用好数据是当前企业的内在需求,数据治理是一个企业的数据运营的转型的必要过程,而数据模型是数据治理的关键一环。 其在新时代下有如下内在需求:
一、数据标准落地到物理模型
目前流行的建模工具都开发于20年前,其主要解决的问题是数据库设计的优化。
而今天,现在中国的企业基本完成信息化建设,正在向数据驱动的精细化转型,重点是数据应用。如何将物理数据语义化,发现其中的关联,是要发挥数据价值的第一步。有经验的企业做了数据标准,却又担心这个标准会成为无人使用的文档。于是有先进的企业找到我们,希望将标准落实模型上,天然的体现这个映射关系,并使用智能的方法,在开发过程中,推进数据模型层面来推进数据标准的落地使用,而这是传统的建模工具不能方便做到的一点。
这是一个非常有意义的想法,因为基础数据模型本身就是连接业务逻辑层和物理数据层的载体,通过我们开发这样的模型工具,使数据标准渗透到开发过程中,数据标准也成为活水源头,最终构成企业内部业务和研发沟通的重要渠道,打造数据治理的良性循环。
二、面向业务模型的数据架构
很多企业有数据字典却没有基础数据模型,有物理模型却没有逻辑模型,更没有业务模型。企业的数据管理和分析部门,以前都是使用一些类似MIS系统的元数据管理工具来满足这个需求。通过实践,我们发现很多家企业对于这样的元数据系统利用率非常忧虑。
这一点现在市场上的元数据系统很难做到:
开发人员不用,直接看数据库,业务人员很少用,因为文档式的元数据帮助实在不大。核心业务分析人员需要了解的是我有什么数据,数据是如何关联的,需要可视化数据的关联关系来帮助理解数据。
对数据建立统一的业务数据模型,让更多的业务专家理解我们的数据是什么,这对于数据的应用至关重要。所以模型工具需要加强业务概念模型的支持和应用,这样企业的领导层和业务层也能了解数据概况,驱动数据的创新和利用率。
三、数据治理的监管需求
我接触的企业的业务系统都是多达几十套,加上线下的数据仓库的几套数据流的数据库,所有大企业的数据开发是很复杂的,上下游往往是不同部门,不同团队负责。一旦上游数据有修改,下游的数据产品如果得到变更通知,会经历高成本沟通和修改,没有得到通知可能会导致数据出错,造成严重影响。
如何避免这一问题?我认为有几个方面可以着手
元数据变更管理,要严格控制变更的入口,避免任意的执行sql的失控情况。开发应该贯彻模型一条路,发布更改的流程要跟上,遵从最终结果一致性原则。这里的最终结果是生产数据库和对应的数据模型。变更DDL作为附属产物,记录在变更流程中。
做好事后的数据血缘,这个毋庸多说,关键是如何让血缘实时的发挥作用,因为对影响发现越早,成本越小。
目前市场上的建模工具都还在单兵工具的层面,面向数据管理的内建集成都要靠二次开发。我见过有些企业上了数据地图系统,用来统一管理元数据。而开发部门用的是模型工具,最终还要二次开发来同步和比较两套系统,费时费力。所以现代建模工具应该内建支持这些变更控制,变化自动比较和报告,自动发布数据变更影响报告等功能,使数据变更流程简化,数据监控更好落地推行。
四、数据模型的纯粹化
同20年前相比,我们对关系数据库的依赖变小了,过去二十年来,我们发现关系数据库功能越来越多,比如trigger,stored procedue,还有各种性能优化的特性都内建支持了。然而,物极必反,在最近大数据和微服务的发展趋势下,以前在trigger/SP中的复杂逻辑都挪向应用层和服务层,数据实体的外键关系都不在物理层实现,以换取更好的迁移性,伸缩性等。
我接触的很多企业,已经把禁止使用Trigger/SP和外键关联作为数据规范来推行。所以今天数据模型设计应该尽量少的使用数据库的内建特性,尽量把数据计算和转换下沿至数据缓存层,使模型成为纯粹的数据结构模型,面向业务设计,使物理模型具备传统逻辑模型一样的简单化和业务化,以适应当前分布式和微服务化的趋势。另外,因为物理层外键关联的故意缺失,使得模型变的更加重要,成为数据库设计的最好的文档,是数据资产最重要的传承。
结语
无论未来数据分析发展什么程度,数据模型作为企业级元数据载体,都是应该受到重视的,而面向未来的模型工具也应该适应新的形势,帮助数据的设计优化,应用优化和分析优化,做好管理部门,业务部门和IT部门的沟通桥梁!
———— / END / ————
感谢阅读本文章,欢迎留下评论及个人见解!
原创文章作者
朱金宝CTO
目前供职于北京数语科技有限公司,实施了多家大型企事业单位的数据治理项目,有丰富的企业数据管理工具开发经验。前ERwin总架构师,10年ERwin研发经验,负责产品全生命周期的发布,丰富产品发布和架构设计经验,多个大数据建模专利所有者和技术文章作者。
领取专属 10元无门槛券
私享最新 技术干货