Hudi 系列: 表类型(Table & Query Types)
Hudi 系列:Hudi 核心概念(版本 1.0)
•Hudi 架构
◦一. 时间轴(TimeLine)s
▪1.1 时间轴(TimeLine)概念
▪1.2 Hudi 的时间线由组成
▪1.3 时间线上的 Instant action 操作类型
▪1.4 时间线上 State 状态类型
▪1.5 时间线官网实例
◦二. 文件布局
◦三. 索引
3.1 简介
3.2 对比其它(Hive)没有索引的区别
3.2 多态索引
布隆过滤器
记录索引
表达索引
二级索引
3.3 写入端的索引类型
3.4 全局索引与非全局索引
四. 表类型
4.1 COW:(Copy on Write)写时复制表
4.1.1 概念
4.1.2 COW 工作原理
4.1.3 COW 表对表的管理方式改进点
4.2 MOR:(Merge on Read)读时复制表
4.2.1 概念
4.2.2 MOR 表工作原理
4.3 总结了两种表类型之间的权衡
五. 查询类型
四、简介
4.1Copy On Write Table
4.1 概念
4.1.2COW 工作原理

4.1.3 COW 表对表的管理方式改进点
1.在原有文件上进行自动更新数据,而不是重新刷新整个表/分区
2.能够只读取修改部分的数据,而不是浪费查询无效数据
3.严格控制文件大小来保证查询性能(小文件会显著降低查询性能)
4.2 Merge On Read Table
4.2.1 概念
4.1.2MOR 工作原理

4.3 总结两种表的类型之前的权衡
五. 查询类型
•Snapshot Queries:查询会查看截至最新完成操作的最新表快照。这些是每个人都习惯在表上运行的常规 SQL 查询。Hudi 存储引擎会在支持的查询引擎上尽可能使用索引来加速这些快照查询。
•Time Travel Queries:查询过去某个时刻的表快照。时间旅行查询有助于访问表的多个版本(例如,机器学习特征存储,用于根据用于训练算法/模型的精确数据对其进行评分),这些版本位于活动时间线中的某个时刻或过去的保存点。
•Read Optimized Queries (Only MoR tables):读优化查询通过纯列式文件(例如 Parquet 基础文件)提供出色的快照查询性能。用户通常使用与事务边界一致的压缩策略,以提供表/分区的旧一致性视图。这对于集成来自数据仓库的 Hudi 表非常有用,因为这些数据仓库通常仅将列式基础文件作为外部表进行查询,或者对于延迟不敏感、更注重效率而非数据新鲜度的 ML/AI 训练作业。
• Incremental Queries (Latest State):增量查询仅返回自时间轴上某一时刻以来写入表的新数据。提供自表的给定时间点以来插入/更新的记录的最新值(即,查询为每个记录键输出一条记录)。可用于比较两个时间点之间的表状态差异。
•Incremental Queries(CDC):这是另一种增量查询,它提供类似数据库的 Hudi 表变更数据捕获流。CDC 查询的输出包含自某个时间点或两个时间点之间插入、更新或删除的记录,以及每条变更记录的前后图像,以及导致变更的操作。
评论