1. 电商业务流程概述

电商系统的核心业务流程围绕用户购物旅程展开。用户从浏览首页开始,通过分类查询或全文搜索找到目标商品,查看详情后加入购物车,登录并结算生成订单,完成支付后进入订单跟踪阶段,直至订单完结或触发售后流程。

整个流程涉及商品管理、购物车管理、订单管理、支付服务、物流跟踪、售后管理等多个子系统,底层由数十张业务表协同支撑数据流转。

电商业务流程

2. 核心业务概念

2.1 SPU 与 SKU

概念 全称 含义
SPU Standard Product Unit 商品信息聚合的最小单位,代表"一类商品"。例如"iPhone X"是一个 SPU
SKU Stock Keeping Unit 库存量基本单位,代表"一个具体规格的商品"。例如"银色 128G iPhone X"是一个 SKU

同一 SPU 下的不同 SKU 共享商品图片、描述等信息,但在价格、库存等维度上独立管理。

2.2 平台属性与销售属性

  • 平台属性:用于商品筛选和检索的属性,如品牌、屏幕尺寸、CPU型号、分辨率等。这些属性帮助消费者在搜索结果中精准定位商品。
  • 销售属性:决定具体 SKU 的属性,如颜色、存储容量等。用户选择不同的销售属性组合,对应不同的 SKU,进而影响价格和库存。

3. 业务数据表结构

本系统以五大核心表为中心向外辐射:

3.1 五大核心表

说明 主要关联
订单表 关联用户、支付、订单明细、订单状态、退单
用户表 关联订单、购物车、收藏、优惠券领用、收货地址
SKU商品表 关联SPU、订单明细、购物车、收藏、活动、销售属性、平台属性
活动表 关联活动规则、活动商品、订单明细活动关联
优惠券表 关联优惠券范围、优惠券领用、订单明细优惠券关联

3.2 表关系分层

按业务域可将表分为以下几类:

业务域 作用
商品域 描述商品从品类→SPU→SKU的层级结构,以及平台属性和销售属性
交易域 覆盖下单→支付→状态流转的完整交易链路
用户域 用户基本信息、收货地址、购物车、收藏、评价
营销域 满减/折扣活动、优惠券的创建、领用、核销全链路
售后域 退货退款申请与退款支付
基础维度 地区、字典等维度数据

4. 数据采集架构

4.1 采集方案设计

业务数据的核心特征是需要实时捕获数据库变更(INSERT/UPDATE/DELETE),而非简单的全量导出。因此采用 CDC(Change Data Capture) 方案,基于 MySQL Binlog 实现增量数据实时采集。

采集链路:

MySQL Binlog → Maxwell → Kafka (topic_db) → 下游消费(Flink/Hive等)

数据采集架构

4.2 为什么选择 Maxwell

特性 说明
轻量部署 单进程运行,无需额外依赖,开箱即用
基于 Binlog 伪装为 MySQL Slave,通过主从复制协议读取变更,对业务库零侵入
JSON 输出 每条变更记录包含 database、table、type、data、old 等完整信息
断点续传 在 MySQL 中维护元数据,记录同步位点,异常重启后自动续传
多输出目标 支持 Kafka、Kinesis、Redis、RabbitMQ、File 等多种 Sink

4.3 关键配置要点

配置项 说明
binlog_format=row Maxwell 要求 MySQL Binlog 必须为 Row 模式,保证数据一致性
producer=kafka 指定数据输出到 Kafka
kafka_topic=topic_db 所有表的变更数据统一写入同一 Topic(也可按 %{database}_%{table} 动态分配)
producer_partition_by=primary_key 按主键分区,确保同一行数据的变更进入同一分区,保证顺序性
filter=exclude:xxx 按需过滤不需要采集的表

4.4 增量同步输出格式

Maxwell 将每次数据库变更解析为一条 JSON 消息,关键字段:

  • database / table:定位变更来源
  • type:变更类型(insert / update / delete)
  • data:变更后的完整行数据
  • old:仅 update 时存在,仅包含被修改的字段旧值
  • xid + commit:事务标识,可用于事务级数据重组

4.5 全量同步(Bootstrap)

对于历史存量数据或新增表的初始同步,Maxwell 提供 Bootstrap 机制:

maxwell-bootstrap --database gmall --table user_info --config config.properties

Bootstrap 过程产生三种类型的消息:

type 含义
bootstrap-start 全量同步开始标记
bootstrap-insert 每一行历史数据
bootstrap-complete 全量同步完成标记

注意:一次 Bootstrap 输出的所有记录 ts 相同,均为 Bootstrap 开始时间。消费端可据此区分全量数据与增量数据。

5. 数据建模工具

在梳理表的复杂关系时,可借助 EZDML 数据库建模工具进行可视化管理:

  • 连接 MySQL 数据库,批量导入表结构
  • 通过拖拽建立表间关联(主键-外键关系)
  • 直观展示表结构的 ER 图,辅助理解数据血缘

该工具不直接参与数据采集流程,但在数据仓库建模阶段对于理清表关系、设计维度模型有重要参考价值。

6. 总结

电商数仓业务数据采集平台的核心任务是:

  1. 理解业务:掌握电商从浏览→下单→支付→售后的完整链路
  2. 理清数据:表围绕订单、用户、商品、营销四大核心展开,通过外键关联形成完整数据网络
  3. 实时采集:通过 Maxwell + Kafka 的 CDC 方案,实现业务数据变更的零侵入、实时、可靠采集
  4. 全量+增量:Bootstrap 解决历史数据初始化,Binlog 监听保证持续增量同步

这套采集方案为下游数仓分层(ODS → DWD → DWS → ADS)提供了稳定、实时的数据输入,是整个电商数仓建设的基石。

Logo

电商企业物流数字化转型必备!快递鸟 API 接口,72 小时快速完成物流系统集成。全流程实战1V1指导,营造开放的API技术生态圈。

更多推荐