内容简介:前面分析了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 只在指定的分区内查找,同时在加载分区下所有最新文件时,其会首先获取所有分区,然后再获取所有分区下的最新文件,而非使用从原始记录中解析出来的分区路径。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
算法概论
Sanjoy Dasgupta、Christos Papadimitriou、Umesh Vazirani / 钱枫 注、邹恒明 注 / 机械工业出版社 / 2009-1 / 55.00元
《算法概论(注释版)》源自加州大学伯克利分校和加州大学圣迭戈分校本科生的算法课讲义,以独特的视角展现了算法设计的精巧技术及魅力。在表达每一种技术时,强调每个算法背后的简洁数学思想,分析其时间和空间效率,运用与其他技术类比的方法来说明特征,并提供了大量实例。《算法概论(注释版)》以人类最古老的算法(算术运算)为起点,将各种算法中优美而有代表性的内容囊括书中,并以最前沿的理论(量子算法)结束,构成了较......一起来看看 《算法概论》 这本书的介绍吧!