《6-3 网易 Arctic:基于 Apache Iceberg 构建的实时湖仓一体系统.pdf》由会员分享,可在线阅读,更多相关《6-3 网易 Arctic:基于 Apache Iceberg 构建的实时湖仓一体系统.pdf(34页珍藏版)》请在三个皮匠报告上搜索。
1、网易ARCTIC基 于 A PA C H E I C E B E R G 构 建 的 实时 湖 仓 一 体 系 统张永翔网易数帆 资深大数据平台开发|01业务当前的挑战Lambda 架构下流与批割裂带来的问题02基于 iceberg 构建的湖仓一体系统03业务实践Arctic 在网易内外的实践04未来规划目录 CONTENT|网易Arctic业务当前的挑战Lambda 架构下流与批割裂带来的问题01|T+1 离线数据生产hivespark/hive原始数据数据源数据集市明细数据轻度汇聚sparkspark/hivespark/hiveimpala|场景一:初步引入实时化Flink分钟/秒级Hi
2、veHive清洗聚合Kudu消息队列FlinkCDC数据集市小时/天级近 N 天数据全部数据Hivesparkspark数据源LOGspark/impalaspark/impala主键聚合清洗聚合|场景二:更加复杂的实时化Flink分钟/秒级KuduFlinkCDC数据集市小时/天级近 N 天数据数据源LOGspark/impalaspark/impalaHiveHiveHiveHiveHiveHiveHiveHivesparkspark清洗/打宽/聚合HBASEspark全部数据清洗/打宽/聚合|流批计算割裂下的 lambda 架构离线应用层sparkimpalaspark数据源实时应用层存
3、储层(消息队列+kv)KV消息队列服务层(实时数仓)impalaflink数据源应用层:流批合并视图sparkflinkflinkKVKudu数据孤岛(Kudu 等)独立采购和部署冗余存储浪费成本难以数据复用和互通研发体系割裂研发人效低研发规范不通用应用层视图合并复杂指标和语义二义性服务层 Hive存储层 Hive|Arctic 功能特性基于 Apache Iceberg 构建的湖仓一体系统02|Arctic 的定位的定位一句话概括:定义在定义在Hive/Iceberg 表格式之上,计算引擎之下的表格式之上,计算引擎之下的TableService,并提供表结构优化以及,并提供表结构优化以及Ka
4、fka封装的封装的实时湖仓系统实时湖仓系统|Arctic Table Optimize for Hive/IcebergHive 的摄取与计算场景T+1/T+H 场景,每次进行全量的计算|Arctic Table Optimize for Hive/IcebergIceberg/Deltalake 的摄取与计算抽象出 Snapshot 概念,通过快照隔离实现MVCC 和ACID,支持数据实时摄取|Arctic Table Optimize for Hive/IcebergArctic 在 Iceberg 的基础上,将 Batch 和Stream 写入的文件进行区分,分为change store
5、 和 base store.通过异步的 optimizing 对 stream 写入的文件进行合并,并提供了小文件治理、唯一键保证和 upsert 的能力并通过 ArcticTable 封装的接口提供merge on read,实现准实时的读写能力|Arctic Table Primary Key Support支持 Primary Key支持 CDC ingestion实现 Upsert 语义主键唯一性约束实现Merge on read optimize未来扩展 SortKey/AggKey|Arctic Table Auto Optimize Minor Optimize 执行周期短(约1
6、0min 一次)优化小文件数量 eq-del 转换为 pos-del 只针对 change file Major Optimize 执行周期长(约1 day 一次)合并 change file 到 base file 兼容 Hive 读|Arctic Table 流批一体表(支持流批一体表(支持CDC)下游可订阅 Arctic 表变更 支持 Hidden Queue 秒级延迟订阅 通过消息回撤实现最终一致性 arctic-flink-connector 封装双写和回撤实现细节 不开启 Hidden Queue 分钟级延迟订阅|Arctic Table 流批一体表(流批一体表(双写一致性保证双写