1.布隆过滤器
解释一下什么是布隆过滤,布隆过滤的优缺点,以及布隆过滤在hudi中的作用?都是哪些常见的框架中用到了布隆过滤?
实际上hudi在自己的MOR表中进行数据查找,有则更新,无则插入的时候就是用的这种布隆过滤来查找的.速度很快.
实际上布隆过滤也是个数据结构,一种快速查询,确认数据是否在布隆结构中存在的方法,有一定的误判率,但是极速,占用资源很低.
布隆过滤器(Bloom Filter)是一种数据结构,用于快速检查一个元素是否属于某个集合中。它可以快速判断一个元素是否在一个大型集合中,且判断速度很快且不占用太多内存空间。
怎么往布隆过滤器中添加数据,来看一下,插入一个字符串,比如hello world的过程
假设要将字符串"hello world"添加到布隆过滤器中,该布隆过滤器使用3个哈希函数,位数组大小为10,步骤如下:
-
创建一个大小为10的位数组,初始化所有位为0。
-
设定3个哈希函数,如下:
-
哈希函数1:将字符串转化为一个整数,然后将整数对10取余
-
哈希函数2:将字符串中的每个字符的ASCII码值相加,然后将和对10取余
-
哈希函数3:将字符串翻转,然后将翻转后的字符串转化为一个整数,然后将整数对10取余
-
对字符串"hello world"进行3次哈希操作,得到3个哈希值分别为2、5、8。
-
将位数组中2