Apache Hudi索引实现分析(二)之HoodieGlobalBloomIndex

栏目: IT技术 · 发布时间: 4年前

内容简介:前面分析了Hudi默认的索引实现HoodieBloomIndex,其是基于分区记录所在文件,即分区路径+recordKey唯一即可,Hudi还提供了HoodieGlobalBloomIndex的实现,即全局索引实现,只需要recordKey唯一即可,下面分析其实现。HoodieGlobalBloomIndex是HoodieBloomIndex的子类,其主要重写了父类的如下几个方法对于加载分区下所有最新文件而言,

1. 介绍

前面分析了Hudi默认的索引实现HoodieBloomIndex,其是基于分区记录所在文件,即分区路径+recordKey唯一即可,Hudi还提供了HoodieGlobalBloomIndex的实现,即全局索引实现,只需要recordKey唯一即可,下面分析其实现。

2. 分析

HoodieGlobalBloomIndex是HoodieBloomIndex的子类,其主要重写了父类的如下几个方法

对于加载分区下所有最新文件而言, loadInvolvedFiles 核心代码如下

首先会获取所有的分区路径,然后调用父类方法获取分区下最新数据文件。

对于查找记录对应的文件而言, explodeRecordRDDWithFileComparisons 核心代码如下

可以看到和 HoodieBloomIndex#explodeRecordRDDWithFileComparisons 处理逻辑类似,在使用索引过滤器获取所有匹配的文件和分区路径时,此时比较的是所有分区下的文件,不再是指定的分区路径。

对于将位置信息推回至原始记录而言, tagLocationBacktoRecords 核心代码如下

其处理逻辑与父类处理逻辑相同,也是使用一次左外连接将位置信息推回至原始记录。

3. 总结

对于 HoodieGlobalBloomIndex 而言,其是全局的索引,即会在所有分区内查找指定的recordKey,而非像 HoodieBloomIndex 只在指定的分区内查找,同时在加载分区下所有最新文件时,其会首先获取所有分区,然后再获取所有分区下的最新文件,而非使用从原始记录中解析出来的分区路径。

Apache Hudi索引实现分析(二)之HoodieGlobalBloomIndex

Apache Hudi索引实现分析(二)之HoodieGlobalBloomIndex

Apache Hudi索引实现分析(二)之HoodieGlobalBloomIndex


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

探索需求

探索需求

章柏幸、王媛媛、谢攀、杰拉尔德・温伯格、唐纳德・高斯 / 章柏幸、王媛媛、谢攀 / 清华大学出版社 / 2004-7-1 / 39.00元

本书将与您一起寻找"什么是客户真正想要的"这一问题的答案。 本书着眼于系统设计之前的需求过程,它是整个开发过程(如何设计人们想要的产品和系统)中最有挑战性的那部分。通过对一些需求分析中的常见误区和问题的分析和讨论,从和客户沟通开始,深入研究一些可能的需求,澄清用户和开发者期望值,最终给出了能够大幅度提高项目成功几率的一些建议方法。 本书由该领域内公认的两位作者合著,搜集了他们在大大小小......一起来看看 《探索需求》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具