一种用于医疗影像数据的基于布隆过滤器的HBase索引设计方法技术

技术编号:21547806 阅读:34 留言:0更新日期:2019-07-06 21:24
本发明专利技术公开一种用于医疗影像数据的基于布隆过滤器的HBase多级索引设计方法,采用为每个随机函数都单独分配一组位向量的方式减小了布隆过滤器的假阳性误判率,并且将其作为判断待检索数据是否在集合中的第一步。之后对现有的HBase二级索引提出改进方法,将减少数据的网络IO次数作为主要优化点,独特的行键设计保证了数据表和索引表能够分布在同一个Region上,并且设计了一种抽样散列法解决了Region的写热点问题,从而即利用了负载均衡的特性,又在一定程度上加快了检索效率。

A Base Index Design Method Based on Bloom Filter for Medical Image Data

【技术实现步骤摘要】
一种用于医疗影像数据的基于布隆过滤器的HBase索引设计方法
本专利技术属于计算机软件领域,尤其涉及一种用于医疗影像数据的基于布隆过滤器的多级索引设计方法。
技术介绍
随着现今医疗信息化的不断发展,数据量的急剧增加,PACS(影像归档和通信系统)所使用的关系型数据库存储方案已经很难满足日常的存储与检索需求。借助Hadoop这样的大数据分布式平台及新型的NoSQL数据库解决海量医疗影像数据的存储与检索已成为解决该问题的有效途径之一。HBase列式数据库属于Hadoop生态圈,兼容性非常好,可以直接与HDFS进行读写交互。同时,HBase的可扩展性使得用户不需要提前制定好表的结构,而是根据需要进行动态扩展,解决了关系型数据库必须预先制定表结构的问题。然而,HBase在索引方面仍有所欠缺,仅仅支持主键的索引,对于非主键的列必须全表扫描,效率不高。目前已经有一些学者研究提出一些对于HBase非主键索引的设计方法。下面举例说明。(1)构建二级索引的方法。这种方法主要采取倒排索引的思想,将主表中待建立索引的列作为索引表中的主键,而主表的主键作为索引表的值,首先通过查询一次索引表,拿到相关列对应的主键,再从主表中查询对应的行,这种方法虽然简易,但是需要两次查询,牺牲了一些性能。(2)线性化索引方法,这种方法是通过把K维数据映射到一维空间,然后利用HBase的一维索引技术。这种方法在处理空间数据时有着很好的效果,但是处理文本数据并不理想,而医疗影像文件主要是数字和文本数据,所以这种方法也不适用。(3)双层索引法,该方法使用全局索引与局部索引相配合的形式,来减少查询的数据节点个数,从高层索引到低层索引缩小了查询范围。但是每次写入数据时都需要对双层索引进行维护,代价很大,而且具体的双层索引需要使用不同的数据结构,实现比较复杂。索引本身也是一种数据结构,目的是为了快速的定位数据他可以分为两个过程,第一,判断被检索的数据是否在集合中。第二,如果在,则定位到数据的准确位置。先看第一步,判断一个元素是否在一个长度为n的集合之中,最常见的方案就是拿这个元素与集合中的元素挨个比较,比如顺序表。但是这种算法的时间复杂度是O(n),效率低下。Hash算法是用一个下标范围比较大的数组来存储元素,每个元素的关键字经过之间设定好的哈希函数的计算,得到的结果与数组下标相对应,用这个数组单元来存储这个集合。使用Hash的优点是可以快速准确地定位元素,只需要O(1)的时间复杂度,当然这种算法可能会出现冲突,就是不同元素的关键字得出了相同的函数值,由此产生了很多冲突解决法。然而该方法比较浪费内存空间,因为数据量很大的情况下,存储数组也要设置的特别大才行。布隆过滤算法,原理上也是采用了Hash的实现机制,只不过它比Hash有更好的空间效率,其核心是随机化Hash中的映射函数。首先建立一个容量较大的位串结构,将集合中的每个关键字通过若干个Hash函数分别计算出相应的Hash值,然后对这些值分别用位串的长度取模,最后就是类似Hash表的操作,在其中对应的位置置1,我们将其称为特征值,简单说就是将每个关键字对应到位串中的几个位置上,当需要快速查找某个关键字时,只需要将其通过若干个Hash函数运算,然后映射到位串中的对应位,如果位串中的对应位全部是1,说明关键字匹配成功,如果至少有一位是0,则查找失败。但是这种算法也存在着缺陷,就是可能有不属于这个集合的元素被错判为属于这个集合,即“假阳性”。如果有一个非集合中的元素,经过Hash后的值在位串中置1的位置刚好与某个属于集合中的元素的位置完全相同,就会出现误判。本专利技术采取了一些优化方法将误判率降低。再看第二步,如果判定待查询元素在集合中之后,如何定位?本专利采用了一种改进后的二级索引方法,可以看到,传统的二级索引法之所以效率不高,主要是需要进行两次查询,其中需要将第一次查询到结果返回给客户端,然后客户端再发起一次查询,这样会产生一些多余的I/O操作,而网络I/O的速度对于内存的检索速度来讲是要慢很多的,所以只要通过一些方法减少这些I/O时间的牺牲就可以大幅提升二级索引法的查询速度。综上所述,本专利技术通过改进后的布隆过滤算法来判断待查询元素是否在集合中,可以迅速的获得反馈以及很低的误差率,之后通过重新设计的二级索引方案,可以减少传统的二级索引在效率上的不足。所以本专利技术提出一种将二者结合起来的新索引方案,采用位向量的方法将布隆过滤算法中全局的位串结构替换为每一个随机函数都分配一个位串的结构,以更好的降低误差率。同时,通过控制HBase的数据分片操作,使得索引表和数据表在物理上位于同一Region,这样就可以在同一个Region发起两次查询,而节省两次耗时的I/O操作。
技术实现思路
本专利技术的内容:①提出了基于布隆过滤算法构建HBase索引的方法,用来确定待查元素是否在索引表中,并且通过优化降低了误差率,传统的布隆过滤器是将待查元素经过多个哈希函数散列后的值映射到同一个位串中,而本专利技术的优化点在于将待查元素经过多个哈希函数散列后的值映射到不同的位串上,将这些位串组成一个向量组,以适当增加内存的方式减少了误差率。②提出了一种改进的Hbase二级索引的设计方法,通过HBase自带的协处理器,让数据表和索引表在物理上处于同一个Region中,将传统的HBase二级索引方案中需要的两次IO操作减少为一次,大幅提高检索速度。③提出了一种抽样散列法,解决HBaseRegion的写热点问题,即逻辑上相邻的数据总是会写到同一个或者相邻的Region中。这种方法预先估计HBase整个Region的数量,然后通过对行键的抽样,散列,将不同的写数据请求均分到不同的Region上,解决了写热点问题。本专利技术是一种集成式的索引设计方法,鉴于布隆过滤算法的众多优点,采用优化的布隆过滤算法作为索引的第一步,同时使用改进的二级索引方案进一步提高HBase索引的检索速度。为实现上述目的,本专利技术采用如下的技术方案:步骤1.采用位向量法对传统的布隆过滤算法进行优化,传统的布隆过滤器是将待查元素经过多个哈希函数散列后的值映射到同一个位串中,而本专利技术的优化点在于将待查元素经过多个哈希函数散列后的值映射到不同的位串上,将这些位串组成一个向量组,以适当增加内存的方式减少了误差率。将其应用于HBase的索引中作为第一层过滤,如果待查元素在索引表中,则进行步骤2;如果不在,跳到步骤4。步骤2.关闭HBase的自动分片功能,使用本专利技术改进后的二级索引方法,预估Region的数量,以及Region的分裂点,然后将数据表的主键进行散列,平均分割主键的范围,使得每次数据的写入不会集中于某个热点,更好的利用了HBase的将查询请求均分到各个服务器上的特性,最重要的是保证了数据表和索引表的统一性,减少I/O操作的时间消耗。步骤3.使用HBase自带的Coprocessor协处理器,构建索引模块,在步骤1中待查询元素在索引表中的情况下,通过协处理器将两次查询的过程在服务器本地进行,减少查询时间。步骤4.返回查询结果。附图说明图1布隆过滤算法的优化流程图图2二级索引方案的优化流程图图3预分片算法流程图图4综合的查询流程图具体实施方式本专利技术采用混合布隆过滤器与二级索引的基本方案,对其本文档来自技高网
...

【技术保护点】
1.一种用于医疗影像数据的基于布隆过滤器的HBase多级索引设计方法,其特征在于,包括以下步骤:步骤1.首先将查询请求发送给查询服务器,HBase Coprocessor协处理器会解析这个查询请求;步骤2.将查询先通过布隆过滤器过滤;步骤3.如果通过过滤,那么再去请求索引表;索引表的具体行键设计为region的起始行键+索引名+值+主表的行键;步骤4.过抽样散列法进行Region的预分区。

【技术特征摘要】
1.一种用于医疗影像数据的基于布隆过滤器的HBase多级索引设计方法,其特征在于,包括以下步骤:步骤1.首先将查询请求发送给查询服务器,HBaseCoprocessor协处理器会解析这个查询请求;步骤2.将查询先通过布隆过滤器过滤;步骤3.如果通过过滤,那么再去请求索引表;索引表的具体行键设计为region的起始行键+索引名+值+主表的行键;步骤4.过抽样散列法进行Region的预分区。2.根据权利要求1所述的用于医疗影像数据的基于布隆过滤器的HBase多级索引设计方法,其特征在于,步骤4具体如下:步骤1:预估Region数量N;其中RSXmx为一个RegionServer的内存大小;habse.regionserver.global.memstore.siz...

【专利技术属性】
技术研发人员:王丹陈文杰赵文兵杜金莲付利华杜晓琳苏航
申请(专利权)人:北京工业大学
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1