[发明专利]基于BloomFilter的多列索引在列存数据库中的创建及使用方法在审
申请号: | 201711470231.9 | 申请日: | 2017-12-29 |
公开(公告)号: | CN108460074A | 公开(公告)日: | 2018-08-28 |
发明(设计)人: | 武新;赵伟;史大义;姚建华;崔维力;郑黎辉 | 申请(专利权)人: | 天津南大通用数据技术股份有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 天津滨海科纬知识产权代理有限公司 12211 | 代理人: | 杨慧玲 |
地址: | 300384 天津市滨海新区华*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 多列索引 数据库 数据库查询 最大程度地 磁盘访问 空间占用 索引查询 可控 索引 创建 耗时 存储 扫描 查询 记录 | ||
本发明提供了一种基于BloomFilter原理的多列索引在列存数据库中的实现方法,包括:基于BloomFilter原理的多列索引在列存数据库中的创建方法,及在列存数据库查询中的使用方法。本发明实现的多列索引具有以下优点:不存储实际值,空间占用小;索引查询速度快,耗时固定;一个索引即可支持任意列的组合查询;BloomFilter中的假阳率(False positives)可控。本发明的有益效果是能最大程度地排除不命中的记录,减少扫描所需的磁盘访问,从而提升数据库的性能。
技术领域
本发明属于数据库领域,尤其是涉及基于BloomFilter的多列索引在列存数据库中的创建及使用方法。
背景技术
Bloom Filter是由Burton Howard Bloom在1970年提出的。它实际上是由一个很长的二进制向量和一系列随机映射函数组成,Bloom Filter可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的假阳率(False positives,即如果Bloom Filter报告某一元素存在于某集合中,但实际上该元素可能并不在该集合中)和删除困难,但是没有识别错误的情形(False negatives,即如果Bloom Filter报告某一元素不存在于某集合中,那么这个元素一定不会在该集合)。
使用示例:初始状态时,Bloom Filter是一个包含m位的位数组,每一位都置为0,如图4所示。
为了表达S={x1,x2,…,xn}这样一个n个元素的集合,Bloom Filter 使用k个相互独立的哈希函数(Hash Function),它们分别将集合中的每个元素映射到{1,…,m}的范围中。对任意一个元素x,第i个哈希函数映射的位置hi(x)就会被置为1(1≤i≤k)。注意,如果一个位置多次被置为1,那么只有第一次会起作用,后面几次将没有任何效果。在图5中,k=3,且有两个哈希函数选中同一个位置(从左边数第五位)。
在判断y是否属于这个集合时,我们对y应用k次哈希函数,如果所有 hi(y)的位置都是1(1≤i≤k),那么我们就认为y是集合中的元素,否则就认为y不是集合中的元素。图6中y1就不是集合中的元素。y2或者属于这个集合,或者刚好是一个false positive。
优点:相比于其它的数据结构,Bloom Filter在空间和时间方面都有巨大的优势。Bloom Filter存储空间和插入/查询时间都是常数。另外,Hash函数相互之间没有关系,方便由硬件并行实现。Bloom Filter不需要存储元素本身,在某些对保密要求非常严格的场合有优势。Bloom Filter可以表示全集,其它任何数据结构都不能;k和m相同,使用同一组Hash函数的两个Bloom Filter的交并差运算可以使用位操作进行。
缺点:但是Bloom Filter的缺点和优点一样明显。假阳率(False Positive)是其中之一。随着存入的元素数量增加,误算率随之增加。但是如果元素数量太少,则使用散列表足矣。
另外,一般情况下不能从Bloom Filter中删除元素.我们很容易想到把位列阵变成整数数组,每插入一个元素相应的计数器加1,这样删除元素时将计数器减掉就可以了。然而要保证安全的删除元素并非如此简单。首先我们必须保证删除的元素的确在BloomFilter里面。这一点单凭这个过滤器是无法保证的。另外计数器回绕也会造成问题。
发明内容
有鉴于此,本发明旨在创建一种基于Bloom Filter的多列索引,并应用于列存数据库中。
为了达到上述目标,需要解决Bloom Filter自带的存在假阳率的问题。本发明采用的技术方案是为每一条记录建立一个Bloom Filter,具体的:
基于Bloom Filter的多列索引在列存数据库中的创建方法,包括如下步骤:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天津南大通用数据技术股份有限公司,未经天津南大通用数据技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711470231.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:群组推荐方法、存储介质和服务器
- 下一篇:一种文件内容检索方法及系统