Apache Hudi特性—查询类型
下面将讨论一些关键概念和术语,这些概念和术语对于理解和有效使用这些原语非常重要。
查询类型
查询类型定义了如何向查询公开底层数据(即如何读取数据)。Hudi支持如下的查询类型:
- (1) 快照查询
查询可以查看到给定提交或压缩操作时表的最新快照。在对读表(merge on read)进行合并的情况下,它会动态地合并最新文件片的基本文件和增量文件,从而公开近乎实时的数据(几分钟)。对于写表(copy on write)上的复制,它提供了对现有parquet表的drop-in替换,同时提供了upsert/delete和其他写侧功能。
- (2) 增量查询
由于给定的commit/compaction,查询只能看到写入表的新数据。这有效地提供了变更流,以启用增量数据管道。
- (3) 读优化查询
查询可以查看到一个给定的提交/压缩操作时的表的最新快照。仅在最新的文件切片中显示base/columnar文件,并保证与非hudi柱状表相比具有相同的柱状查询性能。
不同查询类型之间的取舍见下表。
快照 | 读优化 | |
---|---|---|
数据延迟 | 较低 | 较高 |
查询延迟 | 较高(合并基/柱状文件 + 基于行的增量/日志文件) | 较低(原始基/柱状文件性能) |
不同类型的表所支持的查询类型见下表。
表类型 | 支持的查询类型 |
---|---|
Copy On Write(COW) | 快照查询 + 增量查询 |
Merger On Read(MOR) | 快照查询 + 增量查询 + 读优化的查询 |