活动主持人

个人签名

169篇博客

如何建设数据中台?

活动主持人2020-03-11 16:23

建设数据中台,本质上是要减少数据的重复建设,提高数据的共享能力,做好数据的连接,对应的就是 OneDataOneService OneEntity 三个方法论。OneData 要求数仓所有数据只加工一次,对应到数仓的设计层面,要求有统一的维度,对于明细层数据,相同粒度的度量只加工一次,对于汇总层的数据,相同粒度的指标只存在一份。OneService 是统一查询服务,原先数据开发和应用开发的边界是比较模糊的,哪些逻辑应该是由数据开发完成,哪些应该是由应用开发完成,我们甚至发现有些计算是在一个超大的 Redis 集群里面完成海量数据的加工计算,成本非常大,且不能共享。数据服务划清了数据和应用的边界,数据服务提供的是加工好的指标数据,应用通过数据服务,直接获取计算的结果,强制把公共计算逻辑下沉到数据层面,提高了数据的共享能力。OneEntity 主要是解决数据连接的问题,同一个用户,由于用户是否登录,在同一个模型中,可能存在重复的记录,如何识别两个 ID 是同一个用户,做到所有用户只有唯一的 ID 标识,这个是 OneEntity 要解决的问题。

对于三个方法论,我们的经验是必须通过系统化的方式,将规范沉淀到系统中,确保建设的效果。为了支撑数据中台的建设,我们研发了一套全链路大数据产品,网易猛犸 6.0,其架构图如下:


全链路大数据产品网易猛犸 6.0 建立在 Hadoop 基础之上,包括 16 个子产品(上图中绿色模块标识部分),覆盖了数据生产、治理的完整链路,本着“简单易用,举重若轻”的产品设计思想,我们采取了“组件式”的产品设计模式,每个产品都聚焦一个典型的场景,业务可以根据自身的需要,选择性的搭配一些产品应用,解决业务当前面临的问题。同时猛犸 6.0 具备可扩展的产品架构,业务方可以基于该产品提供的基础能力,扩展新的产品。

全链路大数据产品网易猛犸 6.0 在大数据开发、任务运维、数据集成等大数据平台的基础上,主要增加了两个板块,一个是 OneData 体系,它是以元数据中心作为基础的,在元数据中心之上提供了 5 个中台相关的产品:数仓设计中心、数据资产中心、数据质量中心、指标系统和数据地图。

数仓设计中心:按照主题域、业务过程,分层的设计方式,以维度建模作为基本理论依据,按照维度、度量设计模型,确保模型、字段有统一的命名规范。

数据资产中心:主要作用是梳理数据资产,基于数据血缘,数据的访问热度,做成本的治理。

数据质量中心:主要是通过丰富的稽核监控规则,对数据进行事后校验,确保问题数据第一时间被发现,避免下游的无效计算,分析数据的影响范围。

指标系统:管理指标的业务口径、计算逻辑和数据来源,通过流程化的方式,建立从指标需求、指标开发、指标发布的全套协作流程。

数据地图:提供的是元数据的快速检索,数据字典、数据血缘、数据特征信息的查询,相当于元数据中心的一个门户。

另外一个板块就是 OneService 体系,对应的就是数据服务。数据服务对外提供 Restful API,屏蔽底层各种数据源,加工好的指标,导出到 GreenplumMySQLRedisHBase 里面进行查询,数据服务将用户访问的 Restful API 转化为底层对各种数据源的访问。数据服务可以认为是数仓的网关。

在数据服务之上,就是应用层,这里可以分为两类,一类是通用性数据应用,包括报表系统、大屏系统、自助分析系统,本身不具备行业属性,任何业务都可以使用;另一类是行业性的数据应用,比如电商的供应链系统、传媒的舆情系统。在我们的数据中台划分中,通用性的数据应用也被划入了中台的范围内,因为中台本质是提供共性能力,对于数据中台,就是提供共享的数据。