[发明专利]面向HDFS的split层索引方法和装置有效
申请号: | 201710946601.5 | 申请日: | 2017-10-12 |
公开(公告)号: | CN110019084B | 公开(公告)日: | 2022-01-14 |
发明(设计)人: | 唐凌;林文辉 | 申请(专利权)人: | 航天信息股份有限公司 |
主分类号: | G06F16/182 | 分类号: | G06F16/182;G06F16/22;G06F16/2458 |
代理公司: | 北京润平知识产权代理有限公司 11283 | 代理人: | 金旭鹏;肖冰滨 |
地址: | 100195 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 面向 hdfs split 索引 方法 装置 | ||
本发明涉及数据检索领域,公开了一种面向HDFS的split层索引方法和装置。该方法包括:接收查询请求;根据所述查询请求在预先建立的统计信息表中进行查询以确定相应的分块split;以及加载所确定的split以获取与所述查询请求对应的数据。本发明通过在预先建立的统计信息表中查询以确定相应的split,从而可以仅加载所确定的split以获取相应的数据,由此启动的Map数量就可以因仅加载所确定的split数量而大大减少,从而降低了I/O的时间开销,大大提高了查询速度。
技术领域
本发明涉及数据检索领域,具体地涉及面向HDFS的split层索引方法和装置。
背景技术
HDFS(Hadoop分布式文件系统)作为Hadoop生态圈的底层基础,通常被用来存储离线数据,并结合Map/Reduce来处理分析性查询,但对于对响应时间要求严格的选择性和交互式查询,则存在性能上的缺陷。
在传统的数据库管理技术中,提高查询处理速度最常用的方法是索引。通过索引来快速过滤掉不符合查询要求的数据,从而可以极大地降低I/O、缩小搜索范围、降低响应时间。然而,传统的索引技术并不能直接应用到HDFS的查询中。现有技术中对HDFS的查询需要启动Map来实现,而在Map Task处理阶段,Map Task初始化和RecordReader读取数据产生的磁盘I/O的时间开销占了很大比重。
发明内容
本发明提供了面向HDFS的split层索引方法和装置,用于解决I/O开销大的问题。
为了实现上述目的,本发明一方面提供了一种面向HDFS的split层索引方法,该方法包括:接收查询请求;根据所述查询请求在预先建立的统计信息表中进行查询以确定相应的分块split;以及加载所确定的split以获取与所述查询请求对应的数据。
优选地,所述统计信息表包括所有split中的每一个split的标识ID splitID和所有split中的每一个split所对应的索引属性的多个索引属性值;其中,一个splitID对应一个索引属性。
优选地,所述统计信息表中的每一个索引属性的多个索引属性值用多个数据区间来表示。
优选地,所述统计信息表的建立过程如下:对每一个splitID对应的索引属性的多个索引属性值按升序排序;计算升序排序后的多个索引属性值的相邻两个索引属性值之间的距离gap;以及将gap的值最大的k-1个gap所对应的2k-2个索引属性值以及所述多个索引属性值中的最小值和最大值这2k个value组合成k个数据区间;其中,所述k个数据区间相互不重叠,k为大于1的整数。
优选地,该方法还包括:将所述查询请求所对应的数据请求区间与所述统计信息表中的每一个split对应的所述k个数据区间进行比较,判断是否有交集;将存在交集的数据区间所对应的split进行加载;以及将不存在交集的数据区间所对应的split丢弃。
本发明第二方面提供了一种面向HDFS的split层索引装置,该装置包括:接收模块,用于接收查询请求;查询模块,用于根据所述查询请求在预先建立的统计信息表中进行查询以确定相应的分块split;以及加载模块,用于加载所确定的split以获取与所述查询请求对应的数据。
优选地,所述统计信息表包括所有split中的每一个split的标识ID splitID和所有split中的每一个split所对应的索引属性的多个索引属性值;其中,一个splitID对应一个索引属性。
优选地,所述统计信息表中的每一个索引属性的多个索引属性值用多个数据区间来表示。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于航天信息股份有限公司,未经航天信息股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710946601.5/2.html,转载请声明来源钻瓜专利网。