构建数据中台
三丰 soft张三丰
架构 中台的本质是能力共享,就像任何程序员都了解代码需要复用一样。复用的代码通过服务、jar、类等方式在项目中复用,在中台实践过程中,复用的能力需要组织机构赋能,需要从组织层面认可并推广中台能力,需要有一套标准、方法论引导企业内各个组织沉淀能力、共享能力、运营能力。
苏宁数据中台
苏宁数据中台是一个大项目群:
-
OLAP 是底层的加速、查询引擎,底层支持 Druid、ES、PGCitus 集群,类似 Presto,跟 Presto 不同的是 OLAP 会主动对数据进行 Cube 预加速。
-
百川是指标平台层,让用户建模、定义指标,对外提供指标查询服务。百川主要支持的建模方式是:星型模型。数据建模自然离不开维表维度,UDMS 系统就是来定义、管理所有维度、维表,目前收录了整个集团近 200 多个维度,对外提供维度、维表信息服务。
-
天工是类似 Tableau、Superset 的可视化报表设计平台,与这些 BI 软件最大的不同点是,天工基于百川的指标、UDMS 的维度来制作报表,数据来源已经高度标准化、归一化。目前商业报告分析工具:Cognos、阿里 QuickBI 等,是将数据建模、可视化设计能力放到一起,这是天工与它们的最大区别。
-
慧眼,是统一报表门户,所有的报表统一发布到慧眼面向业务。慧眼最大的挑战在于报表权限管控与自动匹配,总共 4000 多张报表,用户 2w 多,一张报表开放给8000+人员是很常见的。所有这一切靠人工维护,既容易出错又不利于数据安全,也不能及时响应用户需求,这些都是慧眼系统要解决的问题。
数据中台对一个企业,起着至关重要的作用。在数据中台这个称谓成型之前,各个企业也都在用不同的方式来尽可能地利用数据产生价值。只是在这个过程中,也不得不处理着数据带来的各种问题,比如各个业务系统经年累月以烟囱架构形式存在而导致的数据孤岛、数据隔离、数据不一致等等。数据中台对企业的真正意义是,让传统企业向科技企业升级,让IT系统集成向大数据集成升级,让工具/流程/管理向驱动业务运营升级。
在阿里中台概念的引领下,很多企业也提出了自己的“中台战略”。如把内部一些通用性技术平台、支撑系统打包在一起,称之为技术中台;把一些大的业务服务系统,逻辑上集中起来称之为业务中台;或干脆把现有的数据仓库、数据治理平台、数据运维平台整合称之为数据中台;还有一种更简单的方式,就是把以前内部IT支撑系统的后台直接改名,与数据相关的部分就叫数据中台,与业务耦合度较紧密的就叫业务中台。以上定义,各有各有道理,但有一点大家都有一致的意见,就是建立中台的目的在于:减少冗余,增加复用,快速响应用户需求。
一般来说,数据中台是指企业利用大数据技术,对内外部海量数据统一进行采集、计算、存储,并使用统一的数据规范进行管理,数据规范包括数据口径、数据模型、元数据规范、参考数据标准、主数据标准、业务规则等。更进一步,广义的数据中台,还包括企业长期积累下来与业务有较强关联性的一些技术组件,如业务标签,算法模型,数据产品等。数据中台的主要作用在于将企业内部所有数据统一处理形成标准化数据,挖掘出对企业最有价值的数据,构建企业数据资产库,对内对外提供一致的、高可用大数据服务。
一种理想的数据中台架构
企业建设数据中台的最终目标还是赋能业务,服务用户。数据中台的建设也不应该只是一个口号,一次运动,或一个项目,而是需要企业不断去投入资源、迭代更新,通过数据中台的建设,驱动企业业务创新和发展。企业建设数据中台,可以通过合理规划、复用内部现有已经完善的大数据处理工具来支撑建设,充分借鉴业界数据中台建设实践,从核心需求出发,以某垂直业务的数据入手,打通数据采集、存储、计算、治理、服务的工作全流程,逐步扩展到全域数据的接入、加工和管理,建设起自有的数据中台。 数据中台包括哪些内容,做哪些事情,图2是笔者理想中的数据中台架构。共分为五个大的功能组成。 数据采集。为数据中台提供汇集数据的能力,应提供统一的数据获取接入方式,数据来源包括内部数据和外部数据,数据类型应支持结构化和非结构化数据采集。传统的ETL工具仍然可以复用,实现数据采集、转换、加载等关键处理过程。采集方式上应能支持对周期性接口文件的批量采集,对产生频率高、实时性强的数据以数据流形式采集,针对企业外部互联网数据,使用网页爬虫自动抓取的方式采集。 数据计算。为数据中台提供统一的大数据计算能力,针对不同大数据处理场景,所需提供的数据计算能力也不同,一般主要包括批量离线计算(如MapReduce)、内存计算(如Spark、Ignite)、在线流式计算(如Storm、Samza、Spark Streaming、S4)等。特别是人工智能技术的广泛发展和应用,基于大数据对机器学习算法模型的训练工具(如Mahout、Spark MLib、Caffe、Keras、TensorFlow)也可以归为数据计算工具的类别。 数据存储。数据中台中全域数据的存储中心,按照不同的数据类型,可以采用图2中一种或多种数据存储系统的“混搭”架构。传统数据仓库(如DB2/ORACLE/Teradata)是最为成熟稳定的数据存储方式,承载着及时性、准确性要求高的企业核心应用。分布式关系数据库,也常简称为MPP数据库,相较于传统的关系型数据库,具有高性能处理能力、高数据吞吐能力的优势。NoSQL分布式数据库属于非关系型数据库管理系统,在大数据简单存取上具备关系型数据库无法比拟的性能优势。分布式文件系统(HDFS)是当前最常见的大数据存储方式,它具极高的性价比,扩展性强。数据湖作为一种新的存储大量复杂格式数据,避免企业数据孤岛化的数据架构方案,可用来将不同结构的数据统一聚合和存储。 数据治理。亦称之为数据资产管理,指的是为了实现对企业中数据资产价值的获取、管控、交付等目的,基于制定的数据规范,对数据资产所做的一系列管理活动。数据标准管理指对数据口径、公共术语、参考数据、数据编码等制定和实施标准化的管理活动。数据模型管理负责对系统中核心的逻辑模型、物理模型、数据库表、字段、视图等进行统一管控、促进其规范化。元数据管理的作用是统一管理所有业务系统元数据,包括业务元数据、技术元数据、流程元数据和数据管理制度元数据。数据质量管理,指运用质量管理技术稽核、度量、评估和改进数据的质量水平。数据安全管理,指通过制定和执行数据安全政策和措施,为数据提供的认证、授权、审计等安全管理能力。 数据服务。包括了与业务相关的、可复用的一些公共技术组件或产品,如数据目录、数据标签、数据分析、数据开放接口、机器学习算法模型等,它们可以使用SAAS方式直接对外提供服务,也可以以更小粒度如API、消息接口、文件接口、服务接口、SDK软件包等方式只提供组件能力或数据服务,内部或外部第三方应用不必关心底层数据准备情况,直接调用数据服务模块对外提供的服务接口,就可以方便进行二次开发,借以增强自身的能力。 以上五个功能部分中,数据采集、数据计算、数据存储三部分能力,企业已经都有现成的一些积累,不需要重复开发,只要合理规划进行统一,就很容易获取和建设起来。数据治理的能力,常常分散在各个支撑系统中,需要统一抽取出来,对以前考虑不全的内容需要补充。数据服务能力,则更多是与业务关联的、复用性较好的应用组件,需要企业长期提炼、积累和优化。
数据中台架构图 数据中台的目标是让数据持续用起来,通过数据中台提供的工具、方法和运行机制,把数据变为一种服务能力,让数据更方便地被业务所使用。下图所示为数据中台总体架构图,数据中台是在底层存储计算平台与上层的数据应用之间的一整套体系。数据中台屏蔽掉底层存储平台的计算技术复杂性,降低对技术人才的需求,让数据的使用成本更低。通过数据中台的数据汇聚、数据开发模块建立企业数据资产。通过资产管理与治理、数据服务把数据资产变为数据服务能力,服务于企业业务。数据安全体系、数据运营体系保障数据中台可以长期健康、持续运转。