稀疏索引的建立方法和装置、稀疏索引及查询方法和装置制造方法及图纸

技术编号:8682765 阅读:230 留言:0更新日期:2013-05-09 02:43
本发明专利技术公开了一种稀疏索引的建立方法和装置:针对每个待处理的数据记录,分别利用同一散列函数计算其键值的散列值,并根据计算出的散列值将该数据记录保存到对应的分区中,保存到同一分区中的数据记录具有相同的散列值;对于任一分区,初始阶段,其中的内容为空,当所保存的数据记录达到预定要求时,利用所保存的数据记录组成一个文件块,当所保存的未组成文件块的数据记录再次达到预定要求时,利用未组成文件块的数据记录组成另一个文件块,依次类推;每组成一个文件块,则为该文件块建立一个索引项;应用上述方法和装置,能够加快稀疏索引的建立速度。本发明专利技术同时公开了一种稀疏索引以及基于该稀疏索引的查询方法和装置。

【技术实现步骤摘要】

本专利技术涉及数据处理技木,特别涉及一种稀疏索引的建立方法和装置、一种稀疏索引,以及ー种基于该稀疏索引的查询方法和装置。
技术介绍
当进行数据加载吋,为便于后续查询,通常会为数据记录建立索引,所述索引可以为桐密索引或稀疏索引等。其中,稠密索引需要为每个数据记录分别建立ー个索引项,而稀疏索引则只需要为每个分组分别建立ー个索引项,每个分组中分别包括若干个数据记录。现有技术中,通常按照以下方式来建立稀疏索引:按照某种规则,比如键值从小到大的顺序对各待处理的数据记录,即各待加载的数据记录进行排序;将排序后的数据记录进行切分,得到若干个分组;针对每个分组,分别建立ー个索引项,每个索引项中均包括一个键值和一个指针,键值通常是指分组中的第一个数据记录的键值,指针指向的是分组中的第一个数据记录的起始位置。图1为按照现有方式建立的稀疏索引的示意图。如图1所示,010101、020101等即为键值,粗箭头所指的一行即为ー个数据记录,前3个数据记录作为ー个分组,后4个数据记录作为ー个分组。但是,上述方式在实际应用中会存在一定的问题,S卩:由于需要先对各数据记录进行排序,然后才能进行后续处理,而排序的过程实现起来非常复杂,因此会导致稀疏索引的建立速度很慢。
技术实现思路
有鉴于此,本专利技术提供了一种稀疏索引的建立方法和装置,能够加快稀疏索引的建立速度。本专利技术同时提供了 一种稀疏索弓I以及基于该稀疏索弓I的查询方法和装置。为达到上述目的,本专利技术的技术方案是这样实现的:一种稀疏索引的建立方法,包括:针对每个待处理的数据记录,分别利用同一散列函数计算其键值的散列值,井根据计算出的散列值将该数据记录保存到对应的分区中,保存到同一分区中的数据记录具有相同的散列值;对于任一分区,初始阶段,其中的内容为空,当所保存的数据记录达到预定要求时,利用所保存的数据记录组成ー个文件块,当所保存的未组成文件块的数据记录再次达到预定要求吋,利用未组成文件块的数据记录组成另ー个文件块,依次类推;每组成ー个文件块,则为该文件块建立ー个索引项。一种稀疏索引的建立装置,包括:计算模块,用于针对每个待处理的数据记录,分别利用同一散列函数计算其键值的散列值,并将该数据记录及计算出的散列值发送给建立模块;所述建立模块,用于根据接收到的散列值将接收到的数据记录保存到对应的分区中,保存到同一分区中的数据记录具有相同的散列值;对于任一分区,初始阶段,其中的内容为空,当所保存的数据记录达到预定要求吋,利用所保存的数据记录组成ー个文件块,当所保存的未组成文件块的数据记录再次达到预定要求吋,利用未组成文件块的数据记录组成另ー个文件块,依次类推;每组成ー个文件块,则为该文件块建立ー个索引项。—种稀疏索引,包括:每个分区中的每个文件块分别对应ー个索引项;每个分区分别具有ー个不同于其它分区的编号,每个文件块分别具有ー个不同于同一分区中的其它文件块的编号;每个索引项中分别包括:最大键值、最小键值、分区号、文件块号和散列函数名;其中,最大键值是指该索引项对应的文件块中的各数据记录的键值中的最大值;最小键值是指该索引项对应的文件块中的各数据记录的键值中的最小值;分区号是指该索引项对应的文件块所属的分区的编号;文件块号是指该索引项对应的文件块的编号。一种基于上述稀疏索引的查询方法,包括:接收待查询键值,并从各索引项中查找出最小键值小于或等于待查询键值且最大键值大于或等于待查询键值的索引项,将查找出的索引项作为候选索引项;针对每个候选索引项,分别利用其中的散列函数名对应的散列函数计算待查询键值的散列值以及该候选索引项中的最小键值或最大键值的散列值,如果待查询键值的散列值等于该候选索引项中的最小键值或最大键值的散列值,则将该候选索引项作为结果索引项;遍历各结果索引项对应的文件块中的各数据记录,得到待查询键值对应的数据记求。一种基于上述稀疏索引的查询装置,包括:接收模块,用于接收待查询键值,并发送给处理模块;所述处理模块,用于从各索引项中查找出最小键值小于或等于待查询键值且最大键值大于或等于待查询键值的索引项,将查找出的索引项作为候选索引项;针对每个候选索引项,分别利用其中的散列函数名对应的散列函数计算待查询键值的散列值以及该候选索引项中的最小键值或最大键值的散列值,如果待查询键值的散列值等于该候选索引项中的最小键值或最大键值的散列值,则将该候选索引项作为结果索引项;遍历各结果索引项对应的文件块中的各数据记录,得到待查询键值对应的数据记录。可见,采用本专利技术的技术方案,无需对各待处理的数据记录进行排序,即可完成稀疏索引的建立,从而加快了稀疏索引的建立速度,并可基于该稀疏索引完成数据查询。附图说明图1为按照现有方式建立的稀疏索引的示意图。图2为本专利技术稀疏索引的建立方法实施例的流程图。图3为本专利技术所述稀疏索引的建立过程示意图。图4为按照本专利技术所述方式建立的稀疏索引的示意图。图5为本专利技术稀疏索引的建立装置实施例的组成结构示意图。图6为本专利技术稀疏索引的查询装置实施例的组成结构示意图。具体实施例方式针对现有技术中存在的问题,本专利技术中提出ー种改进后的稀疏索引的建立方案,无需对各待处理的数据记录进行排序,从而加快了稀疏索引的建立速度。为使本专利技术的技术方案更加清楚、明白,以下參照附图并举实施例,对本专利技术所述方案作进ー步地详细说明。图2为本专利技术稀疏索引的建立方法实施例的流程图。如图2所示,包括以下步骤:步骤21:针对每个待处理的数据记录,分别利用同一散列函数计算其键值的散列值,井根据计算出的散列值将该数据记录保存到对应的分区中,保存到同一分区中的数据记录具有相同的散列值。通常,在进行数据加载时需要建立索引,因此,上述待处理的数据记录通常是指待加载的数据记录。本步骤中,分别获取每个待处理的数据记录,并针对获取到的每个数据记录,分别按照以下方式进行处理:I)利用散列函数计算该数据记录的键值的散列值;2)根据计算出的散列值将该数据记录保存到对应的分区中,保存到同一分区中的数据记录具有相同的散列值。具体采用何种散列函数来计算散列值可根据实际需要而定。根据散列函数可以计算出多少种不同的散列值,即会有多少个不同的分区。步骤22:对于任一分区,初始阶段,其中的内容为空,当所保存的数据记录达到预定要求吋,利用所保存的数据记录组成ー个文件块,当所保存的未组成文件块的数据记录再次达到预定要求吋,利用未组成文件块的数据记录组成另ー个文件块,依次类推;每组成ー个文件块,则为该文件块建立ー个索引项。对于任一分区,初始阶段,其中的内容为空,随着所保存的数据记录的不断增多,逐步产生不同的文件块,即:当所保存的数据记录达到预定要求时,利用所保存的数据记录组成ー个文件块,之后,当所保存的未组成文件块的数据记录再次达到预定要求吋,利用未组成文件块的数据记录组成另ー个文件块,依次类推;特殊地,当不再有新的数据记录需要保存,即所有待处理的数据记录均已处理完毕,但所保存的未组成文件块的数据记录未达到预定要求吋,利用未组成文件块的数据记录组成ー个文件块。举例说明:假设上述达到预定要求是指达到预定个数,并假设预定个数是指100个,那么,对于任一分区,当所保存的数据记录达到100个时,利用这100个数据记录组成一个文件块,在此之后,如果又新保存了 100个数本文档来自技高网...

【技术保护点】
一种稀疏索引的建立方法,其特征在于,包括:针对每个待处理的数据记录,分别利用同一散列函数计算其键值的散列值,并根据计算出的散列值将该数据记录保存到对应的分区中,保存到同一分区中的数据记录具有相同的散列值;对于任一分区,初始阶段,其中的内容为空,当所保存的数据记录达到预定要求时,利用所保存的数据记录组成一个文件块,当所保存的未组成文件块的数据记录再次达到预定要求时,利用未组成文件块的数据记录组成另一个文件块,依次类推;每组成一个文件块,则为该文件块建立一个索引项。

【技术特征摘要】
1.一种稀疏索引的建立方法,其特征在于,包括: 针对每个待处理的数据记录,分别利用同一散列函数计算其键值的散列值,井根据计算出的散列值将该数据记录保存到对应的分区中,保存到同一分区中的数据记录具有相同的散列值; 对于任一分区,初始阶段,其中的内容为空,当所保存的数据记录达到预定要求时,利用所保存的数据记录组成ー个文件块,当所保存的未组成文件块的数据记录再次达到预定要求吋,利用未组成文件块的数据记录组成另ー个文件块,依次类推;每组成ー个文件块,则为该文件块建立ー个索引项。2.根据权利要求1所述的方法,其特征在于,该方法进ー步包括:对于任一分区,当不再有新的数据记录需要保存,但所保存的未组成文件块的数据记录未达到预定要求时,利用未组成文件块的数据记录组成ー个文件块。3.根据权利要求1或2所述的方法,其特征在于,所述达到预定要求包括:达到预定个数。4.根据权利要求1所述的方法,其特征在干, 姆个分区分别具有ー个不同于其它分区的编号,姆个文件块分别具有ー个不同于同一分区中的其它文件块的编号; 每个索引项中分别包括:最大键值、最小键值、分区号、文件块号和散列函数名;其中, 最大键值是指该索引项对应的文件块中的各数据记录的键值中的最大值; 最小键值是指该索引项对应的文件块中的各数据记录的键值中的最小值; 分区号是指该索引项对应的文件块所属的分区的编号; 文件块号是指该索引项对应的文件块的编号; 散列函数名是指计算散列值时所使用的散列函数的名称。5.根据权利要求4所述的方法,其特征在干,当所述稀疏索引建立完毕之后,进ー步包括: 接收待查询键值,并从各索引项中查找出最小键值小于或等于待查询键值且最大键值大于或等于待查询键值的索引项,将查找出的索引项作为候选索引项;针对每个候选索引项,分别利用其中的散列函数名对应的散列函数计算待查询键值的散列值以及该候选索引项中的最小键值或最大键值的散列值,如果待查询键值的散列值等于该候选索引项中的最小键值或最大键值的散列值,则将该候选索引项作为结果索引项;遍历各结果索引项对应的文件块中的各数据记录,得到待查询键值对应的数据记录。6.一种稀疏索引的建立装置,其特征在于,包括: 计算模块,用于针对每个待处理的数据记录,分别利用同一散列函数计算其键值的散列值,并将该数据记录及计算出的散列值发送给建立模块; 所述建立模块,用于根据接收到的散列值将接收到的数据记录保存到对应的分区中,保存到同一分区中的数据记录具有相同的散列值;对于任一分区,初始阶段,其中的内容为空,当所保存的数据记录达到预定要求吋,利用所保存的数据记录组成ー个文件块,当所保存的未组成文件块的数据记录再次达到预定要求吋,利用未组成文件块的数据记录组成另ー个文件块,依次类推;每组成ー个文件块,则为该文件块建立ー个索引项。7.根据权利要求6所述的装置,其特征在干,所述建立模块进一歩用干,对于任一分区,当不再有新的数据记录需要保存,但所保存的未组成文件块的数据记录未达到预定要求时,利用未组成文件块的数据记录组成ー个文件块。8.根据权利要求6或7所述的装置,其特征在于,所述达到预定要求包括:...

【专利技术属性】
技术研发人员:周大钱岭郭磊涛齐骥
申请(专利权)人:中国移动通信集团公司
类型:发明
国别省市:

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

1