数据中台学习之数据体系建设
很久没有写东西了,最近一直在看中台相关的资料,觉得还是有必要记录下来,以便后续参考。集团最近也在大力发展中台建设,中台建设的话,如果是大型互联网公司,一般从双中台开始建设,也就是业务中台+数据中台的模式,像我们这种传统企业,没那么大的技术团队,只能从重要的点开始搞,也就是数据中台,最近老板喜欢听数据价值变现相关的故事,那么数据中台的建设也就顺理成章的开展了。下面就是我画的双中台系统架构图,可以参考(原型见https://www.processon.com/view/5f098500e401fd0c8fff0e6d):
数据体系
搞数据中台之前,一定要了解一些专业的知识,系统性的学习一下相关概念。最近在学习《数据中台》这本书,接触到了数据体系这个词,那么什么是数据体系呢?大概总结了一下,数据中台是整个企业的数据汇聚地,正常情况下业务需要的一切数据都能在数据中台找到,但是数据中台中的数据并不是简单的堆积,各种系统产生的原始数据堆积在一起,使用成本会非常的高,这类数据只能在一些数据技术基础很好的部门去使用,而且经常会出现命名不一、口径不一的情况,从而导致整个企业在数据运用上磕磕绊绊。数据体系,就是在全域原始数据的基础上,进行标准定义及分层建模,最终呈现出一套完整的、规范的、准确的数据应用体系结构,能方便支撑数据的运用。数据体系建设的时候,应该具备以下特征:
覆盖全域数据:数据集中建设,覆盖所有业务的所有过程数据,业务总能在数据中台中找到所需要的数据。
结构层次清晰:不管是纵向的数据分层,还是横向的主题域、业务过程划分,让整个层次结构清晰容易理解。
数据准确一致:定义一致性指标,统一命名、统一业务含义、统一计算口径,并有专业的团队负责数据建模,保证数据的准确一致。
性能保证:统一的规划设计,选用合理的数据模型,清晰地定义并统一规范,并且考虑使用场景,使整体性能更好。
降低成本:数据体系的建设,使得数据层面能被业务共享,这避免了大量烟囱试的重复建设,节约了计算、存储和人力成本。
方便易用:易用的总体原则是越往后,时间越长,积累越多,越能直接的使用数据服务,把一些复杂的处理尽可能前置,必要时候做适当的冗余处理。例如在数据的使用中,可以通过维度冗余和事实冗余来提前进行相关处理,以避免使用时才计算,通过公共计算下沉、明细与汇总共存等为业务提供灵活性。统一数据体系的建设,让整个企业的业务都有机会使用数据。
数据体系的建设,需要一个体系化的数据层次架构,这个层次架构定义了数据的分层以及每一层模型的建设规范,下面是一个相对来说比较标准的数据体系架构:
贴源数据层ODS:(Operational Data Store)这一层是直接与业务系统挂钩的一层,相当于把业务系统的表结构和数据完整的搬到数据中台里面来,只是要换一下表名。这里要注意一下,ODS层的表结构基本不需要改变,但是可以加一些额外的字段,例如数据更新日期,数据描述。ODS层的表最好保留原始业务数据,不要做深度清洗。
统一数仓层DW:(Data Warehouse)DW数仓层下级又分成了明细数据层DWD(Data Warehouse Detail)与汇总数据层DWS(Data Warehouse Summary),与数据仓库功能基本一致,是对全部历史业务数据进行建模存储。统一数仓层存在的意义是让业务数据更容易理解,其定义了一致的指标与纬度,各业务板块按照统一的规范独立建设,从而形成统一规范的标准业务数据体系。
标签数据层TDM:(Tag Data Model)面向对象建模,对跨业务板块、跨数据域的特定对象数据进行整合,通过ID-Mapping把各业务板块、各业务过程的同一对象数据打通,形成对象的全域标签体系,方便数据深度的分析、挖掘与应用。
应用数据层ADS:(Application Data Store)按照业务的需要,从统一数仓层、标签数据层抽取数据,并面向业务的特殊需要加工业务特定数据,以满足业务及性能需求,向特定应用组装应用数据。
注意,数据的来源有严格的规范:
1、贴源数据层的数据应当直接来源与业务系统或者日志系统。
2、贴源数据层的数据应当只被统一数仓层使用。
3、统一数仓层数据只被标签数据层与应用数据层使用。
4、贴源数据层与统一数仓层只保存历史业务数据,不能被业务直接使用。
5、所有业务使用的数据应当均来源于标签数据层和应用层。