写点什么

Hudi 在字节实践记录

用户头像
Clarke
关注
发布于: 刚刚

https://www.slidestalk.com/openLooKeng/17?video

https://mp.weixin.qq.com/s/lns4dgaYYzBqQ0EjLBY-PQ

2.ByteDance ByteLake: 字节跳动基于 HUDI 的 实时数据湖平台 耿筱喻 字节跳动 大数据研发工程师

3. ByteDance 01 02 03 04 HUDI 简介 ByteLake 应用场景 ByteLake 核心技术 未来规划

4.ByteDance 01 HUDI 简介

5.HUDI 简介 HUDI 作为一个流式数据湖平台,支持 ACID、支持增量更新与消费 的存储方案

6.HUDI 基本概念 FileGroup 逻辑含义 • 单个分区内数据的水平切分单位 • 每个 Key 只存在于一个 File Group 中 (全局 or 分区) • 逻辑上的文件概念,有特定的 File ID 组成部分 • 所有归属于这个 File ID 下多个版本的 文件 FileSlice 的集合 • Base File 为列存文件 • Log File 为行存文件

7.HUDI 表更新过程 Copy On Write 表 • 适用于离线批量更新场景 • 读取 File Group 中旧的 Base File,合并更新数据,生成新 Base File Merge On Read 表 • 适用于实时高频更新场景 • 更新数据写入 File Group 的 Log 行存文件 • 读时 Merge, 通过 Compaction 进行合并

8.HUDI 索引基本概念 索引用于定位更新数据所在的 File Group • Bloom Filter Index 通过 Bloom Filter 判断 key 是否在已有的 File Group 中 • HBase Index 通过 HBase 记录 key 和文件的映射关系 • Bucket Index (RFC-29) 通过 key 的哈希值定位到 File Group

9.ByteLake 简介 ByteLake 是字节跳动基于 HUDI 的实时数据湖平台,通过秒级数据 可见支持实时数仓。ByteLake 除了提供 HUDI 社区的所有功能外,还 支持 • ByteLake Metastore,基于数据湖的元数据管理系统 • 行列级别的并发更新 • Bucket Index,基于哈希的索引方式 • Append 的模式

10.ByteDance 02 ByteLake 应用场景

11.ByteDance Classic Hudi Pipeline

12.推荐场景 • 需要对表格存储做高效的 OLAP 查询 • 低成本批量添加特征列

13.推荐场景 挑战 • 百 GB/s 的高吞吐近实时写入 • Schema 复杂,列数可到万级别,存在大量复杂类型 • 百万亿行数据的部分列的低成本更新 • 支持并发 Update

14.数仓场景 • 对历史全量数据进行部分行、列的更新 • 单表数据量百 PB 级 历史全量 增量更新

15.近实时数仓场景 • 多数据源实时导入,支持列拼接 • 单表数据规模几十 TB 量级

16.ByteDance 03 ByteLake 核心技术

17.湖仓一体元数据服务 • 统一的元数据视图,与 Hive Metastore 完全兼容 • 无缝对接多个计算引擎 Spark / Presto / Flink • 跨源查询分析能力,直接查询 MySQL,Abase(kv), Kafka • 为 ByteLake 定制的 Metastore,支持高效数据更新

18.ByteLake Metastore (HUDI RFC-36) • 支持 Commit 形式的元数据管理,并支持并发更新 • 对最新元数据的 Snapshot 进行持久化,并支持高效查询 • 提供分区裁剪功能

19.ByteLake Metastore (HUDI RFC-36) • 底层存储可插拔 • 轻量且易于扩展 • Hive Metastore 兼容

20.行列级并发写入 • 基于乐观锁的 Timeline • 灵活的行列冲突检查策略

21.行列级并发写入 • 基于乐观锁的 Timeline • 灵活的行列冲突检查策略

22.行列级并发写入 • 基于乐观锁的 Timeline • 灵活的行列冲突检查策略

23.Bucket Index (HUDI RFC-29) 通过 key 的哈希值定位到 File Group,提升导入实时性

24.Bucket Index (HUDI RFC-29) 通过 key 的哈希值定位到 File Group,提升导入实时性

25.Bucket Index (HUDI RFC-29) 利用 Bucket 分布做查询优化 • Bucket Pruning • Bucket Join

26.Bucket Index (HUDI RFC-29) 利用 Bucket 分布做查询优化 • Bucket Pruning • Bucket Join

27.Append 模式支持 • 无需指定主键、比较列 • 支持日志场景 • Non Index

28.ByteDance 04 未来规划

29.ByteDance 未来规划 • 支持部分列更新下的完整 Bin Log 消费 • 可扩展哈希索引 • 存储服务化,数据秒级可见 • 基于 Merge Tree 的文件分布

用户头像

Clarke

关注

还未添加个人签名 2018.04.15 加入

还未添加个人简介

评论

发布
暂无评论
Hudi 在字节实践记录