以下是一个典型的电商基于 Hudi 的湖仓一体架构图,包含数据接入、存储、计算、查询等核心组件,并附有分层说明。

                     +-----------------------------------------------------+
                     |                    数据源层                          |
                     |  MySQL Binlog, MongoDB, 应用日志, 第三方平台API     |
                     +--------------------------+--------------------------+
                                                |
                                                v
                     +-----------------------------------------------------+
                     |                    采集层                            |
                     |  Canal / Maxwell (Binlog采集)                       |
                     |  Flume / Logtail (日志采集)                         |
                     |  DataX / Sqoop (离线批量同步)                       |
                     |  Kafka (消息队列, 统一数据管道)                      |
                     +--------------------------+--------------------------+
                                                |
                    +---------------------------+---------------------------+
                    |                                                       |
                    v                                                       v
+-----------------------------------+       +-----------------------------------+
|         实时流处理                |       |         离线批处理                |
|  Flink (从Kafka消费)              |       |  Spark / Hive (定期调度)          |
|  写入Hudi (Merge-On-Read)         |       |  写入Hudi (Copy-On-Write)         |
|  支持Upsert/Delete                |       |  支持批量追加/覆盖                |
+------------------+----------------+       +----------------+------------------+
                   |                                          |
                   +------------------+-----------------------+
                                      |
                                      v
+------------------------------------------------------------------------------+
|                           统一数据湖 (Hudi on HDFS/OSS)                     |
|  +-------------------+  +-------------------+  +---------------------------+ |
|  | ODS层 (原始数据)  |  | DWD层 (清洗明细)  |  | DWS层 (轻度汇总)          | |
|  | - 订单Binlog      |  | - 订单明细事实     |  | - 每日订单汇总            | |
|  | - 用户日志        |  | - 用户行为日志     |  | - 商品销售汇总            | |
|  | - 库存快照        |  | - 库存明细         |  | - 会员活跃汇总            | |
|  | Hudi表            |  | Hudi表             |  | Hudi表 / 也可导出         | |
|  +-------------------+  +-------------------+  +---------------------------+ |
|                                                                              |
|  • 支持ACID事务, Upsert/Delete                                              |
|  • 增量消费, 流式读取                                                        |
|  • 小文件自动合并 (Compaction)                                               |
+----------------------------------------+-------------------------------------+
                                         |
                                         v
+------------------------------------------------------------------------------+
|                         统一元数据服务 (Hive Metastore / DLF)                |
|                     管理所有Hudi表的Schema、分区、文件位置                     |
+----------------------------------------+-------------------------------------+
                                         |
                    +--------------------+--------------------+
                    |                                         |
                    v                                         v
+-----------------------------------+       +-----------------------------------+
|         查询引擎                  |       |        实时加速层 (可选)          |
|  Spark SQL / Presto / Trino       |       |  StarRocks / ClickHouse           |
|  直接查询Hudi表 (批量/交互式)     |       |  通过Flink或Spark将Hudi数据同步   |
|  支持历史数据和增量查询            |       |  到MPP引擎, 提供毫秒级查询         |
+------------------+----------------+       +----------------+------------------+
                   |                                         |
                   +------------------+----------------------+
                                      |
                                      v
+------------------------------------------------------------------------------+
|                             应用层 / 数据服务                                 |
|  • BI报表 (QuickBI, Tableau)                                                 |
|  • 数据API (标签查询, 人群圈选)                                              |
|  • 数据科学 (机器学习特征存储)                                               |
|  • 实时看板 (大屏监控)                                                       |
+------------------------------------------------------------------------------+

+------------------------------------------------------------------------------+
|                             治理与运维                                        |
|  • 调度系统 (DataWorks / DolphinScheduler)                                   |
|  • 数据质量监控 (完整性/准确性/波动告警)                                     |
|  • 数据血缘 (DataWorks 数据地图 / Atlas)                                     |
|  • 数据生命周期管理 (冷热分离, 归档)                                         |
+------------------------------------------------------------------------------+

架构说明

  1. 数据源层:支持多种数据源,包括业务数据库(MySQL、MongoDB)、应用日志(埋点)、第三方平台(亚马逊、TikTok API)等。

  2. 采集层

    • 交易日志:Canal/Maxwell 采集 Binlog,写入 Kafka。

    • 应用日志:Flume/Logtail 采集日志,写入 Kafka。

    • 离线批量:DataX/Sqoop 定期拉取全量或增量数据到 HDFS 或直接入湖。

  3. 计算层

    • 实时写入:Flink 消费 Kafka 数据,使用 Hudi 的 Merge-On-Read 表类型,支持 Upsert 和 Delete,实现分钟级数据入湖。

    • 离线写入:Spark/Hive 定期处理批量数据,使用 Copy-On-Write 表类型,适合稳定的大数据量写入。

  4. 数据湖存储:基于 HDFS 或 OSS,使用 Hudi 表格式存储 ODS、DWD、DWS 三层数据。Hudi 提供 ACID 事务、增量消费、自动小文件合并等能力,保障数据一致性和查询性能。

  5. 元数据服务:统一使用 Hive Metastore 或 DLF 管理所有 Hudi 表的元数据,使查询引擎能够发现表结构。

  6. 查询与分析

    • 直接查询:Spark SQL、Presto 可直接查询 Hudi 表,适合批量分析和历史数据追溯。

    • 实时加速:将 DWS 层数据同步到 StarRocks/ClickHouse 等 MPP 引擎,支持高并发、毫秒级查询,用于实时看板和在线服务。

  7. 应用层:基于统一数据服务,支撑 BI 报表、数据 API、数据科学等业务场景。

  8. 治理与运维

    • 调度系统(DataWorks)统一管理 ETL 任务。

    • 数据质量监控模块定期校验数据,发现问题自动告警。

    • 数据血缘工具记录数据流向,辅助问题排查和影响分析。

    • 生命周期管理自动将冷数据迁移到更低成本的存储。

Hudi 的核心优势在架构中的体现

  • Upsert/Delete:处理电商订单频繁更新、退款等场景。

  • 增量消费:支持 Flink 读取增量数据,用于实时特征计算。

  • ACID 事务:保证并发写入时的数据一致性,避免脏读。

  • 小文件管理:自动合并小文件,避免 NameNode 压力,提升查询性能。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐