[发明专利]一种存储数据的方法及装置有效
申请号: | 201410749055.2 | 申请日: | 2014-12-09 |
公开(公告)号: | CN104461920B | 公开(公告)日: | 2019-04-12 |
发明(设计)人: | 严龙;董亚辉;黄海燕 | 申请(专利权)人: | 杭州华为数字技术有限公司 |
主分类号: | G06F12/02 | 分类号: | G06F12/02 |
代理公司: | 北京中博世达专利商标代理有限公司 11274 | 代理人: | 申健 |
地址: | 310052 浙江省杭州*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据行 子区间 存储数据 数值区间 排序 电子信息技术 查询效率 存储系统 数据处理 数据块 | ||
本发明实施例公开了一种存储数据的方法及装置,涉及电子信息技术领域,能够提高查询效率,从而提高数据处理的能力。本发明的方法包括:根据所述指定数量的数据行的排序值,获取数值区间;将所述数值区间划分为至少两个连续的子区间;根据所述指定数量的数据行的排序值,建立各数据行与所述至少两个连续的子区间的对应关系;将对应于相同子区间的数据行划分至同一个数据块。本发明适用于一种存储系统。
技术领域
本发明涉及电子信息技术领域,尤其涉及一种存储数据的方法及装置。
背景技术
随着电子信息技术的发展,已有多种数据库系统被使用,在数据库中存储的数据也越来越多,大量的存储数据导致数据查询的时间越来越长。
在现有技术中,将所需存储的数据集合作为表,并按照分区存储的方式进行存储,所存储的数据的排列顺序主要按照数据存入的先后顺序,例如:
一张表中包括了某种业务在1年内的运行数据,按照月份划分为12个分区,每一个分区可以看成是一个数据集合,该数据集合中包括该分区中全部的数据条目,以便设备针对数据块执行查询、读取等处理过程。但是由于分区中的各条数据是按照存入时间排列的,当设备所需查询其中一条或多条目标数据条目,且查询并非依据时间信息时,设备需要查询多个数据块才能找到目标数据条目。
通常情况下,数据条目的每一条记录用于对一个对象进行完整的描述,并且根据数据条目的属性可以将表中的数据条目的具体内容划分为多列,其中,列可以用于表示这一类对象所具有的属性,比如:定义一张表名为employee的表来描述员工这一类对象,同时定义“工号”、“名字”、“年龄”和“性别”这4种属性来描述员工这类对象。在查询过程中,所依据的是数据条目的具体内容的“工号”列的值,且“工号”列的值与数据条目的存入时间或与其他时间信息无关,而设备所需查询的是“工号”列的值在范围[100,200]内的数据条目。由于数据条目按照时间顺序排列,导致第一列的值在范围[100,200]内的数据条目可能存在于多个分区中,则设备需要读取多个数据块才能够完成数据查询。
因此增加了设备的查询时间,降低了数据处理的能力。若设备想要通过提高查询效率来提高数据处理的能力,就需要耗费大量系统资源对所有的数据条目进行重新排序。
发明内容
本发明实施例提供一种存储数据的方法及装置,能够提高查询效率,从而提高数据处理的能力。
为达到上述目的,本发明实施例采用如下技术方案:
第一方面,本发明实施例提供一种存储数据的方法,数据表包括指定数量的数据行,每一数据行的一部分内容处于所述数据表的排序聚簇列中,且一个数据行的处于所述排序聚簇列中的内容对应一个排序值,所述方法包括:
根据所述指定数量的数据行的排序值,获取数值区间;
将所述数值区间划分为至少两个连续的子区间;
根据所述指定数量的数据行的排序值,建立各数据行与所述至少两个连续的子区间的对应关系,其中,一个数据行的排序值落在所述一个数据行所对应的子区间中;
将对应于相同子区间的数据行划分至同一个数据块。
结合第一方面,在第一方面的第一种可能的实现方式中,所述将所述数值区间划分为至少两个连续的子区间,包括:
获取所述数值区间的最大值和最小值,并获取M行数据行的排序值,其中M小于所述指定数量;
按照从小到大的顺序依次排列所述最小值、所述M行数据行的排序值和所述最大值;
按照排列顺序将所述数值区间划分为所述至少两个连续的子区间。
结合第一方面,在第一方面的第二种可能的实现方式中,在建立各数据行与所述至少两个连续的子区间的对应关系之后,还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州华为数字技术有限公司,未经杭州华为数字技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410749055.2/2.html,转载请声明来源钻瓜专利网。