CN110019084A - 面向HDFS的split层索引方法和装置 - Google Patents
面向HDFS的split层索引方法和装置 Download PDFInfo
- Publication number
- CN110019084A CN110019084A CN201710946601.5A CN201710946601A CN110019084A CN 110019084 A CN110019084 A CN 110019084A CN 201710946601 A CN201710946601 A CN 201710946601A CN 110019084 A CN110019084 A CN 110019084A
- Authority
- CN
- China
- Prior art keywords
- split
- value
- index attributes
- statistics table
- index
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2462—Approximate or statistical queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Software Systems (AREA)
- Fuzzy Systems (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及数据检索领域,公开了一种面向HDFS的split层索引方法和装置。该方法包括:接收查询请求;根据所述查询请求在预先建立的统计信息表中进行查询以确定相应的分块split;以及加载所确定的split以获取与所述查询请求对应的数据。本发明通过在预先建立的统计信息表中查询以确定相应的split,从而可以仅加载所确定的split以获取相应的数据,由此启动的Map数量就可以因仅加载所确定的split数量而大大减少,从而降低了I/O的时间开销,大大提高了查询速度。
Description
技术领域
本发明涉及数据检索领域,具体地涉及面向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对应一个索引属性。
优选地,所述统计信息表中的每一个索引属性的多个索引属性值用多个数据区间来表示。
优选地,该装置还包括:信息处理模块,用于建立所述统计信息表;其中,所述统计信息表的建立过程如下:对每一个splitID对应的索引属性的多个索引属性值按升序排序;计算升序排序后的多个索引属性值的相邻两个索引属性值之间的距离gap;以及将gap的值最大的k-1个gap所对应的2k-2个索引属性值以及所述多个索引属性值中的最小值和最大值这2k个value组合成k个数据区间;其中,所述k个数据区间相互不重叠,k为大于1的整数。
优选地,所述查询模块还用于:将所述查询请求所对应的数据请求区间与所述统计信息表中的每一个split对应的所述k个数据区间进行比较,判断是否有交集;将存在交集的数据区间所对应的split进行加载;以及将不存在交集的数据区间所对应的split丢弃。
通过上述技术方案,本发明通过在预先建立的统计信息表中查询以确定相应的split,从而可以仅加载所确定的split以获取相应的数据,由此启动的Map数量就可以因仅加载所确定的split数量而大大减少,从而降低了I/O的时间开销,大大提高了查询速度。
附图说明
图1是本发明提供的面向HDFS的split层索引方法的流程图;
图2是本发明提供的建立统计信息表的流程图;
图3是本发明提供的统计信息表的构成图;
图4是本发明提供的统计信息表的流程图;以及
图5是本发明提供的面向HDFS的split层索引装置的框图。
具体实施方式
以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
图1是本发明提供的面向HDFS的split层索引方法的流程图,如图1所示,该方法包括:
步骤101,接收查询请求。
步骤102,根据查询请求在预先建立的统计信息表中进行查询以确定相应的分块split。
步骤103,加载所确定的split以获取与查询请求对应的数据。
其中统计信息表是预先建立好的,具体建立的过程将在下文中进行详细描述,在查询到相应的split之后,系统仅需要加载所确定的split以获取对应的数据。本领域技术人员应当理解,在查询HDFS时,启动的Map数量与split数量相对应,也就是说,查询的split数量越少,则启动的Map数量就越少,所以,在以上技术特征中,系统仅需要加载所确定的split以获取对应的数据就大大减少了所要查询的split的数量,由此启动的Map数量也就大大减少了,从而大大减少了I/O开销。
其中可以对每一个数据文件建立一张统计信息表,统计信息表包括所有split中的每一个split的标识ID splitID和所有split中的每一个split所对应的索引属性的多个索引属性值;其中,一个splitID对应一个索引属性。具体来说,统计信息表中有多条记录,每一条记录包括一个split,也就是说,每一条记录包括一个splitID和该splitID对应的索引属性的多个索引属性值。每一个索引属性的多个索引属性值用多个数据区间来表示。综上,统计信息表由多个split,每一个split用一条记录对其进行描述,一条记录就是统计信息表中的一行,统计信息表的每一行有一个splitID和与该splitID对应的多个数据区间,例如,第一列为splitID,第二列为多个数据区间。
图2是本发明提供的建立统计信息表的流程图,如图2所示,统计信息表的建立过程如下:
步骤201,对每一个splitID对应的索引属性的多个索引属性值按升序排序,其中可以对多个属性值中进行去重操作;
步骤202,计算升序排序后的多个索引属性值的相邻两个索引属性值之间的距离gap;以及
步骤203,将gap的值最大的k-1个gap所对应的2k-2个索引属性值以及多个索引属性值中的最小值和最大值这2k个value组合成k个数据区间;
其中,k个数据区间相互不重叠,k为大于1的整数。建立统计信息表的核心工作是划分split索引属性的数据区间。理论上讲,split索引属性的数据区间越多,越能精确描述索引属性值的分布,也就越能精确地实现过滤。但是,统计信息表是加载到内存中的,因此不能占用太多的空间。在这里用一个常量k来限制一个split的索引属性的划分区间数,k的大小由应用决定,比如服务器的内存大小、split数量、split数据的分布等。
下面结合图3对图2中所描述的建立统计信息表的流程进行进一步的阐述。图3是本发明提供的统计信息表的构成图,如图3所示,每一个split对应一个唯一ID,即splitID,每一个split都有一个索引属性,索引属性的索引属性值用value表示。
根据图2中的步骤201,对每一个splitID所对应的索引属性的多个索引属性值按升序排序,得到升序排序后的多个索引属性值,然后进行去重,将去重后的且升序排序的多个索引属性值用values表示。
根据图2中的步骤202,计算values中相邻两个索引属性值之间的gap,这里采用的方式式对values进行遍历来得到相邻两个value之间的gap。
根据图2中的步骤203,在步骤202中所计算得到的所有gap中,选择最大的k-1个gap,从而得到这最大的k-1个gap所对应的value,即得到2k-2个value,将这2k-2个value与values中的最小值(用valuemin表示)和最大值(用valuemax表示)组合成k个数据区间。其中,2k-2个value与valuemin和valuemax一起共有2k个value,这2k个value从小到大为valuemin,value1,value2,……,value2k-2,valuemin,组合成的k个数据区间为[valuemin,value1],[value2,value3],……,[value2k-2,valuemax]。
图3中,gap1,gap2,……,gapk-1为相邻两个value之间距离最大的k-1个gap值,value1,value2,……,value2k-2为与最大的k-1个gap值对应的2k-2个value值,valuemin为values中的最小值,valuemax为values中的最大值,splitID为split的唯一标识ID。
图4是本发明提供的查询统计信息表的流程图,如图4所示,该流程包括:
步骤401,将查询请求所对应的数据请求区间与统计信息表中的每一个split对应的所述k个数据区间进行比较。
步骤402,根据比较结果判断是否有交集,也就是数据请求区间与统计信息表中的数据区间中的任意数据区间是否有交集,如果有交集,则执行步骤403,如果没有交集,则执行步骤404。
步骤403,加载split,即,将存在交集的数据区间所对应的split进行加载,以进行后续处理。
步骤404,丢弃split,即,将不存在交集的数据区间所对应的split丢弃。
图5是本发明提供的面向HDFS的split层索引装置的框图,如图5所示,该装置包括接收模块501、查询模块502和加载模块503。其中接收模块501用于接收查询请求;查询模块502用于根据查询请求在预先建立的统计信息表中进行查询以确定相应的分块split;加载模块503用于加载所确定的split以获取与查询请求对应的数据。此外,本发明提供的面向HDFS的split层索引装置还包括信息处理模块(图中未示出),该信息处理模块用于建立统计信息表。
应当说明的是,本发明提供的面向HDFS的split层索引装置的具体细节及益处与本发明提供的面向HDFS的split层索引方法类似,于此不予赘述。
以上结合附图详细描述了本发明实施例的可选实施方式,但是,本发明实施例并不限于上述实施方式中的具体细节,在本发明实施例的技术构思范围内,可以对本发明实施例的技术方案进行多种简单变型,这些简单变型均属于本发明实施例的保护范围。
本发明提供的技术方案是在split层对HDFS查询速度进行优化,通过以上技术方案过滤掉无关的split,从而减少了启动的Map数量和磁盘I/O的开销,大大提高的HDFS的查询速度。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本发明实施例对各种可能的组合方式不再另行说明。
此外,本发明实施例的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明实施例的思想,其同样应当视为本发明实施例所公开的内容。
Claims (10)
1.一种面向HDFS的split层索引方法,其特征在于,该方法包括:
接收查询请求;
根据所述查询请求在预先建立的统计信息表中进行查询以确定相应的分块split;以及
加载所确定的split以获取与所述查询请求对应的数据。
2.根据权利要求1所述的方法,其特征在于,所述统计信息表包括所有split中的每一个split的标识ID splitID和所有split中的每一个split所对应的索引属性的多个索引属性值;
其中,一个splitID对应一个索引属性。
3.根据权利要求2所述的方法,其特征在于,所述统计信息表中的每一个索引属性的多个索引属性值用多个数据区间来表示。
4.根据权利要求2或3所述的方法,其特征在于,所述统计信息表的建立过程如下:
对每一个splitID对应的索引属性的多个索引属性值按升序排序;
计算升序排序后的多个索引属性值的相邻两个索引属性值之间的距离gap;以及
将gap的值最大的k-1个gap所对应的2k-2个索引属性值以及所述多个索引属性值中的最小值和最大值这2k个value组合成k个数据区间;
其中,所述k个数据区间相互不重叠,k为大于1的整数。
5.根据权利要求4所述的方法,其特征在于,该方法还包括:
将所述查询请求所对应的数据请求区间与所述统计信息表中的每一个split对应的所述k个数据区间进行比较,判断是否有交集;
将存在交集的数据区间所对应的split进行加载;以及
将不存在交集的数据区间所对应的split丢弃。
6.一种面向HDFS的split层索引装置,其特征在于,该装置包括:
接收模块,用于接收查询请求;
查询模块,用于根据所述查询请求在预先建立的统计信息表中进行查询以确定相应的分块split;以及
加载模块,用于加载所确定的split以获取与所述查询请求对应的数据。
7.根据权利要求6所述的装置,其特征在于,所述统计信息表包括所有split中的每一个split的标识ID splitID和所有split中的每一个split所对应的索引属性的多个索引属性值;
其中,一个splitID对应一个索引属性。
8.根据权利要求7所述的装置,其特征在于,所述统计信息表中的每一个索引属性的多个索引属性值用多个数据区间来表示。
9.根据权利要求7或8所述的装置,其特征在于,该装置还包括:
信息处理模块,用于建立所述统计信息表;
其中,所述统计信息表的建立过程如下:
对每一个splitID对应的索引属性的多个索引属性值按升序排序;
计算升序排序后的多个索引属性值的相邻两个索引属性值之间的距离gap;以及
将gap的值最大的k-1个gap所对应的2k-2个索引属性值以及所述多个索引属性值中的最小值和最大值这2k个value组合成k个数据区间;
其中,所述k个数据区间相互不重叠,k为大于1的整数。
10.根据权利要求9所述的装置,其特征在于,
所述查询模块还用于:将所述查询请求所对应的数据请求区间与所述统计信息表中的每一个split对应的所述k个数据区间进行比较,判断是否有交集;以及
所述加载模块还用于:将存在交集的数据区间所对应的split进行加载;及将不存在交集的数据区间所对应的split丢弃。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710946601.5A CN110019084B (zh) | 2017-10-12 | 2017-10-12 | 面向HDFS的split层索引方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710946601.5A CN110019084B (zh) | 2017-10-12 | 2017-10-12 | 面向HDFS的split层索引方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110019084A true CN110019084A (zh) | 2019-07-16 |
CN110019084B CN110019084B (zh) | 2022-01-14 |
Family
ID=67186609
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710946601.5A Active CN110019084B (zh) | 2017-10-12 | 2017-10-12 | 面向HDFS的split层索引方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110019084B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020152190A1 (en) * | 2001-02-07 | 2002-10-17 | International Business Machines Corporation | Customer self service subsystem for adaptive indexing of resource solutions and resource lookup |
US20070005631A1 (en) * | 2005-06-30 | 2007-01-04 | International Business Machines Corporation | Apparatus and method for dynamically determining index split options from monitored database activity |
CN101158965A (zh) * | 2007-10-25 | 2008-04-09 | 中国科学院计算技术研究所 | 一种分布式文件系统的文件读系统和方法 |
CN101178708A (zh) * | 2006-11-07 | 2008-05-14 | 北京酷讯科技有限公司 | 针对结构化网页的自动模板信息定位方法 |
CN101193127A (zh) * | 2007-11-28 | 2008-06-04 | 中兴通讯股份有限公司 | 一种间接获取数据包输入接口信息的方法及装置 |
CN101719155A (zh) * | 2009-12-29 | 2010-06-02 | 北京航空航天大学 | 一种支持分布式多集群计算环境的多维属性范围查询的方法 |
CN102073726A (zh) * | 2011-01-11 | 2011-05-25 | 百度在线网络技术(北京)有限公司 | 搜索引擎系统及该搜索引擎系统的结构化数据引入方法 |
CN102201007A (zh) * | 2011-06-14 | 2011-09-28 | 悠易互通(北京)广告有限公司 | 一种大规模数据搜索系统 |
CN105718521A (zh) * | 2016-01-15 | 2016-06-29 | 湖南大学 | 一个基于Wavelet Tree的网络数据包索引系统 |
-
2017
- 2017-10-12 CN CN201710946601.5A patent/CN110019084B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020152190A1 (en) * | 2001-02-07 | 2002-10-17 | International Business Machines Corporation | Customer self service subsystem for adaptive indexing of resource solutions and resource lookup |
US20070005631A1 (en) * | 2005-06-30 | 2007-01-04 | International Business Machines Corporation | Apparatus and method for dynamically determining index split options from monitored database activity |
CN101178708A (zh) * | 2006-11-07 | 2008-05-14 | 北京酷讯科技有限公司 | 针对结构化网页的自动模板信息定位方法 |
CN101158965A (zh) * | 2007-10-25 | 2008-04-09 | 中国科学院计算技术研究所 | 一种分布式文件系统的文件读系统和方法 |
CN101193127A (zh) * | 2007-11-28 | 2008-06-04 | 中兴通讯股份有限公司 | 一种间接获取数据包输入接口信息的方法及装置 |
CN101719155A (zh) * | 2009-12-29 | 2010-06-02 | 北京航空航天大学 | 一种支持分布式多集群计算环境的多维属性范围查询的方法 |
CN102073726A (zh) * | 2011-01-11 | 2011-05-25 | 百度在线网络技术(北京)有限公司 | 搜索引擎系统及该搜索引擎系统的结构化数据引入方法 |
CN102201007A (zh) * | 2011-06-14 | 2011-09-28 | 悠易互通(北京)广告有限公司 | 一种大规模数据搜索系统 |
CN105718521A (zh) * | 2016-01-15 | 2016-06-29 | 湖南大学 | 一个基于Wavelet Tree的网络数据包索引系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110019084B (zh) | 2022-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107094165A (zh) | 配送能力确定、配送任务获取、配送资源调度方法和设备 | |
EP3163466B1 (en) | Trajectory data inquiry method and apparatus | |
CN103699618B (zh) | 数据报表的生成方法和系统 | |
CN104486129B (zh) | 分布式环境下保障应用服务质量的方法及系统 | |
CN103647800A (zh) | 推荐应用资源的方法及系统 | |
CN103617508A (zh) | 可配置的业务规则插件扩展装置和业务规则插件扩展方法 | |
CN103995807B (zh) | 一种基于Web架构下海量数据查询和二次处理的方法 | |
CN105989084A (zh) | 一种回复问题的方法和设备 | |
WO2022134471A1 (zh) | 区块链节点的管理方法、装置、计算机设备和存储介质 | |
CN105426375A (zh) | 一种关系网络的计算方法及装置 | |
CN109769009B (zh) | 一种去中心化云存储平台系统 | |
US20230017198A1 (en) | Method and apparatus for adjusting train diagram | |
CN103473848B (zh) | 一种基于高并发的网络发票查验构架及方法 | |
CN107959695A (zh) | 一种数据传输方法及装置 | |
CN109388636A (zh) | 业务数据插入数据库方法、装置、计算机设备及存储介质 | |
CN106033438A (zh) | 舆情数据存储方法和服务器 | |
CN111258760A (zh) | 一种平台管理方法、系统、装置及存储介质 | |
CN105743952B (zh) | 一种业务处理方法、服务器以及erp客户端 | |
CN104182546B (zh) | 数据库的数据查询方法及装置 | |
CN109145092B (zh) | 一种数据库更新、智能问答管理方法、装置及其设备 | |
KR101744317B1 (ko) | 서버 장치 및 위치 변화를 관리하는 방법 | |
CN105243078A (zh) | 一种文件资源的分发方法、系统和装置 | |
CN110019084A (zh) | 面向HDFS的split层索引方法和装置 | |
CN106169979B (zh) | 一种业务处理方法和设备 | |
CN105812203B (zh) | 一种请求消息处理方法及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |