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) 快照查询 + 增量查询 + 读优化的查询

《Spark原理深入与编程实战》