近年来,数据中台的概念愈发受到关注。自2018年起,马蜂窝也开始探索自身数据中台的建设。数据中台究竟是什么?是否需要建立?它与数据仓库有何不同?这些问题一直是许多企业关心的焦点。
在我看来,数据中台的概念类似于传统数据仓库与大数据平台的结合。它是企业在积累了数据中心和数据仓库的经验后,通过平台化思维,实现数据更好地整合与统一。因此,数据中台更多体现的是管理理念和架构上的变革。
马蜂窝结合自身业务特点,构建了数据中台,其核心架构如下: [中心对齐][图片][/中心对齐]
在构建数据中台前,马蜂窝已经建立了自己的大数据平台,并积累了一些通用和组件化的工具,这些工具能够支撑数据中台的快速搭建。数据仓库是数据中台的重要组成部分,主要负责数据的一致化建设,包括统一数据模型和目标体系。
马蜂窝的数据仓库遵循标准的三层架构,采用维度模型设计,专注于业务过程数据的整合。现有的数据仓库主要以离线处理为主,整体架构如下: [中心对齐][图片][/中心对齐]
如图所示,数据仓库分为三个层次:业务数据层、公共数据层和应用数据层,每个层次都有其独特的定位和目标。
数据模型是对现实世界数据特征的抽象,设计方法是对数据进行归纳和概括的过程。业界主要有两种模型设计方法:范式建模(ER建模)和维度建模。前者主张从企业角度自上而下构建数据模型,后者则从业务需求出发自下而上构建数据模型。
在大数据环境中,业务系统数据复杂多变,需求快速响应。为此,马蜂窝采用了“需求驱动为主,数据驱动为辅”的混合模型设计方式,根据不同层次选择合适的模型。
数据仓库模型设计的主要流程包括需求调研、模型设计、开发测试和模型上线四个阶段,并制定了每个阶段的输入和输出文档。
马蜂窝数据仓库基于对各部门和业务系统的梳理,设计了四个大数据域(交易、流量、内容、参与者),并细分为11个主题。
以订单交易模型为例,设计思路是基于业务过程总线,即先调研完整的订单交易流程,确定关键节点,确认各节点发生的核心信息。订单总线的构建需要提炼各节点的核心信息,确保不遗漏关键信息。
订单总线的关键信息包括参与人、发生时间、事件和协议。订单模型不仅要记录核心信息,还要考虑不同粒度的数据模型,以适应不同的应用场景。
基于维度建模的思想,模型整合总线各节点的核心信息后,会进一步扩展常用分析维度,减少分析维度的频繁关联,从而提高模型的运用便捷性。
为了提升数据处理能力,马蜂窝数据仓库建立了一套工具链,主要包括数据同步工具、任务调度平台和元数据管理工具。
数据同步工具主要用于从源系统同步数据到数据仓库。马蜂窝的数据同步设计支持灵活的数据接入方式,包括增量抽取和全量抽取,以及对数据存储方式的选择。
马蜂窝使用Airflow配合自研的任务调度系统,支持常规任务调度及数据重跑、历史补数等功能。任务调度平台设计了“一键重跑”功能,可以根据需要选择性地删除或虚拟执行任意节点的任务。
元数据管理在数据建设中起到重要作用,包括技术元数据、业务元数据和管理元数据。元数据管理工具主要分为血缘管理和数据知识管理两部分。
企业的数据建设需要经历三个主要步骤:业务数据化、数据智能化和数据业务化。目前大部分企业仍处于第二个阶段,因为这一步需要足够坚实的基础才能推进下一步。
马蜂窝数据中台建设刚刚起步,核心前提是数据标准化、工具组件化和组织清晰化。数据来源于业务,最终也要应用于业务。只有充分重视数据并将其与业务紧密结合,才能实现数据价值的最大化。
在马蜂窝,从管理层到公司研发、产品、运营、销售等各角色都非常重视数据。数据产品的使用人数占公司员工比例高达75%,用户的广泛使用推动着公司在数据中台建设道路上不断前行。如何利用新兴技术优化数据仓库建设,如何以有限成本高效解决企业在数据建设中遇到的问题,将是马蜂窝不断思考的方向。