一种为数据建立索引的方法以及装置制造方法及图纸

技术编号:28048565 阅读:10 留言:0更新日期:2021-04-09 23:39
一种为数据建立索引的方法,对原始数据表内的原始数据进行分段拟合获得M段原始数据以及第一层映射关系,进一步对每段原始数据的首键进行分段拟合,获得N段首键以及第二层映射关系。在后续数据查询的过程中,待查询的键从高到低依次输入多层映射关系,直至定位待查询的键在原始数据表中的位置。通过该方法建立的数据索引,充分考虑到了原始数据自身的特性,降低了数据索引的复杂度,提升了数据查询的效率。

【技术实现步骤摘要】
【国外来华专利技术】一种为数据建立索引的方法以及装置
本申请涉及计算机
,尤其涉及为数据建立索引的方法、执行该方法的装置和设备。
技术介绍
在数据库和大数据等领域都有对数据进行快速查找的需求,通常可以通过为数据构建索引来提升后续查找数据的效率,例如,可以为数据构建B树或B+树作为索引。B+树需要基于固定规则为数据构建。然而,在构建索引时,数据本身的特点与构建索引采用的规则之间并无关系,且基于固定规则构建的索引需要占用大量的空间。
技术实现思路
本申请实施例提供了一种为数据建立索引的方法,通过该方法建立的数据索引的复杂度低,占用的存储空间小。本申请实施例的第一方面提供一种为数据建立索引的方法,包括获取原始数据表,所述原始数据表中包括多个原始数据,每个原始数据包括键key和值value;根据所述多个原始数据的键对所述多个原始数据进行分段,获取M段原始数据以及M个第一映射关系,也即采用M个第一映射关系来拟合原始数据的键和原始数据的键在原始数据表中位置之间的关系,其中,每个第一映射关系指示一段原始数据的键与该段原始数据的键在所述原始数据表中所在的位置之间的对应关系;获取所述M段原始数据中每段原始数据的首键;对获取的M个首键进行分段,获取N段首键以及N个第二映射关系,其中,每个第二映射关系指示一段首键内的首键与该段首键内的首键的源数据段的第一映射关系的标识的对应关系,该段首键内的首键从所述源数据段获取,M为大于1的整数,N为大于或等于1的整数。该方法在两次分段的过程中获取的映射关系依据原始数据的键在原始数据表中的位置获得,因此,两个映射关系的获取依据原始数据本身的特性,并不依赖于固定的索引建立规则。通过该方法获取的映射关系所占用的存储空间小、复杂度低。在一种可能的实现方式中,每个第一映射关系包括第一单调函数,所述第一单调函数的输入为键,所述第一单调函数的输出为所述键在所述原始数据表中所在的位置。在一种可能的实现方式中,每个第二映射关系包括第二单调函数,所述第二单调函数的输入为键,所述第二单调函数的输出为一个第一映射关系的标识。以上单调函数,指代在定义区间内随着自变量(输入)增加(减少),因变量(输出)也随之增加(减少)的函数。在一种可能的实现方式中,如果第二层映射关系(第二映射关系)仍然需要进一步分段,该方法进一步提供了第三映射关系的获取方式,包括:获取N段首键中每段首键的首键;对获取的N段首键的N个首键进行分段,获取J段首键段的首键以及J个第三映射关系,其中,每个第三映射关系指示一个首键段的首键段内的首键与一个第二映射关系的标识的对应关系,J为大于或等于1的整数。如果第二映射关系仍然需要进一步分段(N大于1的情况),则可以进一步提取N段首键中每段首键内的首键来分段,通过更多层映射关系来构成原始数据的索引,可以进一步提升后续数据查询的效率。在一种可能的实现方式中,所述方法应用于数据库,所述原始数据表从所述数据库获取,所述方法还包括:将所述M个第一映射关系和所述N个第二映射关系存入存储器。在一种可能的实现方式中,在索引建立完毕后,本申请实施例进一步提供了基于前述获取的映射关系来在原始数据表中查询键的方法,包括:获取待查询的键;根据所述待查询的键和所述N个第二映射关系,确定所述待查询的键对应的第一映射关系;根据所述待查询的键和确定出的所述待查询的键对应的第一映射关系,获得所述待查询的键在所述原始数据表中所在的位置。由于每一个映射关系内包括的原始数据的数量一般远高于传统的数据索引(例如B+树)的扇出(fanout)数,因此,通过多层映射关系来在原始数据表中定位待查询的键的过程中,需要进行的运算次数少,查询效率高。本申请实施例的第二方面提供一种基于索引的数据查询方法,包括:获取待查询的键;访问存储器中存储的第二映射关系,根据所述第二映射关系和待查询的键,确定所述待查询的键对应的第一映射关系的标识,其中,所述第二映射关系指示该待查询的键与该待查询的键所在的源数据段的第一映射关系的标识的对应关系;根据确定出的所述待查询的键对应的第一映射关系的标识,访问所述存储器中存储的所述待查询的键对应的第一映射关系,获得所述待查询的键在原始数据表中所在的位置,其中,所述第一映射关系指示一段原始数据的键与该段原始数据的键在所述原始数据表中所在的位置之间的对应关系。在一种实现方式中,如果存储器中还存储有第三映射关系,所述方法在访问所述第二映射关系之前,还包括:访问所述存储器中存储的第三映射关系,根据所述第三映射关系确定所述待查询的键对应的第二映射关系的标识。以上提供的数据查询方法,利用多层映射关系,采用一定次数的运算即可确定待查询的键在原始数据表中的位置,运算次数等于映射关系的层数,提升了数据查询的效率。本申请实施例的第三方面提供一种数据处理装置,包括:数据表存储模块,用于存储原始数据表,所述原始数据表中包括多个原始数据,每个原始数据包括键key和值value;索引创建模块,用于获取所述原始数据表;根据所述多个原始数据的键对所述多个原始数据进行分段,获取M段原始数据以及M个第一映射关系,其中,每个第一映射关系指示一段原始数据的键与该段原始数据的键在所述原始数据表中所在的位置之间的对应关系,M为大于1的整数;获取所述M段原始数据中每段原始数据的首键;对获取的M个首键进行分段,获取N段首键以及N个第二映射关系,其中,每个第二映射关系指示一段首键内的首键与该段首键内的首键的源数据段的第一映射关系的标识的对应关系,该段首键内的首键从所述源数据段获取,N为大于或等于1的整数;索引存储模块,用于存储所述M个第一映射关系和所述N个第二映射关系。在一种可能的实现方式中,每个第一映射关系包括第一单调函数,所述第一单调函数的输入为键,所述第一单调函数的输出为所述键在所述原始数据表中所在的位置。在一种可能的实现方式中,每个第二映射关系包括第二单调函数,所述第二单调函数的输入为键,所述第二单调函数的输出为一个第一映射关系的标识。在一种可能的实现方式中,所述索引创建模块,还用于获取N段首键中每段首键的首键;对获取的N段首键的N个首键进行分段,获取J段首键段的首键以及J个第三映射关系,其中,每个第三映射关系指示一个首键段的首键段内的首键与一个第二映射关系的标识的对应关系,J为大于或等于1的整数;所述索引存储模块,还用于存储所述J个第三映射关系。在一种可能的实现方式中,所述数据处理装置还包括数据查询模块;所述数据查询模块,用于获取待查询的键;根据所述待查询的键和所述N个第二映射关系,确定所述待查询的键对应的第一映射关系;根据所述待查询的键和确定出的所述待查询的键对应的第一映射关系,获得所述待查询的键在所述原始数据表中所在的位置。本申请的第四方面提供一种计算设备系统,该系统包括至少一个计算设备,每个计算设备包括处理器和存储器;所述至少一个计算设备的处理器,用于获取原始数据表,所述原始数据表中包括多个原始数据,每个原始数据包括键key和值value;根据所述多个原始数据的键本文档来自技高网...

【技术保护点】
一种为数据建立索引的方法,其特征在于,包括:/n获取原始数据表,所述原始数据表中包括多个原始数据,每个原始数据包括键key和值value;/n根据所述多个原始数据的键对所述多个原始数据进行分段,获取M段原始数据以及M个第一映射关系,其中,每个第一映射关系指示一段原始数据的键与该段原始数据的键在所述原始数据表中所在的位置之间的对应关系,M为大于1的整数;/n获取所述M段原始数据中每段原始数据的首键;/n对获取的M个首键进行分段,获取N段首键以及N个第二映射关系,其中,每个第二映射关系指示一段首键内的首键与该段首键内的首键的源数据段的第一映射关系的标识的对应关系,该段首键内的首键从所述源数据段获取,N为大于或等于1的整数。/n

【技术特征摘要】
【国外来华专利技术】一种为数据建立索引的方法,其特征在于,包括:
获取原始数据表,所述原始数据表中包括多个原始数据,每个原始数据包括键key和值value;
根据所述多个原始数据的键对所述多个原始数据进行分段,获取M段原始数据以及M个第一映射关系,其中,每个第一映射关系指示一段原始数据的键与该段原始数据的键在所述原始数据表中所在的位置之间的对应关系,M为大于1的整数;
获取所述M段原始数据中每段原始数据的首键;
对获取的M个首键进行分段,获取N段首键以及N个第二映射关系,其中,每个第二映射关系指示一段首键内的首键与该段首键内的首键的源数据段的第一映射关系的标识的对应关系,该段首键内的首键从所述源数据段获取,N为大于或等于1的整数。


如权利要求1所述的方法,其特征在于,每个第一映射关系包括第一单调函数,所述第一单调函数的输入为键,所述第一单调函数的输出为所述键在所述原始数据表中所在的位置。


如权利要求1或2所述的方法,其特征在于,每个第二映射关系包括第二单调函数,所述第二单调函数的输入为键,所述第二单调函数的输出为一个第一映射关系的标识。


如权利要求1至3任一所述的方法,其特征在于,还包括:
获取N段首键中每段首键的首键;
对获取的N段首键的N个首键进行分段,获取J段首键段的首键以及J个第三映射关系,其中,每个第三映射关系指示一个首键段的首键段内的首键与一个第二映射关系的标识的对应关系,J为大于或等于1的整数。


如权利要求1至4任一所述的方法,其特征在于,所述方法应用于数据库,所述原始数据表从所述数据库获取,所述方法还包括:
将所述M个第一映射关系和所述N个第二映射关系存入存储器。


如权利要求1至5任一所述的方法,其特征在于,还包括:
获取待查询的键;
根据所述待查询的键和所述N个第二映射关系,确定所述待查询的键对应的第一映射关系;
根据所述待查询的键和确定出的所述待查询的键对应的第一映射关系,获得所述待查询的键在所述原始数据表中所在的位置。


一种数据处理装置,其特征在于,包括:
数据表存储模块,用于存储原始数据表,所述原始数据表中包括多个原始数据,每个原始数据包括键key和值value;
索引创建模块,用于获取所述原始数据表;根据所述多个原始数据的键对所述多个原始数据进行分段,获取M段原始数据以及M个第一映射关系,其中,每个第一映射关系指示一段原始数据的键与该段原始数据的键在所述原始数据表中所在的位置之间的对应关系,M为大于1的整数;获取所述M段原始数据中每段原始数据的首键;对获取的M个首键进行分段,获取N段首键以及N个第二映射关系,其中,每个第二映射关系指示一段首键内的首键与该段首键内的首键的源数据段的第一映射关系的标识的对应关系,该段首键内的首键从所述源数据段获取,N为大于或等于1的整数;
索引存储模块,用于存储所述M个第一映射关系和所述N个第二映射关系。


如权利要求7所述的数据处理装置,其特征在于,每个第一映射关系包括第一单调函数,所述第一单调函数的输入为键,所述第一单调函数的输出为所述键在所述原始数据表中所在的位置。


如权利要求7或8所述的数据处理装置,其特征在于,每个第二映射关系包括第二单调函数,所述第二单调函数的输入为键,所述第二单调函数的输出为一个第一映射关系的标识。


如权利要求7至9任一所述的数据处理装置,其特征在于,所述索引创建模块,还用于获取N段首键...

【专利技术属性】
技术研发人员:周文礼魏明昌刘江波
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

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

1