Hudi 使用索引来检测实际目标文件以进行更新操作。此外,对于一批要更新的记录,索引用于将每个记录标记为更新或插入。
Hudi 目前支持以下索引选项:
索引还分为两种类型:全局索引 和 非全局索引。
全局索引: 全局索引确保表的所有分区中记录键的唯一性,即保证表中对于给定记录键只存在一条记录。全局索引提供更强的保证,但更新/删除成本随表大小增长 O(表大小)
,这对于较小的表可能仍然可接受。
非全局索引: 另一方面,默认索引实现仅在特定分区内执行此约束。正如人们所想象的那样,非全局索引依赖于写入器在更新/删除期间为给定记录键提供相同的一致分区路径,但可以提供更好的性能,因为索引查找操作变为 O(更新/删除的记录数)
并且可以很好地扩展写入量。