马蜂窝大数据架构详解:小白都能懂的数据仓库与数据中台

图灵汇官网

一、马蜂窝数据中台与数据仓库

近年来,数据中台的概念愈发受到关注。自2018年起,马蜂窝也开始探索自身数据中台的建设。数据中台究竟是什么?是否需要建立?它与数据仓库有何不同?这些问题一直是许多企业关心的焦点。

在我看来,数据中台的概念类似于传统数据仓库与大数据平台的结合。它是企业在积累了数据中心和数据仓库的经验后,通过平台化思维,实现数据更好地整合与统一。因此,数据中台更多体现的是管理理念和架构上的变革。

马蜂窝结合自身业务特点,构建了数据中台,其核心架构如下: [中心对齐][图片][/中心对齐]

在构建数据中台前,马蜂窝已经建立了自己的大数据平台,并积累了一些通用和组件化的工具,这些工具能够支撑数据中台的快速搭建。数据仓库是数据中台的重要组成部分,主要负责数据的一致化建设,包括统一数据模型和目标体系。

二、数据仓库的核心架构

马蜂窝的数据仓库遵循标准的三层架构,采用维度模型设计,专注于业务过程数据的整合。现有的数据仓库主要以离线处理为主,整体架构如下: [中心对齐][图片][/中心对齐]

如图所示,数据仓库分为三个层次:业务数据层、公共数据层和应用数据层,每个层次都有其独特的定位和目标。

三、数据模型设计

3.1 方法选择

数据模型是对现实世界数据特征的抽象,设计方法是对数据进行归纳和概括的过程。业界主要有两种模型设计方法:范式建模(ER建模)和维度建模。前者主张从企业角度自上而下构建数据模型,后者则从业务需求出发自下而上构建数据模型。

在大数据环境中,业务系统数据复杂多变,需求快速响应。为此,马蜂窝采用了“需求驱动为主,数据驱动为辅”的混合模型设计方式,根据不同层次选择合适的模型。

3.2 设计流程

数据仓库模型设计的主要流程包括需求调研、模型设计、开发测试和模型上线四个阶段,并制定了每个阶段的输入和输出文档。

3.3 主题分类

马蜂窝数据仓库基于对各部门和业务系统的梳理,设计了四个大数据域(交易、流量、内容、参与者),并细分为11个主题。

以订单交易模型为例,设计思路是基于业务过程总线,即先调研完整的订单交易流程,确定关键节点,确认各节点发生的核心信息。订单总线的构建需要提炼各节点的核心信息,确保不遗漏关键信息。

订单总线的关键信息包括参与人、发生时间、事件和协议。订单模型不仅要记录核心信息,还要考虑不同粒度的数据模型,以适应不同的应用场景。

基于维度建模的思想,模型整合总线各节点的核心信息后,会进一步扩展常用分析维度,减少分析维度的频繁关联,从而提高模型的运用便捷性。

四、数据仓库工具链建设

为了提升数据处理能力,马蜂窝数据仓库建立了一套工具链,主要包括数据同步工具、任务调度平台和元数据管理工具。

1. 数据同步工具

数据同步工具主要用于从源系统同步数据到数据仓库。马蜂窝的数据同步设计支持灵活的数据接入方式,包括增量抽取和全量抽取,以及对数据存储方式的选择。

2. 任务调度平台

马蜂窝使用Airflow配合自研的任务调度系统,支持常规任务调度及数据重跑、历史补数等功能。任务调度平台设计了“一键重跑”功能,可以根据需要选择性地删除或虚拟执行任意节点的任务。

3. 元数据管理工具

元数据管理在数据建设中起到重要作用,包括技术元数据、业务元数据和管理元数据。元数据管理工具主要分为血缘管理和数据知识管理两部分。

  • 血缘管理可以追溯数据加工的整体链路,解析表的来源和去向,支持下游变更对下游影响的分析和监控。
  • 数据知识管理通过对技术、业务元数据的描述,形成数据知识,提供更好的使用指导。

五、总结

企业的数据建设需要经历三个主要步骤:业务数据化、数据智能化和数据业务化。目前大部分企业仍处于第二个阶段,因为这一步需要足够坚实的基础才能推进下一步。

马蜂窝数据中台建设刚刚起步,核心前提是数据标准化、工具组件化和组织清晰化。数据来源于业务,最终也要应用于业务。只有充分重视数据并将其与业务紧密结合,才能实现数据价值的最大化。

在马蜂窝,从管理层到公司研发、产品、运营、销售等各角色都非常重视数据。数据产品的使用人数占公司员工比例高达75%,用户的广泛使用推动着公司在数据中台建设道路上不断前行。如何利用新兴技术优化数据仓库建设,如何以有限成本高效解决企业在数据建设中遇到的问题,将是马蜂窝不断思考的方向。

本文来源: 图灵汇 文章作者: 长江商学院