Loading......

文章背景图

🌏 电商数仓项目全链路架构详解

2025-10-28
41
-
- 分钟

本文从整体视角出发,讲解项目的全链路数据处理体系,包括 项目整体架构数据采集流程数仓分层设计 三大核心部分。
目标是实现从数据产生、采集、存储到价值输出的完整数据闭环。


🧩 一、项目整体架构(Data Architecture Overview)

整个系统以 “数据驱动业务决策” 为核心目标,采用分层式数据架构,将数据的生命周期划分为五个阶段:
数据产生 → 采集与存储 → 数据仓库 → 数据服务 → 可视化呈现


1️⃣ 数据产生层

  • 📱 来源:主要由安卓端与业务服务器交互产生的业务数据。

  • 💾 类型:包括用户行为日志、交易流水、系统运行日志等。

  • 这些数据构成整个数据体系的“原材料”,是后续所有分析的基础。


2️⃣ 数据存储与采集层

  • 存储模块

    • 🗄️ 数据库:存放结构化业务数据(如 MySQL)。

    • 📂 文件存储:存放非结构化或半结构化数据(如日志文件)。

  • 采集模块

    • DataX:负责数据库全量同步(离线批量)。

    • Maxwell:监听 MySQL Binlog 实现实时增量同步。

    • Flume(双实例):采集日志数据,实现流式采集。

  • 所有采集数据最终 统一汇聚到 HDFS,构建企业级数据湖。


3️⃣ 数据仓库层(Hive 为核心)

  • 构建在 HDFS 之上,采用 Hive 实现数据的结构化与逻辑分层。

  • 实现 贴源、加工、统计、分析 多层次的数据治理体系。

  • 为上层应用提供标准化、高质量的数据支撑。


4️⃣ 数据服务与可视化层

  • 将 Hive 中的数据同步至 MySQL,作为中间层数据库。

  • 通过 可视化系统(如 Superset、FineBI 或 ECharts) 呈现业务指标与报表。

  • 实现从底层数据到业务价值的“闭环转化”。


🔄 二、数据采集流程(Data Ingestion Pipeline)

数据采集是整条链路的“入口”,负责将多源数据高效、安全地汇入 HDFS。
系统支持两种主要采集模式:全量数据采集增量 / 日志采集


💾 1️⃣ 全量数据采集流程(MySQL → HDFS)

阶段

工具 / 组件

功能描述

数据提取

DataX(mysqlreader)

从 MySQL 拉取全量数据

数据写入

DataX(hdfswriter)

将数据写入 HDFS

流程调度

Shell 脚本(full.sh)

自动调度执行全量同步任务

💡 该模式适用于周期性全量备份或基础数据初始化。
输出路径示例:/2023-10-10/


⚡ 2️⃣ 增量与日志数据采集流程

(1)MySQL 增量数据采集

流程环节

工具

功能描述

Binlog 捕获

Maxwell

实时监听数据库变更(Insert/Update/Delete)

数据传输

Kafka(mxw.sh)

以 JSON 格式传输增量消息

数据消费与落地

Flume(f3.sh)

消费 Kafka 数据并写入 HDFS

✅ 实现数据库的实时变更同步,保证数据时效性。


(2)日志数据采集(LogServer → Kafka → HDFS)

流程环节

工具

说明

日志采集

双实例 Flume(lg.sh)

并行采集日志数据

消息传输

Kafka(f1.sh)

缓存与分发日志流

数据落地

Flume(f2.sh)

消费日志 topic 并写入 HDFS

💬 日志链路设计注重高并发与高可靠性,确保日志不丢失。


🧠 3️⃣ 实时支撑组件与调度体系

组件

作用

启动脚本

Kafka

高吞吐消息队列

kf.sh

ZooKeeper

Kafka 元数据协调与分区管理

zk.sh

Flume

数据采集与传输

f1.sh / f2.sh / f3.sh

Shell 脚本体系

流程调度与容错控制

mxw.shlg.shfull.sh

🔁 所有流程通过脚本自动化执行,支持定时调度与失败重试机制。


🏗️ 三、数据仓库分层设计(Hive Data Warehouse Layers)

数据仓库(Data Warehouse,简称 DW)是整个大数据架构的“核心中枢”,
承担着数据治理、加工、整合与服务的任务。

Hive 数据仓库采用 四层逻辑分层设计,从贴源到分析逐步演进:


🟡 1️⃣ 贴源层(ODS,Operational Data Store)

  • 定义:存储与业务系统对应的原始数据,保持数据原貌。

  • 特点:不做任何清洗,仅做轻度格式化(如字段标准化)。

  • 作用:数据追溯、问题排查的基础层。

示例路径:

/warehouse/ods/order_info/dt=2025-10-10/

🔴 2️⃣ 加工层(DW / DWD,Data Warehouse Detail)

  • 定义:对 ODS 数据进行清洗、去重、转换、整合。

  • 目标:形成标准化的主题数据(如用户主题、订单主题)。

  • 处理逻辑

    • 统一数据格式(时间戳、地区编码等);

    • 异常数据剔除;

    • 主键冲突处理。

示例:

CREATE TABLE dwd_order_info AS
SELECT order_id, user_id, amount, status, create_time
FROM ods_order_info
WHERE status IS NOT NULL;

🟢 3️⃣ 统计层(DM,Data Mart)

  • 定义:基于加工层构建指标与汇总表。

  • 作用:为报表系统与业务分析提供统计结果。

  • 典型内容

    • 日活跃用户数(DAU)

    • GMV(交易总额)

    • 转化率等指标

示例路径:

/warehouse/dm/user_behavior/dt=2025-10-10/

🔵 4️⃣ 分析层(ADS,Application Data Service)

  • 定义:面向应用的数据层,为可视化、模型训练等提供定制化数据集。

  • 特征:高聚合度、高价值,响应速度快。

  • 应用场景

    • BI 报表(如销售漏斗、渠道转化分析)

    • 智能推荐系统特征输入

    • 机器学习样本生成


🌟 四、总结与价值体现

模块

关键目标

技术亮点

项目整体架构

构建端到端数据流体系

数据全链路自动化

数据采集流程

多源实时采集与统一存储

DataX + Maxwell + Flume + Kafka

数仓分层设计

数据治理与复用

Hive 四层分层、标准建模体系

评论交流