CN104461920B - 一种存储数据的方法及装置 - Google Patents
一种存储数据的方法及装置 Download PDFInfo
- Publication number
- CN104461920B CN104461920B CN201410749055.2A CN201410749055A CN104461920B CN 104461920 B CN104461920 B CN 104461920B CN 201410749055 A CN201410749055 A CN 201410749055A CN 104461920 B CN104461920 B CN 104461920B
- Authority
- CN
- China
- Prior art keywords
- subinterval
- data line
- data
- continuous
- value
- 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.)
- Active
Links
Abstract
本发明实施例公开了一种存储数据的方法及装置,涉及电子信息技术领域,能够提高查询效率,从而提高数据处理的能力。本发明的方法包括:根据所述指定数量的数据行的排序值,获取数值区间;将所述数值区间划分为至少两个连续的子区间;根据所述指定数量的数据行的排序值,建立各数据行与所述至少两个连续的子区间的对应关系;将对应于相同子区间的数据行划分至同一个数据块。本发明适用于一种存储系统。
Description
技术领域
本发明涉及电子信息技术领域,尤其涉及一种存储数据的方法及装置。
背景技术
随着电子信息技术的发展,已有多种数据库系统被使用,在数据库中存储的数据也越来越多,大量的存储数据导致数据查询的时间越来越长。
在现有技术中,将所需存储的数据集合作为表,并按照分区存储的方式进行存储,所存储的数据的排列顺序主要按照数据存入的先后顺序,例如:
一张表中包括了某种业务在1年内的运行数据,按照月份划分为12个分区,每一个分区可以看成是一个数据集合,该数据集合中包括该分区中全部的数据条目,以便设备针对数据块执行查询、读取等处理过程。但是由于分区中的各条数据是按照存入时间排列的,当设备所需查询其中一条或多条目标数据条目,且查询并非依据时间信息时,设备需要查询多个数据块才能找到目标数据条目。
通常情况下,数据条目的每一条记录用于对一个对象进行完整的描述,并且根据数据条目的属性可以将表中的数据条目的具体内容划分为多列,其中,列可以用于表示这一类对象所具有的属性,比如:定义一张表名为employee的表来描述员工这一类对象,同时定义“工号”、“名字”、“年龄”和“性别”这4种属性来描述员工这类对象。在查询过程中,所依据的是数据条目的具体内容的“工号”列的值,且“工号”列的值与数据条目的存入时间或与其他时间信息无关,而设备所需查询的是“工号”列的值在范围[100,200]内的数据条目。由于数据条目按照时间顺序排列,导致第一列的值在范围[100,200]内的数据条目可能存在于多个分区中,则设备需要读取多个数据块才能够完成数据查询。
因此增加了设备的查询时间,降低了数据处理的能力。若设备想要通过提高查询效率来提高数据处理的能力,就需要耗费大量系统资源对所有的数据条目进行重新排序。
发明内容
本发明实施例提供一种存储数据的方法及装置,能够提高查询效率,从而提高数据处理的能力。
为达到上述目的,本发明实施例采用如下技术方案:
第一方面,本发明实施例提供一种存储数据的方法,数据表包括指定数量的数据行,每一数据行的一部分内容处于所述数据表的排序聚簇列中,且一个数据行的处于所述排序聚簇列中的内容对应一个排序值,所述方法包括:
根据所述指定数量的数据行的排序值,获取数值区间;
将所述数值区间划分为至少两个连续的子区间;
根据所述指定数量的数据行的排序值,建立各数据行与所述至少两个连续的子区间的对应关系,其中,一个数据行的排序值落在所述一个数据行所对应的子区间中;
将对应于相同子区间的数据行划分至同一个数据块。
结合第一方面,在第一方面的第一种可能的实现方式中,所述将所述数值区间划分为至少两个连续的子区间,包括:
获取所述数值区间的最大值和最小值,并获取M行数据行的排序值,其中M小于所述指定数量;
按照从小到大的顺序依次排列所述最小值、所述M行数据行的排序值和所述最大值;
按照排列顺序将所述数值区间划分为所述至少两个连续的子区间。
结合第一方面,在第一方面的第二种可能的实现方式中,在建立各数据行与所述至少两个连续的子区间的对应关系之后,还包括:
对于所述至少两个连续的子区间中的一个子区间,执行以下流程:
检测所述一个子区间对应的数据行的数量是否小于等于第一阈值;
若是,则将所述一个子区间与相邻的子区间合并。
结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述将所述一个子区间与相邻的子区间合并,包括:获取与所述一个子区间相邻的两个子区间对应的数据行的数量,并确定所对应的数据行的数量最小的相邻子区间;
将所述一个子区间与所对应的数据行的数量最小的相邻子区间合并。
结合第一方面,在第一方面的第四种可能的实现方式中,在建立各数据行与所述至少两个连续的子区间的对应关系之后,还包括:
对于所述至少两个连续的子区间中的一个子区间,执行以下流程:
检测所述一个子区间对应的数据行的数量是否大于等于第二阈值;
若是,则将所述一个子区间划分为至少两个连续的子区间;
根据所述一个子区间对应的数据行的排序值,建立所述一个子区间对应的数据行与从所述一个子区间划分出的至少两个连续的子区间的对应关系。
第二方面,本发明实施例提供一种存储数据的装置,数据表包括指定数量的数据行,每一数据行的一部分内容处于所述数据表的排序聚簇列中,且一个数据行的处于所述排序聚簇列中的内容对应一个排序值,所述装置包括:
获取模块,用于根据所述指定数量的数据行的排序值,获取数值区间;
第一处理模块,用于将所述数值区间划分为至少两个连续的子区间;
建立模块,用于根据所述指定数量的数据行的排序值,建立各数据行与所述至少两个连续的子区间的对应关系,其中,一个数据行的排序值落在所述一个数据行所对应的子区间中;
第二处理模块,用于将对应于相同子区间的数据行划分至同一个数据块。
结合第二方面,在第二方面的第一种可能的实现方式中,所述第一处理模块,包括:
第一获取子模块,用于获取所述数值区间的最大值和最小值,并获取M行数据行的排序值,其中M小于所述指定数量;
第一处理子模块,用于按照从小到大的顺序依次排列所述最小值、所述M行数据行的排序值和所述最大值;
第二处理子模块,用于按照排列顺序将所述数值区间划分为所述至少两个连续的子区间。
结合第二方面,在第二方面的第二种可能的实现方式中,还包括:
第三处理模块,用于对于所述至少两个连续的子区间中的一个子区间,执行以下流程:
检测所述一个子区间对应的数据行的数量是否小于等于第一阈值;
若所述一个子区间对应的数据行的数量小于等于第一阈值,则将所述一个子区间与相邻的子区间合并。
结合第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述第三处理模块,包括:
第二获取子模块,用于获取与所述一个子区间相邻的两个子区间对应的数据行的数量,并确定所对应的数据行的数量最小的相邻子区间;
第三处理子模块,用于将所述一个子区间与所对应的数据行的数量最小的相邻子区间合并。
结合第二方面,在第二方面的第四种可能的实现方式中,还包括:
第四处理模块,用于对于所述至少两个连续的子区间中的一个子区间,执行以下流程:
检测所述一个子区间对应的数据行的数量是否大于等于第二阈值;
若所述一个子区间对应的数据行的数量大于等于第二阈值,则将所述一个子区间划分为至少两个连续的子区间;
根据所述一个子区间对应的数据行的排序值,建立所述一个子区间对应的数据行与从所述一个子区间划分出的至少两个连续的子区间的对应关系。
本发明实施例提供的一种存储数据的方法及装置,根据指定数量的数据行的排序值,获取数值区间并将数值区间划分成至少两个连续的子区间,再根据排序值建立各数据行与子区间的对应关系,将对应于相同子区间的数据行划分至同一个数据块,以便于设备在数据查询的过程中仅需要查询一个数据块。相比较于现有技术中按照数据存入的先后顺序分区进行存储的方案,本发明实施例可以通过将数值区间划分成至少两个连续的子区间,再将对应于相同子区间的数据行划分至同一个数据块,以便于设备在查询过程中,在避免耗费大量系统资源对所有的数据条目进行重新排序的条件下,减少了设备的查询时间,因此提高了查询效率,从而提高了数据处理的能力。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例提供的一种具体应用场景示意图;
图2为本发明实施例提供的一种存储数据的方法流程图;
图3为本发明实施例提供的另一种存储数据的方法流程图;
图4为本发明实施例提供的另一种存储数据的方法流程图;
图5为本发明实施例提供的另一种存储数据的方法流程图;
图6为本发明实施例提供的另一种存储数据的方法流程图;
图7为本发明实施例提供的一种存储数据的装置的结构示意图;
图8为本发明实施例提供的另一种存储数据的装置的结构示意图;
图9为本发明实施例提供的另一种存储数据的装置的结构示意图;
图10为本发明实施例提供的另一种存储数据的装置的结构示意图;
图11为本发明实施例提供的另一种存储数据的装置的结构示意图;
图12为本发明实施例提供的一种存储数据的设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例可以用于一种存储系统,存储系统中包括至少一个存储设备,存储设备将数据整理成数据行并根据一定数量的数据行形成数据表,其中,在该数据表中的数据是无序存放的。需要说明的是,数据表包括指定数量的数据行,每一数据行的一部分内容处于所述数据表的排序聚簇列中,且一个数据行的处于所述排序聚簇列中的内容对应一个排序值。需要说明的是,数据可以从存储设备上获取,也可以从其他系统中获取,比如:备份系统,在本发明实施例中,对于数据的具体来源不作限定。
例如:如图1所示,在数据表中存在多个数据簇,且数据簇与数据簇之间是无序的;在数据簇中存在多个数据块,且数据块与数据块之间是无序的;在数据块中存在多行数据行,且数据行与数据行之间是无序的。需要说明的是,当存储设备获取到数据并执行数据存储时,将数据整理成数据表、数据簇和数据块;在数据未存储在存储设备之前,数据是无序的,即数据的存在形式为一堆无规则的数据行。
本发明实施例提供一种存储数据的方法,如图2所示,包括:
101、根据所述指定数量的数据行的排序值,获取数值区间。
存储设备读取数据表中指定数量的数据行,获取每行数据行的排序值,从所有排序值中的获取排序值的最大值和最小值,将最大值作为数值区间的上限值,最小值作为数值区间的下限值,从而得到数值区间的范围并获取该数值区间。
102、将所述数值区间划分为至少两个连续的子区间。
例如:数值区间为[1,6],存储设备将数值区间划分成2个连续的子区间,分别为[1,3]和(3,6];或者,存储设备将数值区间划分成3个连续的子区间,分别为[1,2)、[2,3]和(3,6]。
103、根据所述指定数量的数据行的排序值,建立各数据行与所述至少两个连续的子区间的对应关系。
其中,一个数据行的排序值落在所述一个数据行所对应的子区间中。
获取数值区间中的子区间的上限值和下限值,对每个排序值执行如下流程:
将排序值依次与各个子区间的上限值和下限值进行比较;当排序值大于某一个子区间的上限值且小于该子区间的下限值时,获取该排序值所在的数据行;建立该数据行与该子区间的对应关系。需要说明的是,每一行数据行对应一个排序值,而每一个排序值可以对应一个或多个数据行。
104、将对应于相同子区间的数据行划分至同一个数据块。
存储设备分别获取每一行数据行与子区间的对应关系,并将对应于同一个子区间的数据行聚簇后划分至同一个数据块。
本发明实施例提供的一种存储数据的方法,根据指定数量的数据行的排序值,获取数值区间并将数值区间划分成至少两个连续的子区间,再根据排序值建立各数据行与子区间的对应关系,将对应于相同子区间的数据行划分至同一个数据块,以便于设备在数据查询的过程中仅需要查询一个数据块。相比较于现有技术中按照数据存入的先后顺序分区进行存储的方案,本发明实施例可以通过将数值区间划分成至少两个连续的子区间,再将对应于相同子区间的数据行划分至同一个数据块,以便于设备在查询过程中,在避免耗费大量系统资源对所有的数据条目进行重新排序的条件下,减少了设备的查询时间,因此提高了查询效率,从而提高了数据处理的能力。
本发明实施例中,在如图2所示的方式的基础上,102可以具体实现为如图3所示的1021-1023:
1021、获取所述数值区间的最大值和最小值,并获取M行数据行的排序值。
其中,M小于所述指定数量。
存储设备读取数据表中指定数量的数据行,获取每行数据行的排序值,将所有排序值按照从小到大或者从大到小的顺序排列,从而得到排序值中的最大值和最小值,并在除最大值和最小值之外的排序值中随机获取小于指定数量的M个排序值,即M行数据行的排序值,其中,排序值的最大值和最小值还可以通过其他方法获取,比如将排序值逐一比较,从而获得最大值和最小值。
需要说明的是,数值区间的最大值、最小值和M行数据行还可以根据统计信息直接获取,或者将获取的最大值、最小值和随机获取的M行数据行根据统计信息进行调整,其中,统计信息至少包括了指定数量的数据行的分布情况,统计信息的表示形式可以为柱状图,折线图等其他表示形式。
1022、按照从小到大的顺序依次排列所述最小值、所述M行数据行的排序值和所述最大值。
需要说明的是,还可以将最小值、M行数据行的排序值和最大值按照从大到小的顺序依次排列,或者按照一定预设规则进行排列,比如:按照排序值所携带的标识信息的字节数进行排序。
1023、按照排列顺序将所述数值区间划分为所述至少两个连续的子区间。
将上述1022中按照从小到大的顺序依次排列的M行数据行的排序值作为分割点,将数值区间划分为至少两个连续的子区间,其中,每一个分割点作为前一个子区间的下限值和后一个子区间的上限值,按照从小到大的顺序,第一个子区间的上限值为数值区间的最小值,最后一个子区间的下限值为数值区间的最大值。
本发明实施例提供的一种存储数据的方法,根据指定数量的数据行的排序值,获取数值区间的最大值、最小值和M行数据行的排序值,并按照从小到大的顺序依次排列,将数值区间按照排列顺序划分成至少两个连续的子区间,再根据排序值建立各数据行与子区间的对应关系,将对应于相同子区间的数据行划分至同一个数据块,以便于设备在数据查询的过程中仅需要查询一个数据块。相比较于现有技术中按照数据存入的先后顺序分区进行存储的方案,本发明实施例可以通过将数值区间的最大值、最小值和M行数据行的排序值,按照从小到大的顺序依次排列,并将数值区间按照排列顺序划分成至少两个连续的子区间,再将对应于相同子区间的数据行划分至同一个数据块,以便于设备在查询过程中,在避免耗费大量系统资源对所有的数据条目进行重新排序的条件下,减少了设备的查询时间,由于子区间是按照排序值从小到大的顺序依次排列的,降低了设备在数据查找过程中的难度,因此提高了查询效率,从而提高了数据处理的能力。
本发明实施例中,在如图2所示的方式的基础上,在103与104之间,可以对于所述至少两个连续的子区间中的一个子区间,执行如图4所示的105-106:
105、检测所述一个子区间对应的数据行的数量是否小于等于第一阈值。
106、若所述一个子区间对应的数据行的数量小于等于第一阈值,则将所述一个子区间与相邻的子区间合并。
若所述一个子区间对应的数据行的数量大于第一阈值,则所述一个子区间不作处理。
存储设备可以通过检测子区间对应的数据行的数量与第一阈值的关系来判断该子区间是否需要与相邻的子区间合并,当一个子区间对应的数据行的数量小于等于第一阈值时,则分别获取一个子区间与相邻的子区间的作为边界值的上限值和下限值,并获取两个子区间与其他子区间相邻的边界值作为合并后子区间的上限值和下限值,比如:一个子区间[1,2]与相邻的子区间(2,9]合并,则合并后的子区间为[1,9],其中,一个子区间的下限值作为合并后的子区间的下限值,相邻的子区间的上限值作为合并后的子区间的上限值。
其中,第一阈值可以由用户预先设定,还可以由存储设备根据历史状态自动设定并调整;历史状态可以包括上一次执行数据存储时子区间对应的数据行的平均数量,或者包括其他存储设备上由用户预先设定的第一阈值等。
需要说明的是,当多个相邻子区间对应的数据行的数量远远少于其他子区间对应的数据行的数量时,存储设备可以将多个相邻子区间与多个相邻子区间相邻的子区间合并。
本发明实施例提供的一种存储数据的方法,根据指定数量的数据行的排序值,获取数值区间并将数值区间划分成至少两个连续的子区间,再根据排序值建立各数据行与子区间的对应关系,将对应于相同子区间的数据行划分至同一个数据块,并将数据行的数量小于等于第一阈值的子区间与相邻的子区间合并,以便于设备在数据查询的过程中仅需要查询一个数据块。相比较于现有技术中按照数据存入的先后顺序分区进行存储的方案,本发明实施例可以通过将数值区间划分成至少两个连续的子区间,再将对应于相同子区间的数据行划分至同一个数据块,以便于设备在查询过程中,在避免耗费大量系统资源对所有的数据条目进行重新排序的条件下,减少了设备的查询时间,并将数据行的数量小于等于第一阈值的子区间与相邻的子区间合并,减少了设备在查找与所要查询的数据行对应的子区间的数量,因此提高了查询效率,从而提高了数据处理的能力。
本发明实施例中,在如图4所示的方式的基础上,106可以具体实现为如图5所示的1061-1062:
1061、获取与所述一个子区间相邻的两个子区间对应的数据行的数量,并确定所对应的数据行的数量最小的相邻子区间。
1062、将所述一个子区间与所对应的数据行的数量最小的相邻子区间合并。
终端设备分别获取与一个子区间相邻的两个子区间对应的数据行的数量,将获取的对应的数据行的数量进行比较,确定对应的数据行的数量最小的相邻子区间,并将该一个子区间与对应的数据行的数量最小的相邻子区间合并。
需要说明的是,当两个与该一个子区间相邻的两个子区间分别所对应的数据行的数量相同时,可以将该一个子区间与相邻的两个子区间中的任意一个子区间合并。
本发明实施例提供的一种存储数据的方法,根据指定数量的数据行的排序值,获取数值区间并将数值区间划分成至少两个连续的子区间,再根据排序值建立各数据行与子区间的对应关系,将对应于相同子区间的数据行划分至同一个数据块,并将数据行的数量小于等于第一阈值的子区间与相邻的对应的数据行的数量最小的相邻子区间合并,以便于设备在数据查询的过程中仅需要查询一个数据块。相比较于现有技术中按照数据存入的先后顺序分区进行存储的方案,本发明实施例可以通过将数值区间划分成至少两个连续的子区间,再将对应于相同子区间的数据行划分至同一个数据块,以便于设备在查询过程中,在避免耗费大量系统资源对所有的数据条目进行重新排序的条件下,减少了设备的查询时间,并将数据行的数量小于等于第一阈值的子区间与相邻的对应的数据行的数量最小的相邻子区间合并,减少了设备在查找与所要查询的数据行对应的子区间的数量,因此提高了查询效率,从而提高了数据处理的能力。
本发明实施例中,在如图2所示的方式的基础上,在103与104之间,还可以对于所述至少两个连续的子区间中的一个子区间,执行如图6所示的107-109:
107、检测所述一个子区间对应的数据行的数量是否大于等于第二阈值。
108、若所述一个子区间对应的数据行的数量大于等于第二阈值,则将所述一个子区间划分为至少两个连续的子区间。
109、根据所述一个子区间对应的数据行的排序值,建立所述一个子区间对应的数据行与从所述一个子区间划分出的至少两个连续的子区间的对应关系。
若所述一个子区间对应的数据行的数量小于第二阈值,则所述一个子区间不作处理。
存储设备可以通过检测子区间对应的数据行的数量与第二阈值的关系来判断该子区间是否需要划分为至少两个连续的子区间,当一个子区间对应的数据行的数量大于等于第二阈值时,则获取该子区间的作为边界值的上限值和下限值,并将该子区间划分为至少两个连续的子区间,根据该子区间对应的数据行的排序值,建立该子区间对应的数据行与从该子区间划分出的至少两个连续的子区间的对应关系,比如:一个子区间[1,100],则划分后的子区间可以为[1,30)、[30,65]和(65,100],其中,该子区间的下限值作为划分后的一个子区间的下限值,该子区间的上限值作为划分后的另个子区间的上限值。
其中,第二阈值可以由用户预先设定,还可以由存储设备根据历史状态自动设定并调整;历史状态可以包括上一次执行数据存储时子区间对应的数据行的平均数量,或者包括其他存储设备上由用户预先设定的第二阈值等。
需要说明的是,存储设备统计多个相邻子区间中的每一个子区间对应的数据行的数量,并将该每一个子区间的数据行的数量相加得到该多个相邻子区间的总数据行的数量,当该多个相邻子区间对应的总数据行的数量大于第一阈值且小于第二阈值时,可以合并该多个相邻子区间,并将得到的新的子区间重新划分成至少两个相邻的子区间。
在本实施例中,可以在存储设备需要存储的数据表中的数据行的数量达到预先设定的数据行的数量时,将数据表中的数据行分别对应各个子区间,经过合并、划分等过程使存储的数据无序存储于数据块中,而数据块与数据块之间则按照一定顺序排列。
存储设备获取该各个数据行中的排序值,根据排序值中的最大值和最小值得到数值区间,再根据统计信息确定除了最大值和最小值以外的N*3-1个采样点,其中N为一定数量数据行将要被划分的数据块个数,将最小值、N*3-1个采样点和最大值按照从小到大的顺序依次排列,将数值区间划分成N*3个连续的子区间,并将最小值、最大值和N*3-1个采样点所在的数据行分别对应到各个子区间,再将对应于同一个子区间的数据行划分至同一个数据块,从而得到N*3个数据块,将N*3个数据块中每相邻3个数据块合并得到N个相邻的数据块。
可选的,可以根据预先设定的阈值触发执行101-109的方法流程,例如:可以在存储设备中设置缓存区域,并将需要进行处理的数据行先存入缓存区域中,当缓存区域中的数据行的数量达到了预先设定的阈值,则执行101-109的方法流程,对数据行进行处理并得到数据块。
需要说明的是,若各个数据块的数据量,即数据块中数据行的数量大致相等,则按照当前的排列顺序执行数据存储;若存在偏斜较大的数据块,即数据块中数据行的数量远远大于相邻数据块中数据行的数量,则将该数据块进一步划分成多个相邻的数据块,或者数据块中数据行的数量远远小于相邻数据块中数据行的数量,则将该数据块与相邻的数据块合并。
本发明实施例提供的一种存储数据的方法,根据指定数量的数据行的排序值,获取数值区间并将数值区间划分成至少两个连续的子区间,再根据排序值建立各数据行与子区间的对应关系,将对应于相同子区间的数据行划分至同一个数据块,并将数据行的数量大于等于第二阈值的子区间划分为至少两个连续的子区间,以便于设备在数据查询的过程中仅需要查询一个数据块。相比较于现有技术中按照数据存入的先后顺序分区进行存储的方案,本发明实施例可以通过将数值区间划分成至少两个连续的子区间,再将对应于相同子区间的数据行划分至同一个数据块,以便于设备在查询过程中,在避免耗费大量系统资源对所有的数据条目进行重新排序的条件下,减少了设备的查询时间,并将数据行的数量大于等于第二阈值的子区间划分为至少两个连续的子区间,当设备在所要查询的数据行对应的子区间中查找该数据行时,减少了该子区间中数据行的数量,因此提高了查询效率,从而提高了数据处理的能力。
本发明实施例提供一种存储数据的装置20,数据表包括指定数量的数据行,每一数据行的一部分内容处于所述数据表的排序聚簇列中,且一个数据行的处于所述排序聚簇列中的内容对应一个排序值,如图7所示,所述装置20可以包括:
获取模块21,用于根据所述指定数量的数据行的排序值,获取数值区间。
第一处理模块22,用于将所述数值区间划分为至少两个连续的子区间。
建立模块23,用于根据所述指定数量的数据行的排序值,建立各数据行与所述至少两个连续的子区间的对应关系,其中,一个数据行的排序值落在所述一个数据行所对应的子区间中。
第二处理模块24,用于将对应于相同子区间的数据行划分至同一个数据块。
在如图7所示的基础上,如图8所示,所述第一处理模块22可以包括:
第一获取子模块221,用于获取所述数值区间的最大值和最小值,并获取M行数据行的排序值,其中M小于所述指定数量。
第一处理子模块222,用于按照从小到大的顺序依次排列所述最小值、所述M行数据行的排序值和所述最大值。
第二处理子模块223,用于按照排列顺序将所述数值区间划分为所述至少两个连续的子区间。
在如图7所示的基础上,如图9所示,所述装置20还可以包括:
第三处理模块25,用于对于所述至少两个连续的子区间中的一个子区间,执行以下流程:
检测所述一个子区间对应的数据行的数量是否小于等于第一阈值;
若所述一个子区间对应的数据行的数量小于等于第一阈值,则将所述一个子区间与相邻的子区间合并。
在如图9所示的基础上,如图10所示,所述第三处理模块25可以包括:
第二获取子模块251,用于获取与所述一个子区间相邻的两个子区间对应的数据行的数量,并确定所对应的数据行的数量最小的相邻子区间。
第三处理子模块252,用于将所述一个子区间与所对应的数据行的数量最小的相邻子区间合并。
在如图7所示的基础上,如图11所示,装置20还可以包括:
第四处理模块26,用于对于所述至少两个连续的子区间中的一个子区间,执行以下流程:
检测所述一个子区间对应的数据行的数量是否大于等于第二阈值;
若所述一个子区间对应的数据行的数量大于等于第二阈值,则将所述一个子区间划分为至少两个连续的子区间;
根据所述一个子区间对应的数据行的排序值,建立所述一个子区间对应的数据行与从所述一个子区间划分出的至少两个连续的子区间的对应关系。
本发明实施例提供的一种存储数据的装置,根据指定数量的数据行的排序值,获取数值区间并将数值区间划分成至少两个连续的子区间,再根据排序值建立各数据行与子区间的对应关系,将对应于相同子区间的数据行划分至同一个数据块,以便于设备在数据查询的过程中仅需要查询一个数据块。相比较于现有技术中按照数据存入的先后顺序分区进行存储的方案,本发明实施例可以通过将数值区间划分成至少两个连续的子区间,再将对应于相同子区间的数据行划分至同一个数据块,以便于设备在查询过程中,在避免耗费大量系统资源对所有的数据条目进行重新排序的条件下,减少了设备的查询时间,因此提高了查询效率,从而提高了数据处理的能力。
本发明实施例提供了一种存储数据的设备30,如图12所示,至少包括:处理器301、网络接口302、存储器303和通信总线304;所述通信总线304用于实现所述处理器301、所述网络接口302和所述存储器303之间的连接通信;所述存储器303,用于存储所述设备30在运行过程中所涉及的数据;可选的,还包含用户接口305,包括显示器,键盘或者点击设备(例如鼠标,轨迹球(trackball),触感板或者触感显示屏)。存储器303可能包含高速RAM存储器,也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器303可选的可以包含至少一个位于远离前述处理器301的存储装置;其中,数据表包括指定数量的数据行,每一数据行的一部分内容处于所述数据表的排序聚簇列中,且一个数据行的处于所述排序聚簇列中的内容对应一个排序值。
在一些实施方式中,存储器303存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:
其中操作业务系统3031,包含各种业务系统程序,用于实现各种基础业务以及处理基于硬件的任务;应用程序3032,包含各种应用程序,用于实现各种应用业务。
在本实施例中,所述处理器301,用于根据所述指定数量的数据行的排序值,获取数值区间。
所述处理器301,还用于将所述数值区间划分为至少两个连续的子区间。
所述处理器301,还用于根据所述指定数量的数据行的排序值,建立各数据行与所述至少两个连续的子区间的对应关系,其中,一个数据行的排序值落在所述一个数据行所对应的子区间中。
所述处理器301,还用于将对应于相同子区间的数据行划分至同一个数据块。
在本实施例中,所述处理器301,具体用于:
获取所述数值区间的最大值和最小值,并获取M行数据行的排序值,其中M小于所述指定数量;
按照从小到大的顺序依次排列所述最小值、所述M行数据行的排序值和所述最大值;
按照排列顺序将所述数值区间划分为所述至少两个连续的子区间。
在本实施例中,所述处理器301,还用于对于所述至少两个连续的子区间中的一个子区间,执行以下流程:
检测所述一个子区间对应的数据行的数量是否小于等于第一阈值;
若所述一个子区间对应的数据行的数量小于等于第一阈值,则将所述一个子区间与相邻的子区间合并。
在本实施例中,所述处理器301,具体用于:
获取与所述一个子区间相邻的两个子区间对应的数据行的数量,并确定所对应的数据行的数量最小的相邻子区间;
将所述一个子区间与所对应的数据行的数量最小的相邻子区间合并。
在本实施例中,所述处理器301,还用于对于所述至少两个连续的子区间中的一个子区间,执行以下流程:
检测所述一个子区间对应的数据行的数量是否大于等于第二阈值;
若所述一个子区间对应的数据行的数量大于等于第二阈值,则将所述一个子区间划分为至少两个连续的子区间;
根据所述一个子区间对应的数据行的排序值,建立所述一个子区间对应的数据行与从所述一个子区间划分出的至少两个连续的子区间的对应关系。
本发明实施例提供的一种存储数据的设备,根据指定数量的数据行的排序值,获取数值区间并将数值区间划分成至少两个连续的子区间,再根据排序值建立各数据行与子区间的对应关系,将对应于相同子区间的数据行划分至同一个数据块,以便于设备在数据查询的过程中仅需要查询一个数据块。相比较于现有技术中按照数据存入的先后顺序分区进行存储的方案,本发明实施例可以通过将数值区间划分成至少两个连续的子区间,再将对应于相同子区间的数据行划分至同一个数据块,以便于设备在查询过程中,在避免耗费大量系统资源对所有的数据条目进行重新排序的条件下,减少了设备的查询时间,因此提高了查询效率,从而提高了数据处理的能力。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (10)
1.一种存储数据的方法,其特征在于,数据表包括指定数量的数据行,每一数据行的一部分内容处于所述数据表的排序聚簇列中,且一个数据行的处于所述排序聚簇列中的内容对应一个排序值,每个排序值对应两个或两个以上数据行,所述方法包括:
根据所述指定数量的数据行的排序值,获取数值区间;
将所述数值区间划分为至少两个连续的子区间;
根据所述指定数量的数据行的排序值,建立各数据行与所述至少两个连续的子区间的对应关系,其中,一个数据行的排序值落在所述一个数据行所对应的子区间中;
将对应于相同子区间的数据行划分至同一个数据块。
2.根据权利要求1所述的方法,其特征在于,所述将所述数值区间划分为至少两个连续的子区间,包括:
获取所述数值区间的最大值和最小值,并获取M行数据行的排序值,其中M小于所述指定数量;
按照从小到大的顺序依次排列所述最小值、所述M行数据行的排序值和所述最大值;
按照排列顺序将所述数值区间划分为所述至少两个连续的子区间。
3.根据权利要求1所述的方法,其特征在于,在建立各数据行与所述至少两个连续的子区间的对应关系之后,还包括:
对于所述至少两个连续的子区间中的一个子区间,执行以下流程:
检测所述一个子区间对应的数据行的数量是否小于等于第一阈值;
若是,则将所述一个子区间与相邻的子区间合并。
4.根据权利要求3所述的方法,其特征在于,所述将所述一个子区间与相邻的子区间合并,包括:获取与所述一个子区间相邻的两个子区间对应的数据行的数量,并确定所对应的数据行的数量最小的相邻子区间;
将所述一个子区间与所对应的数据行的数量最小的相邻子区间合并。
5.根据权利要求1所述的方法,其特征在于,在建立各数据行与所述至少两个连续的子区间的对应关系之后,还包括:
对于所述至少两个连续的子区间中的一个子区间,执行以下流程:
检测所述一个子区间对应的数据行的数量是否大于等于第二阈值;
若是,则将所述一个子区间划分为至少两个连续的子区间;
根据所述一个子区间对应的数据行的排序值,建立所述一个子区间对应的数据行与从所述一个子区间划分出的至少两个连续的子区间的对应关系。
6.一种存储数据的装置,其特征在于,数据表包括指定数量的数据行,每一数据行的一部分内容处于所述数据表的排序聚簇列中,且一个数据行的处于所述排序聚簇列中的内容对应一个排序值,每个排序值对应两个或两个以上数据行,所述装置包括:
获取模块,用于根据所述指定数量的数据行的排序值,获取数值区间;
第一处理模块,用于将所述数值区间划分为至少两个连续的子区间;
建立模块,用于根据所述指定数量的数据行的排序值,建立各数据行与所述至少两个连续的子区间的对应关系,其中,一个数据行的排序值落在所述一个数据行所对应的子区间中;
第二处理模块,用于将对应于相同子区间的数据行划分至同一个数据块。
7.根据权利要求6所述的装置,其特征在于,所述第一处理模块,包括:
第一获取子模块,用于获取所述数值区间的最大值和最小值,并获取M行数据行的排序值,其中M小于所述指定数量;
第一处理子模块,用于按照从小到大的顺序依次排列所述最小值、所述M行数据行的排序值和所述最大值;
第二处理子模块,用于按照排列顺序将所述数值区间划分为所述至少两个连续的子区间。
8.根据权利要求6所述的装置,其特征在于,还包括:
第三处理模块,用于对于所述至少两个连续的子区间中的一个子区间,执行以下流程:
检测所述一个子区间对应的数据行的数量是否小于等于第一阈值;
若所述一个子区间对应的数据行的数量小于等于第一阈值,则将所述一个子区间与相邻的子区间合并。
9.根据权利要求8所述的装置,其特征在于,所述第三处理模块,包括:
第二获取子模块,用于获取与所述一个子区间相邻的两个子区间对应的数据行的数量,并确定所对应的数据行的数量最小的相邻子区间;
第三处理子模块,用于将所述一个子区间与所对应的数据行的数量最小的相邻子区间合并。
10.根据权利要求6所述的装置,其特征在于,还包括:
第四处理模块,用于对于所述至少两个连续的子区间中的一个子区间,执行以下流程:
检测所述一个子区间对应的数据行的数量是否大于等于第二阈值;
若所述一个子区间对应的数据行的数量大于等于第二阈值,则将所述一个子区间划分为至少两个连续的子区间;
根据所述一个子区间对应的数据行的排序值,建立所述一个子区间对应的数据行与从所述一个子区间划分出的至少两个连续的子区间的对应关系。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410749055.2A CN104461920B (zh) | 2014-12-09 | 2014-12-09 | 一种存储数据的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410749055.2A CN104461920B (zh) | 2014-12-09 | 2014-12-09 | 一种存储数据的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104461920A CN104461920A (zh) | 2015-03-25 |
CN104461920B true CN104461920B (zh) | 2019-04-12 |
Family
ID=52908007
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410749055.2A Active CN104461920B (zh) | 2014-12-09 | 2014-12-09 | 一种存储数据的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104461920B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107545011B (zh) * | 2016-06-29 | 2020-04-10 | 高德信息技术有限公司 | 一种数据读取方法及装置 |
CN112668036B (zh) * | 2020-02-19 | 2022-02-01 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置和用于数据处理的装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7707374B2 (en) * | 2003-10-22 | 2010-04-27 | International Business Machines Corporation | Incremental data storage method, apparatus, interface, and system |
CN102402394A (zh) * | 2010-09-13 | 2012-04-04 | 腾讯科技(深圳)有限公司 | 一种基于哈希算法的数据存储方法及装置 |
CN102609452A (zh) * | 2012-01-11 | 2012-07-25 | 上海西本网络科技有限公司 | 数据的存储方法及装置 |
CN103207835A (zh) * | 2013-04-15 | 2013-07-17 | 东莞市公安局 | 一种通过自适应的Range分区存储海量数据的方法 |
CN103678293A (zh) * | 2012-08-29 | 2014-03-26 | 百度在线网络技术(北京)有限公司 | 一种数据存储方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102760136B (zh) * | 2011-04-29 | 2014-11-26 | 苏州科达科技股份有限公司 | 一种基于快速视频数据存储的文件系统的控制方法 |
US9081663B2 (en) * | 2011-11-18 | 2015-07-14 | Stec, Inc. | Optimized garbage collection algorithm to improve solid state drive reliability |
CN103888102B (zh) * | 2012-12-21 | 2018-02-16 | 上海大郡动力控制技术有限公司 | 车用电机系统信号处理方法 |
-
2014
- 2014-12-09 CN CN201410749055.2A patent/CN104461920B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7707374B2 (en) * | 2003-10-22 | 2010-04-27 | International Business Machines Corporation | Incremental data storage method, apparatus, interface, and system |
CN102402394A (zh) * | 2010-09-13 | 2012-04-04 | 腾讯科技(深圳)有限公司 | 一种基于哈希算法的数据存储方法及装置 |
CN102609452A (zh) * | 2012-01-11 | 2012-07-25 | 上海西本网络科技有限公司 | 数据的存储方法及装置 |
CN103678293A (zh) * | 2012-08-29 | 2014-03-26 | 百度在线网络技术(北京)有限公司 | 一种数据存储方法及装置 |
CN103207835A (zh) * | 2013-04-15 | 2013-07-17 | 东莞市公安局 | 一种通过自适应的Range分区存储海量数据的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104461920A (zh) | 2015-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3117347B1 (en) | Systems and methods for rapid data analysis | |
CN102566928A (zh) | 自动管理移动终端桌面应用程序图标的系统及方法 | |
CN109685144B (zh) | 一种对视频模型做评估的方法、装置及电子设备 | |
CN105183873A (zh) | 恶意点击行为检测方法及装置 | |
CN108182258B (zh) | 分布式的数据分析系统及方法 | |
CN102929981B (zh) | 多媒体扫描文件索引方法及装置 | |
US20160292233A1 (en) | Discarding data points in a time series | |
CN110928739B (zh) | 一种进程监控方法、装置以及计算设备 | |
RU2016105426A (ru) | Постоянно читаемый компьютером носитель, система и способ для обнаружения сомнительного контента в социальной сети. | |
CN110222074A (zh) | 索引查找方法、查找装置、电子设备及存储介质 | |
US20140325405A1 (en) | Auto-completion of partial line pattern | |
CN105989180A (zh) | 操作图片的方法及装置 | |
CN102291269A (zh) | 一种数据归并处理方法 | |
CN104461920B (zh) | 一种存储数据的方法及装置 | |
CN104765782B (zh) | 一种索引排序更新方法及装置 | |
CN103164425B (zh) | 应用程序平台系统中推送应用程序的方法和装置 | |
CN112463859A (zh) | 基于大数据和业务分析的用户数据处理方法及大数据平台 | |
CN109032954A (zh) | 一种a/b测试的用户选取方法、装置、存储介质及终端 | |
CN105681252B (zh) | 一种基于客户端侧数据的处理方法及装置 | |
CN108920516B (zh) | 实时分析方法、系统、装置及计算机可读存储介质 | |
CN106156129A (zh) | 文件管理方法及装置 | |
CN112445833A (zh) | 一种分布式数据库的数据分页查询方法、装置和系统 | |
CN103995831B (zh) | 基于物品间相似度的物品处理方法、系统和装置 | |
US20150201104A1 (en) | Three-dimensional image searching based on inputs collected by a mobile device | |
CN104537016B (zh) | 一种确定文件所在分区的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20200424 Address after: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee after: HUAWEI TECHNOLOGIES Co.,Ltd. Address before: 310052, A building, room 3, building 301, No. 301, foreshore Road, Binjiang District, Zhejiang, Hangzhou, Hangzhou Patentee before: Huawei Technologies Co.,Ltd. |