一种关系数据库数据查询方法及系统
技术领域
本发明涉及数据库技术领域,尤其涉及一种关系数据库数据查询方法及系统。
背景技术
关系数据库,是建立在关系模型基础上的数据库,借助于集合代数等概念和方法来处理数据库中的数据。在关系数据库存储结构中,以数据表做为度量数据量的维度,逻辑上,关系数据库的存储单元从小到大依次为:数据块、盘区、段和表空间。
信息时代,信息量急剧增长,关系型数据库中存储的数据量也急剧增加。数据量越大,关系型数据库的处理效率越低,例如,对TB和PB级别的海量数据的查询分析,关系型数据库的处理速度十分缓慢,甚至无法处理。目前,提高关系型数据库数据查询效率的方法,主要是将部分数据预先加载到缓存,在查询过程中,这部分数据从缓存中直接读取,避免对存储在其它存储器中的数据库执行全表搜索,以此提高数据查询效率。
但发明人在实现本发明的过程中发现:关系型数据库之所以在处理上十分缓慢,是由于关系型数据库在引擎层面,通常默认基于CBO(Cost Based Optimization,基于成本的优化)来确定执行计划,即基于CBO的数据读取、计算和处理策略。这种执行计划依赖于数据库统计信息的准确,因此只适用于数据量较小的场景,在存储有海量数据的关系型数据库中,数据库的统计信息难以准确获取,导致该执行计划的效率急剧下降;另外,对于使用缓存来提高查询效率的方式,由于数据量远远大于数据库缓存的容量,在缓存中的数据被命中前,可能已经被淘汰出缓存,无法在查询中重用,因此,现阶段无论使用何种缓存策略,都已经难以满足关系型数据库在海量数据查询上的需求。
发明内容
为克服相关技术中关系数据库海量数据查询效率低的问题,本申请提供一种关系数据库数据查询方法及系统。
根据本申请实施例的第一方面,提供一种关系数据库数据查询方法,包括:
根据数据表单位时间内增加的平均数据量,建立预设个数的逻辑存储单元;
将所述数据表单位时间内新增的数据依次按时间维度平均存储于所述逻辑存储单元中,并记录每个单位时间内新增数据的时间维度范围;
将所述逻辑存储单元的预设个数以及每个单位时间内新增数据的时间维度范围作为所述数据表的数据量定义;
根据所述数据表的数据量定义,将对应于所述数据表的查询条件按时间维度进行拆分,根据拆分得到的子查询条件查询对应的逻辑存储单元。
可选的,根据所述数据表的数据量定义,将对应于所述数据表的查询条件按时间维度进行拆分,包括:
在数据量定义中找到能够将所述查询条件的时间范围涵盖的逻辑存储单元内数据的时间维度范围的组合,所述组合对应的逻辑存储单元的个数为能够实现涵盖所述时间范围的最小个数;
以所述最小个数为查询条件的拆分个数,将所述数据表的查询条件按时间维度进行拆分。
可选的,所述数据量定义还包括每个单位时间新增数据的时间维度范围。
可选的,根据所述数据表的数据量定义,将对应于所述数据表的查询条件按时间维度进行拆分,包括:
将所述查询条件按时间维度根据所述每个单位时间内新增数据的时间维度范围进行粗拆分,得到粗拆分子查询条件;
将每个所述粗拆分子查询条件按时间维度根据所述逻辑存储单元的预设个数进行细拆分,将得到的细拆分子查询条件作为拆分得到的子查询条件。
可选的,根据所述数据表的数据量定义,将对应于所述数据表的查询条件按时间维度进行拆分,包括:
根据所述查询条件的查询时间范围、每个单位时间对应的新增数据的时间维度范围和所述逻辑存储单元的预设个数计算查询条件拆分个数;
将所述查询条件按查询条件拆分个数拆分为子查询条件。
可选的,所述关系数据库数据查询方法中,用于存储不同数据表的逻辑存储单元具有相同的大小。
根据本申请实施例的第二方面,提供一种关系数据库数据查询系统,包括:
逻辑存储单元建立模块,用于根据数据表单位时间内增加的平均数据量,按时间维度连续建立预设个数的逻辑存储单元;
数据存储模块,用于将所述数据表单位时间内新增的数据依次按时间维度平均存储于所述逻辑存储单元中,并记录每个单位时间内新增数据的时间维度范围;
数据量定义模块,用于将所述逻辑存储单元的预设个数以及每个单位时间内新增数据的时间维度范围作为所述数据表的数据量定义;
查询条件拆分模块,用于根据所述数据表的数据量定义,将对应于所述数据表的查询条件按时间维度进行拆分;
查询模块,用于根据拆分得到的子查询条件查询对应的逻辑存储单元。
可选的,所述查询条件拆分模块,包括:
时间维度范围组合查找模块,用于在数据量定义中找到能够将所述查询条件的时间范围涵盖的逻辑存储单元内数据的时间维度范围的组合,所述组合对应的逻辑存储单元的个数为能够实现涵盖所述时间范围的最小个数;
个数记录模块,用于记录所述最小个数;
第一拆分模块,用于以所述最小个数为查询条件的拆分个数,将所述数据表的查询条件按时间维度进行拆分。
可选的,所述数据量定义还包括每个单位时间新增数据的时间维度范围。
可选的,所述查询条件拆分模块,包括:
粗拆分模块,用于将所述查询条件按时间维度根据所述每个单位时间内新增数据的时间维度范围进行粗拆分,得到粗拆分子查询条件;
细拆分模块,用于将每个所述粗拆分子查询条件按时间维度根据所述逻辑存储单元的预设个数进行细拆分,将得到的细拆分子查询条件作为拆分得到的子查询条件。
可选的,所述查询条件拆分模块,包括:
计算模块,用于根据所述查询条件的查询时间范围、每个单位时间对应的新增数据的时间维度范围和所述逻辑存储单元的预设个数计算查询条件拆分个数;
第二拆分模块,用于将所述查询条件按查询条件拆分个数拆分为子查询条件。
可选的,所述关系数据库数据查询系统中,所述逻辑存储单元建立模块对不同数据表建立相同大小的逻辑存储单元。
本申请实施例提供的技术方案可以包括以下有益效果:将数据表中的数据以单位时间数据量进行分割,所述单位时间数据量即单位时间内数据表新增的数据量,并将每个单位时间数据量分布存储于预设个数的逻辑存储单元中,对应地,在查询时,将查询条件按时间维度以与数据表相同的拆分规则进行拆分,即将查询条件按时间维度根据逻辑存储单元内数据的时间维度范围进行拆分,或者将查询条件按时间维度根据单位时间进行拆分,并将与单位时间对应的部分拆分为数目与预设个数相同的子查询条件,从而使子查询条件与逻辑存储单元在时间维度上对应,每个子查询单元只需查询对应的逻辑存储单元。本申请改变了现有的关系数据库查询机制。由于根据每个子查询条件只需查询对应的逻辑存储单元,每个子查询条件的查询工作量小,且多个子查询条件同时并行查询,能够极大地提高关系数据库的查询效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一示例性实施例示出的一种关系数据库数据查询方法的流程示意图。
图2为本申请一示例性实施例示出的一种关系数据库数据查询系统的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
为了全面理解本申请,在以下详细描述中提到了众多具体的细节,但是本领域技术人员应该理解,本申请可以无需这些具体细节而实现。在其他实施例中,不详细描述公知的方法、过程、组件和电路,以免不必要地导致实施例模糊。
本申请基于关系数据库的时间维度,为了更好的理解本申请,对关系数据库中的时间维度简要说明如下。关系数据库中包含事实数据表和维度表,事实数据表中为实际的数字数据,但不包括任何描述信息;维度表为用户分析数据的窗口,用于描述事实数据表的特征,事实数据的时间特征即时间维度,用于描述事实数据时间特征的维度表即时间维度表。事实数据表和维度表相关联,可以通过维度表对事实数据表进行分析和查询,通常一个事实数据表可以关联一个或多个维度表。关系数据库中,将某个维度的Type属性设置为Time,便将该维度标识为时间维度。时间维度表可以自动生成,也可以手动生成。
图1为本申请一示例性实施例示出的一种关系数据库数据查询方法的流程示意图,如图1所示,所述方法包括:
步骤S101,根据数据表单位时间内增加的平均数据量,预先建立预设个数的逻辑存储单元。
其中,所述单位时间预设设定。所述单位时间与数据表对应,可以根据数据表数据增加的规律确定,例如数据表数据的增加呈周期性,以每15min增加100万条数据为例,则对应于该数据表的单位时间可以设定为15min;如果数据表数据的增加无规律,则可以根据数据增加的情况酌情取值,例如数据增加缓慢,则可以将单位时间设定为较大的值,使单位时间内具有一定的数据量,相反地,数据增加快速,则可以将单位时间设定为较小的值,无必要使单位时间内增加的数据量太大。每个数据表对应的单位时间可以相同,即对同一关系数据库的所有数据表都设定相同的单位时间,也可以对每个数据表设定不同的单位时间。
所述逻辑存储单元的初始大小预先设定,逻辑存储单元的初始大小可以根据期望的数据存储粒度确定,例如期望关系数据库在逻辑上最小存储单元的存储量为5万条数据,则逻辑存储单元的初始大小即设定为5万条数据。所述逻辑存储单元的大小为逻辑意义上的存储大小,并无物理存储空间限制。预先设定的逻辑存储单元的初始大小,用于确定逻辑存储单元的预设个数。逻辑存储单元的初始大小与数据表对应,同一个数据表对应的逻辑存储单元都相等。优选的是每个数据表对应的逻辑存储单元的初始大小都相等,以形成标准存储机制,即每个数据表中的数据都分布于相同大小的逻辑存储单元中。每个数据表对应的逻辑存储单元的初始大小也可以不相等,但存储过程相对于标准存储机制要复杂一些。
所述预设个数可以根据数据表单位时间内增加的平均数据量确定。在一种可能的实施方式中,如果数据表数据增加的规律固定,单位时间增加的数据量不变,则所述平均数据量即单位时间增加的数据量;如果数据表数据的增加具有周期性,以增加的周期为单位时间,但单位时间增加的数据会变化,例如在一段时间内,每15min增加100万条数据,在另一段时间,每15min增加80万条数据,则可以取不同周期增加的数据量的平均值作为所述平均数据量,例如,取100万条与80万条的平均值,即90万条作为该数据表每15min增加的平均数据量;如果数据表数据的增加无规律,则可以根据数据表在预先设定的单位时间内增加的最大数据量和最小数据量取平均值作为所述平均数据量,也可以根据数据表数据增加的情况,采取现有的其他取平均值方式,来获得数据表单位时间内增加的平均数据量。
将数据表单位时间内增加的平均数据量除以逻辑存储单元的初始大小,即得到逻辑存储单元的预设个数,所述预设个数与所述单位时间对应。同一个数据表,其对应的所述单位时间和所述预设个数不变。
每个单位时间所需要的预设个数逻辑存储单元的建立,可以是周期性建立,建立的周期小于单位时间,从而在每个单位时间内新增的数据存储于逻辑存储单元之前,预先建立好预设个数的逻辑存储单元。如果数据表数据结束增加的时间已知,则可以根据所述结束增加的时间和单位时间,计算所需要的逻辑存储单元的总个数,预先建立好全部的逻辑存储单元。
步骤S102,将所述数据表单位时间内新增的数据依次按时间维度存储于所述逻辑存储单元中,并记录每个逻辑存储单元中数据的时间维度范围。
其中,在一种可能的实施方式中,将所述数据表单位时间内新增的数据依次按时间维度平均存储于所述逻辑存储单元中,亦即将所述新增的数据按时间维度根据逻辑存储单元的预设个数平均划分,将划分后的每部分数据按时间维度对应的时间先后顺序连续存储于逻辑存储单元中。例如,数据表单位时间内新增数据的时间维度范围为2014/1/1-2014/1/10,逻辑存储单元的预设个数为10,设关系数据库时间维度的粒度为天,则将新增的数据按时间维度平均划分后依次为:第一部分数据的时间维度为2014/1/1,第二部分数据的时间维度为2014/1/2,以此类推,在逻辑上,将第一部分的数据存储于第一个逻辑存储单元,将第二部分的数据存储于第二个逻辑存储单元,以此类推,使每部分数据的时间维度彼此连续。对于数据量增加具有固定规律且数据时间维度分布平均的数据表,每个单位时间新增数据的时间维度范围是相同的,每个逻辑存储单元内数据的实际维度范围也是相同的。
数据表单位时间内增加的数据量小于或等于平均数据量时,所述逻辑存储单元的大小不变,当数据表单位时间内增加的数据量大于平均数据量时,所述逻辑存储单元调整大小,使建立的预设个数的逻辑存储单元能过容纳增加的数据量。实际上,由于逻辑存储单元为逻辑上的存储单元,并不需要手动调整逻辑存储单元的大小,逻辑存储单元中存储的数据量超过逻辑存储单元的初始大小时,数据仍能正常依次存储于逻辑存储单元中,逻辑存储单元的大小会自动调整。
对于一个数据表,为每个单位时间都建立预设个数的逻辑存储单元,将每个单位时间内新增的数据都依次存储于所述逻辑存储单元中,并记录每个逻辑存储单元内数据的时间维度范围,在一种可能的实施方式中,还可以同时记录每个单位时间新增数据的时间维度范围。
需要说明的是,为得到数据表单位时间内新增的数据的情况,以确定单位时间和逻辑存储单元的预设个数,可以在数据表建立并增加一段的时间以后,确定单位时间和逻辑存储单元的预设个数,然后将数据表已有的数据,重新视为新增的数据,从数据表的数据开始入库起,针对每个单位时间内增加的数据,执行步骤S101和步骤S102,即针对每个单位时间内增加的数据,按时间维度连续建立预设个数的逻辑存储单元,将增加的数据依次存储于所述逻辑存储单元中,并记录单位时间内增加的数据的时间维度范围,在完成数据表已有的数据的重新存储后,对新增的数据执行步骤S101和步骤S102。在另一种可能的实施方式中,由于用户是有目的地建立数据表的,通常对数据表数据的变化已有了解或进行了预先设置,因此建立在数据表建立之前,可以事先根据建立数据表的目的和对数据表数据变化已有的了解或预先设置来确定所述单位时间、逻辑存储单元的初始大小和逻辑存储单元的预设个数,然后从数据表建立,数据开始入库起,执行步骤S101和步骤S102。
步骤S103,将所述逻辑存储单元的预设个数以及每个逻辑存储单元内数据的时间维度范围作为所述数据表的数据量定义。
其中,在一种可能的实施方式中,建立一个数据量定义表,所述数据量定义表与所述数据表对应,通过数据表名称可以查询所述数据量定义表,所述数据量定义表用于记录数据表对应的逻辑存储单元的预设个数,以及依次记录每个逻辑存储单元内数据的时间维度范围,对于数据量增加具有固定规律且数据时间维度分布平均的数据表,由于每个逻辑存储单元内数据的时间维度范围相同,因此可以只需记录所述预设个数和一个单逻辑存储单元内数据的时间维度范围。在另一种可能的实施方式中,将数据表对应的逻辑存储单元的预设个数和每个逻辑存储单元内数据的时间维度范围作为数据表的内容,记录于数据表中。在一种可能的实施方式中,将逻辑存储单元的预设个数、每个逻辑存储单元内数据的时间维度范围以及每个单位时间新增数据的时间维度范围作为所述数据表的数据量定义,其中,每个单位时间新增数据的时间维度范围也可以根据与每个单位时间对应的逻辑存储单元的时间维度范围组合得到。
步骤S104,根据所述数据表的数据量定义,将对应于所述数据表的查询条件按时间维度进行拆分,根据拆分得到的子查询条件查询对应的逻辑存储单元。
其中,当用户或程序查询数据库时,对于针对多个数据表的查询条件,先将查询条件先按数据表进行拆分,获得与各个被查询的数据表对应的查询条件,对于针对单个数据表的查询条件,则不需要按数据表进行拆分。获得与单个数据表对应的查询条件后,根据查询条件对应的数据表名称,读取该数据表的数据量定义,例如,读取该数据表的数据量定义表,或者该数据表中的数据量定义内容,将查询条件根据所述数据表的数据量定义按时间维度进行拆分。对查询条件按时间维度的拆分根据查询条件的时间字段进行。
在第一种可能的实施方式中,数据量定义中包括每个单位时间新增数据的时间维度范围,则根据所述数据表的数据量定义,将对应于所述数据表的查询条件按时间维度进行拆分,包括:
将所述查询条件按时间维度根据所述每个单位时间内新增数据的时间维度范围进行粗拆分,得到粗拆分子查询条件;
将每个所述粗拆分子查询条件按时间维度根据所述逻辑存储单元的预设个数进行细拆分,将得到的细拆分子查询条件作为拆分得到的子查询条件。
其中,根据查询条件中所要查询的数据的时间范围,在数据量定义中找到能够涵盖所述时间范围的最小个数所述时间维度范围的组合,例如,查询条件中所要查询的时间范围为2014/1/1-2014/1/27,数据库时间维度的粒度为天,数据量定义中存在连续的时间维度范围2014/1/1-2014/1/10、2014/1/11-2014/1/20和2014/1/21-2014/1/30,则以这三个连续的时间维度范围作为能够涵盖所述时间范围的最小个数时间维度范围的组合,将查询条件按时间维度根据这三个连续的时间维度范围进行粗拆分,得到三个粗拆分子查询条件如下:第一个粗拆分子查询条件的查询时间范围为2014/1/1-2014/1/10,第二个粗拆分子查询条件的查询时间范围为2014/1/11-2014/1/20,第三个粗拆分子查询条件的查询时间范围为2014/1/21-2014/1/27。
能够涵盖所述时间范围的时间维度范围的组合也可以不是最小个数的,但是在最小个数组合外的其他时间维度范围由于超出了所述时间范围,在对查询条件进行粗拆分时并不采用。
其中,得到粗拆分子查询条件后,将每个粗拆分子查询条件按预设个数拆分为细拆分子查询条件之前,将每个粗拆分子查询条件的时间范围和每个粗拆分子查询条件对应的时间维度范围对比,判断两者是否相等,如果两者相等,则将粗拆分子查询条件按时间维度平均拆分,拆分的个数与预设个数相等;如果两者不相等,则根据预设个数计算该粗拆分子查询条件的子拆分个数。以上述得到的三个粗拆分子查询条件为例,设预设个数为10,则将第一个粗拆分子查询条件和第二个粗拆分子查询条件分别按时间维度平均拆分为10个子查询条件。对于第三个粗拆分子查询条件,由于第三个粗拆分子查询条件的查询时间范围小于对应的数据量定义中的时间维度范围2014/1/21-2014/1/30,此时计算第三个粗拆分子查询条件应当拆分成细拆分子查询条件的子拆分个数。所述子拆分个数等于[(粗拆分子查询条件的时间间隔/粗拆分子查询条件对应的时间维度间隔)×预设个数],如果[(粗拆分子查询条件的时间间隔/粗拆分子查询条件对应的时间维度间隔)×预设个数]的结果为小数,则将所述结果取整后再加1,其中,所述粗拆分子查询条件对应的时间维度间隔为粗拆分子查询条件对应的时间维度范围的两端值之间的时间间隔,所述粗拆分子查询条件的时间间隔为粗拆分子查询条件的时间范围的两端值之间的时间间隔。例如,第三个粗拆分子查询条件对应的时间维度间隔为10(单位为天),第三个粗拆分子查询条件的时间间隔为7(单位为天),则第三个粗拆分子查询条件的子拆分个数为(7/10)×10,即子拆分个数为7。
需要说明的是,由于数据库时间维度的粒度决定了时间的最小单位,逻辑存储单元的时间维度范围不可能出现小于最小单位的数值,例如,数据库时间维度的粒度为天,则逻辑存储单元的时间维度范围的单位也是天,不可能出现时、分、秒的时间。根据第一种可能的实施方式得到细拆分子查询条件后,根据每个细拆分子查询条件的时间范围查询对应的逻辑存储单元,第一种可能的实施方式可以使得到的绝大部分的细拆分子查询条件与单个逻辑存储单元对应,另一部分细拆分子查询条件则与两个逻辑存储单元对应。查询时对每个细拆分子查询条件只需查询对应的单个或两个逻辑存储单元,对每个细拆分子查询条件而言,查询量很小,查询效率很高,多个细拆分子查询并行查询,可以大大地提高关系数据库的查询效率。
在第二种可能的实施方式中,根据所述数据表的数据量定义,将对应于所述数据表的查询条件按时间维度进行拆分,包括:
根据所述查询条件的查询时间范围、每个单位时间对应的新增数据的时间维度范围和所述逻辑存储单元的预设个数计算查询条件拆分个数;
将所述查询条件按查询条件拆分个数拆分为子查询条件。
其中,根据所述查询条件的时间范围和每个单位时间对应的新增数据的时间维度范围,可以得到能够涵盖所述时间范围的时间维度范围的组合所包含的时间维度范围的最小个数和构成组合的时间维度范围。如果组合起来的时间维度范围与所述时间范围相等,则所述最小个数和所述预设个数的乘积为查询条件的拆分个数。如果组合起来的时间维度范围大于所述时间范围,则与第一种可能的实施方式类似,将查询条件的时间范围按构成组合的时间维度范围划分,得到与对应的时间维度范围不相等的部分的个数,将该个数记为不完整个数。对于划分出来与对应的时间维度范围不相等的部分,根据预设个数计算该部分的子拆分个数,所述子拆分个数的计算与第一种可能的实施方式中的计算方法相同。最后查询条件的拆分个数等于(最小个数-不完整个数)×预设个数+不完整个数×子拆分个数。得到查询条件的拆分个数后,将查询条件按时间维度根据拆分个数拆分为子查询条件。
在第三种可能的实施方式中,根据查询条件的时间范围和数据量定义中逻辑存储单元内数据的时间维度范围,得到查询条件的拆分个数,即找到能够将所述时间范围涵盖的逻辑存储单元内数据的时间维度范围的组合,所述组合对应的逻辑存储单元的个数为能够实现涵盖所述时间范围的最小个数。以所述最小个数为查询条件的拆分个数,将查询条件按时间维度进行拆分,得到子查询条件。第三种可能的实施方式得到的子查询条件,由于是根据逻辑存储单元内数据的时间维度范围进行拆分的,因此每一个子查询条件的时间字段对应于一个逻辑存储单元内数据的时间维度范围,也就是说,子查询条件可以和逻辑存储单元一一对应,查询时对每个子查询条件只需查找对应的一个逻辑存储单元,由此,每个子查询条件的查询处理简单且对应的查询量小,速度快,多个子查询条件并行查询,大大地提高了关系数据库的查询效率,而且数据查询针对性强,有效性高。第三种可能的实施方式为本申请的优选实施方式。
通过以上的方法实施例的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,并存储在一个存储介质中,包括若干指令用以使得一台智能设备执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:只读存储器(ROM)、随机存取存储器(RAM)、磁碟或者光盘等各种可以存储数据和程序代码的介质。
图2为本申请一示例性实施例示出的一种关系数据库数据查询系统的框图。如图2所示,所述系统包括:
逻辑存储单元建立模块U201,用于根据数据表单位时间内增加的平均数据量,按时间维度连续建立预设个数的逻辑存储单元;
其中,优选的是,所述逻辑存储单元建立模块对不同数据表建立相同大小的逻辑存储单元,从而形成标准存储机制,即每个数据表中的数据都分布于相同大小的逻辑存储单元中,简化存储过程。
数据存储模块U202,与U201连接,用于将所述数据表单位时间内新增的数据依次按时间维度平均存储于所述逻辑存储单元中,并记录每个单位时间内新增数据的时间维度范围。
数据量定义模块U203,与U202连接,用于将所述逻辑存储单元的预设个数以及每个单位时间内新增数据的时间维度范围作为所述数据表的数据量定义。
查询条件拆分模块U204,与U203连接,用于根据所述数据表的数据量定义,将对应于所述数据表的查询条件按时间维度进行拆分。
查询模块U205,与U204连接,用于根据拆分得到的子查询条件查询对应的逻辑存储单元。
其中,查询条件拆分单元,在第一种可能的实施方式中,可以包括:
时间维度范围组合查找模块,用于在数据量定义中找到能够将所述查询条件的时间范围涵盖的逻辑存储单元内数据的时间维度范围的组合,所述组合对应的逻辑存储单元的个数为能够实现涵盖所述时间范围的最小个数;
个数记录模块,用于记录所述最小个数;
第一拆分模块,用于以所述最小个数为查询条件的拆分个数,将所述数据表的查询条件按时间维度进行拆分。
在一种可能的实施方式中,所述数据量定义还包括每个单位时间新增数据的时间维度范围。
所述数据量定义包括每个单元时间新增的时间维度范围时,所述查询条件拆分单元,在第二种可能的实施方式中,可以包括:
粗拆分模块,用于将所述查询条件按时间维度根据所述每个单位时间内新增数据的时间维度范围进行粗拆分,得到粗拆分子查询条件;
细拆分模块,用于将每个所述粗拆分子查询条件按时间维度根据所述逻辑存储单元的预设个数进行细拆分,将得到的细拆分子查询条件作为拆分得到的子查询条件。
所述数据量定义包括每个单元时间新增的时间维度范围时,所述查询条件拆分单元,在第三种可能的实施方式中,可以包括:
计算模块,用于根据所述查询条件的查询时间范围、每个单位时间对应的新增数据的时间维度范围和所述逻辑存储单元的预设个数计算查询条件拆分个数;
第二拆分模块,用于将所述查询条件按查询条件拆分个数拆分为子查询条件。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置及系统实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者逆序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。