☀️ 点击关注,获取项目源码
过去十年,大数据架构的主流选择是Lambda——数据仓库跑离线ETL、数据湖存原始文件、实时链路单独走一套Flink+Kafka。离线仓库跑T+1,实时链路做秒级,两套引擎、两套表结构、两套口径定义。同一张"用户订单汇总",离线算一个数、实时算一个数,对不上是常态,对上了靠运气。
快手在2023年的数据很有代表性:湖仓分离架构下,离线链路与实时链路存储冗余率超过40%,计算资源各自独立导致利用率不均,跨链路数据口径对齐需要人工干预。数据开发者每天面对两套系统——Hive写离线ETL,ClickHouse写实时物化视图,两套SQL语法、两套权限体系。这些运维开销叠加起来,真正花在分析上的时间不到30%。
湖仓一体化数据治理平台以开放表格式(Apache Iceberg / Apache Hudi / Delta Lake)为统一存储底座,以批流一体的计算引擎打通离线与实时数据处理,在湖上直接构建企业级数据治理能力。不再区分"湖数据"和"仓数据",所有数据统一存储在湖上,仓库能力(ACID事务、Schema约束、数据治理、高性能查询)下沉到存储层实现。从入口到出口一条链路走完——接入→存储→治理→分析→服务。



▎Apache Iceberg
引擎中立,不绑定任何计算引擎和存储系统。支持Spark、Flink、Trino、StarRocks等多种引擎并发读写。Schema演进能力强——增加列、删除列、提升字段长度、嵌套结构变更都不需要重写数据文件。快照隔离机制让读写互不阻塞,写入过程中查询仍然读取上一个快照。隐藏分区根据查询条件自动裁减分区路径。快手选择Iceberg作为湖仓统一表格式,元数据获取耗时从800ms降至50ms。
▎Apache Hudi
增量处理能力突出——专为CDC场景设计的记录级更新机制,支持COW(写时复制)和MOR(读时合并)两种表类型。自动小文件合并避免海量小文件拖垮性能。增量查询支持从指定时间点拉取变更数据。vivo在金融风控场景用Hudi做实时指标计算,数据新鲜度从T+1提升至分钟级。
▎Delta Lake
深度绑定Spark生态,ACID事务保障、时间旅行、数据版本回溯能力。Spark MERGE操作性能成熟,适合复杂数据变更场景。Delta Streaming Table支持结构化流写入。Databricks生态中与MLflow集成,为AI训练提供统一数据版本管理和特征工程管道。适合重度使用Spark的场景。
1. 统一元数据服务,跨引擎共享一套库表
所有数据表在建表时注册到统一元数据中心,自动采集表结构、分区信息、文件清单、统计信息。Iceberg/Hudi/Delta的表通过统一元数据服务以JDBC/Thrift协议暴露给查询引擎。Spark读、Flink写、Trino查询、StarRocks加速——四类引擎操作同一张表,不需要数据拷贝。元数据变更实时广播,DDL在10秒内同步至所有引擎。
2. 批流一体计算,离线与实时共用一套表
Flink接管实时入湖和增量ETL,Spark承担离线全量处理。两条链路写入同一张Iceberg/Hudi表——Flink写实时增量分片,Spark覆盖离线历史分区,读时自动合并,对上层查询透明。同一套表结构=同一套口径=同一套血缘。某电商平台迁移后,实时大屏与离线报表指标差异率从12%降至0.3%。
3. 自动化湖仓治理,小文件合并与生命周期管理
后台自动触发Compaction/Clustering将小文件合并为目标大小。Iceberg通过Rewrite Data Files合并数据文件、Rewrite Manifests合并元数据文件。Hudi Clustering支持按分区粒度异步执行,不阻塞写入和查询。数据生命周期按分区时间自动执行:热数据SSD保留7天→温数据HDD保留30天→冷数据归档对象存储。过期快照自动清理释放空间。
4. 物化视图智能加速,查询性能对标MPP
基于湖仓表创建物化视图,DPP+物化视图改写自动匹配,查询命中物化视图时自动改写路由,查询延迟从分钟级降至毫秒级。StarRocks/Doris作为湖仓加速层,支持外表直接查询湖仓数据。快手KwaiMTMV自动物化系统基于历史查询分析自动推荐物化视图,百亿级数据查询性能提升6倍以上。
5. 数据质量与血缘嵌入链路
质量检核规则在数据写入时实时校验——Schema校验阻止不合规数据类型写入,空值比例校验超阈值自动告警,主键唯一性校验防止重复。检核结果嵌入数据资产评分,不达标表在资产目录中标记黄色/红色。血缘分析基于Iceberg快照日志自动构建字段级血缘,从源表字段到下游应用逐跳可追溯。
6. AI原生集成,数据直接供给模型训练
非结构化数据与结构化数据同池管理,支持向量化存储和检索。特征工程管道直接在湖仓表上运行,Spark ML Pipeline或PySpark脚本可直接读取湖仓表生成特征数据集。时间旅行特性支持不同时间点的训练集版本回溯。推理结果自动写回湖仓表,与原始数据关联。



◆ 快手 | 湖仓分离到湖仓一体
原架构Hive/Hudi+ClickHouse湖仓分离,存储冗余超40%。引入Apache Doris统一查询层直读湖仓数据,自研Meta Server将元数据访问从800ms降至50ms,自动物化系统KwaiMTMV将百亿级查询提升6倍。管理数万张表,支撑公司核心业务,实时与离线口径矛盾归零。
◆ vivo | 基于Apache Hudi的湖仓实时化
金融风控场景需要分钟级实时指标。采用Hudi COW+MOR混合部署:COW表存全量基础数据,MOR表承接高频用户行为事件流。Flink实时写入Hudi MOR表,下游风控引擎取增量变更做滑动窗口计算。数据新鲜度从T+1提升至分钟级,小文件数量降低70%。
◆ 某大型电商 | 统一数据底座替代Lambda
原Lambda架构三层数据口径常年不一致。迁移至Iceberg+StarRocks湖仓一体后:所有数据统一入Iceberg表,Spark跑历史、Flink灌实时,StarRocks外表直读湖仓做亚秒级查询。离线报表与实时大屏指标差异率从12%降至0.3%,存储成本降低37%,ETL开发效率提升50%。
欢迎点赞关注,如需系统源码、项目交付、软件开发,可直接联系!
夜雨聆风