会员服务 登录 注册
×
资讯活动

小米数据中台建设实践赋能业务增长!

发布时间:2024-08-13 来源:金属加工

在 2019 年前,小米的中国区、国际部等业务数据团队在进行独立的数仓建设,这个时期是烟囱式的开发。随着业务飞速发展,在集团技术委 ABC(AI、Big data、Cloud)策略的指导下,开始建设统一的销售数仓。在 2020 年,完成了离线销售数仓的建设,同时在筹备实时数仓的建设。2021 年,实时数仓建设完毕,随着后续的业务和技术升级,进入了迭代优化和数据应用阶段。

小米的销售数仓整体上就是存放整个公司销售数据的仓库,包括了订单数据、物流数据、门店数据、用户行为数据及商品数据,并按照维度建模和规范进行建设的高效数据集合。

上图是销售数仓的场景图,数据主要来自于两个部分,一是在线业务数据,主要是订单系统、商品中心(小米的所有商品进行管理的地方)、门店系统(线下门店进行管理的地方)、售后系统和进销存系统。同时也有一些日志采集数据,经过销售数仓的处理,划分为不同的主题进行建设。销售数仓整体会进行元数据管理,目标是做到全域的元数据管理。最上层是数据应用层,包括集团数据看板、三区运营的看板、实时大屏、大促战报和数据挖掘。

销售数仓数据的获取主要通过以下三种方式:

  • 用户通过数据地图进行查询,数据地图中会显示集群、存储介质、表详情、血缘等。
  • 通过数据工场,可以进行数据查询以及任务的开发部署等。
  • 通过数据百科,对数据指标进行管理录入和使用。

数仓的使用形式有多种,包括传统的离线 Hive、数据湖 Iceberg、实时消息队列 Talos、OLAP 引擎、即时查询等。

销售数仓的目标是为公司提供准确好用的销售数据。在区域方面,包含全球的业务;在品类方面,包含手机、笔记本、大家电、生态链等;在渠道方面,包含小米网、商城、米家、三方平台等。我们的日单量在千万级别,每天会处理上亿条日志数据。

二、数仓建设理论

在进行数仓建设时,首先是梳理业务,找到核心业务逻辑,对业务过程进行认识和理解,并在数据库中找到相关的数据表。在此基础上,站在更高维度对业务流和数据流进行汇总和分类,划分好主题域,便于后续的管理。然后进行事实表和维表的梳理,借助数据百科进行指标梳理,以具体的业务为核心,指标与维度同等重要。接下来对数仓进行建模,按照维度建模方式组织数据,在这个过程中需要注意分层和规范。最后就是物理实现,这个环节重点关注的是开发规范、交付物、质量等

接下来介绍数仓分层方式。数仓分层最底层是 ODS 层,它是贴源数据,与业务数据保持一致。在 ODS 之上是 DW 层,DW 层可以细分为两层。一层是 DWD 基础数据,主要做清洗和规范化,不对数仓团队外部开放使用。另一层是 DWM 层通用数据。基于 DWD 的数据做关联和聚合,会将核心的逻辑实现放在这一层,用于提升公共数据的复用性,可以开放给外部团队使用。数仓中还有 DIM 层(维度层),DM 层(宽表层),ADS 层(应用数据层),以及 TMP 层(存放临时表)

在数仓建模过程中,需要遵循以下一些基本的建模原则:高内聚低耦合,公共逻辑下层,成本与性能平衡、一致性、数据可回滚。