- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 视频嵌入链接 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
6.马进-Arctic 湖仓一体的践行之路
马进,网易数帆大数据实时计算技术专家、湖仓一体项目负责人,负责网易集团分布式数据库,数据传输平台,实时计算平台,实时数据湖等项目,长期从事中间件、大数据基础设施方面的研究和实践,目前带领团队聚焦于流批一体、湖仓一体的平台方案和技术演进,及流式湖仓服务 Arctic 项目开源。
没有人怀疑,数据湖未来正在朝着湖仓一体的方向发展和演进,像 hudi、iceberg、delta 在过去两年也几乎成为大数据从业者耳熟能详的开源项目,但是这些技术真正作为 lakehouse 的解决方案,在价值吸引,落地成熟度上还存在不少的gap,网易数帆从2020年开始着手围绕 iceberg 构建流批一体和湖仓一体的技术和产品方案,为了最大限度实践并提升 lakehouse 的应用价值,我们研发了 arctic 这个项目,并在今年下半年开源,我们将在这次 talk 中聊聊 lakehouse 的发展,以及 arctic 在湖仓一体上的解法和思路。
展开查看详情
1 .
2 .Arctic 湖仓一体践行之路 演讲人:马进
3 .Outline • Arctic 眼中的湖仓一体 • Arctic lakehouse 最佳实践
4 .Arctic 眼中的湖仓一体 业务发展 行业发展 自身发展 • 流批割裂现状 • 数据湖三剑客 • Arctic 是什么 • 带来的问题 • Table format 能力 • Arctic 与 iceberg • 业务期望 • 存在的 GAP • Arctic 关键能力
5 .业务 — 流批割裂的现状 近 N 天数据 数据集市 数据源 Kudu HBASE Flink 清洗/打宽/聚合 分钟/秒级 spark / impala CDC LOG Flink spark / impala 清洗/打宽/聚合 全部数据 spark 小时/天级 Hive Hive Hive spark Hive spark Hive Hive Hive Hive
6 .业务 — 流批割裂带来的问题 应用层:流批合并视图 • 数据孤岛(Kudu 等) - 独立采购和部署 离线应用层 实时应用层 - 冗余存储浪费成本 spark impala impala - 难以数据复用和互通 服务层 Hive 服务层(实时数仓) KV Kudu flink • 研发体系割裂 spark flink - 研发人效低 存储层 Hive 存储层(消息队列 + kv) - 研发规范不通用 spark KV 消息队列 - 应用层视图合并复杂 数据源 flink • 指标和语义二义性 数据源
7 .业务 — 流批一体的期望 应用层 • 研发过程统一 spark flink Impala/trino • 研发规范统一 ? • 指标语义统一 spark flink • 存储统一,消除实时孤岛 ? • 一套工具,降本提效 • 降本 30% - 50%,提效 2 倍 spark flink 数据源
8 .行业 — 数据湖开源三剑客 • Aimed for structured data ACID Time travel • Operation transactional MVCC Update/delete rollback • SQL extensions Merge into • Incremental/stream processing
9 .行业 — 从 Hive 到 Table format • One operation, one snapshot • Map table to static directories • Multiple write, Optimistic concurrence control • One write, No ACID guarantees • incremental processing snapshots
10 .行业 — Table format 小结 building Transactional layer on data lake
11 .行业 — Table format 小结 结构自由 读写自由 流批同源 引擎平权
12 .行业 — Table format 的不足 所读即所写 实时能力不足 • Deltalake/iceberg 是 table format,是元数据封装 • 基于 Lakehouse 的流计算延迟在分钟级别 • CDC 数据使用 MERGE INTO 合并存量数据 • 需要引入消息队列实现毫秒/秒级流计算 • 流式摄取带来海量小文件问题,需要用户 optimize • 需要用户自己保障数据一致性 • 需要用户自己调用 optimize 来排序 lakehouse lakehouse lakehouse
13 .行业 — Table format 的不足 推荐 风控 订单原始表 大屏 报表 订单 距离流批一体还差什么? ML 挖掘 • 流式更新 • 自优化服务(MPP) 商品原始表 交易明细表 • 具备实时分发的能力 商品 • 流批统一的关联能力 • 尽可能复用一套代码 用户原始表 用户
14 . 我们 — Arctic 是什么 • Arctic 是由网易开源的流式湖仓系统,Arctic 在 Iceberg 和 Hive 之上添加了更多实时场景的能力,并且面向 DataOps 提供流批统一,开箱即用的元数据服务,让数据湖更加好用和实用。 Iceberg Iceberg Hive 原生表 兼容表 兼容表
15 . 我们 — Arctic 架构与概念 Log / change store • logstore cache 实时数据 • 保障 logstore 数据一致性 • changestore 存储 CDC 数据 • changestore 是独立 iceberg 表 Optimizing • Minor optimize • Full/Major optimize
16 .我们 — Arctic 架构与概念 Hive 兼容表 • Hive 原地升级为 arctic 表 • 老任务不用动,支持 hive 原生读写 • 同时也有 arctic 的所有功能
17 .我们 — Arctic 关键能力 • 格式兼容:百分百兼容 Iceberg / Hive 的表格式和语法 • 引擎平权:支持 Spark 和 Flink 读写数据,支持 Trino/impala 查询数据 streaming lakehouse service • 基于主键高效地流式更新 • 支持将数据湖和消息队列封装成统一的表,流批表合一 • Spark/Trino merge-on-read,分钟级新鲜度 • 提供流式数仓标准化的度量,dashboard 和相关管理工具 • Flink dim join on arctic • 解决并发写入冲突,实现事务一致性语义
18 .我们 — chbenchmark
19 .我们 — chbenchmark
20 .我们 — 小结 开箱即用流批一体 持续的结构优化 毫秒级的实时链路 度量和管理能力 hive/iceberg 兼容
21 .Outline • Arctic 眼中的湖仓一体 • Arctic lakehouse 最佳实践
22 .Arctic 从内部服务到开源
23 .Arctic table service
24 .Arctic 自优化管理
25 . 案例:推送营销分析 设备明细表 设备库 kv index ods_device 清洗 维表 join change 推送分析报表 base base 算法埋点日志 ods_select_user 圈选明细表 清洗 AP 批查询 base base left join 曝光明细表 主站埋点日志 base ods_ua 分拆 点击明细表 • Hive 表支持流式更新 base • 通过 merge on read 提供实时仓能力数 base
26 . 案例:推送营销分析 设备明细表 设备库 kv index ods_device 清洗 维表 join change 推送分析报表 base base 算法埋点日志 ods_select_user 圈选明细表 清洗 AP 批查询 base base left join 曝光明细表 主站埋点日志 base ods_ua 分拆 点击明细表 • Hive 表支持流式更新 base • 通过 merge on read 提供实时仓能力数 base
27 . 案例:推送营销分析 设备明细表 设备库 kv index ods_device 清洗 维表 join change base base ABTests 算法埋点日志 ods_select_user 圈选明细表 推送归因表 清洗 实时生产 营销分析 base base left join base 特征加工 曝光明细表 样本生产 主站埋点日志 base ods_ua 分拆 • 批量分析切换到实时生产,生产流程复用 点击明细表 • 优化报表响应时间 10x-100x base base
28 . 案例:替换 Doris • 原方案 - 学习成本高,人不够用 - Doris 的数据还要想办法同步 hive - 独立部署的成本 • 方案收益 - 复用数据中台的工具,人效高 - 不需要额外的使用和部署成本 - 无需额外的数据同步
29 . 案例:准实时数仓 • 原方案 - 准实时场景,分钟级延迟需求 - 全链路 Flink,资源占用大 - 窗口计算资源占用高 • 方案收益 - 下线 20% 实时资源 - 释放 2.4T 内存 - 提升了应对突发流量的稳定性