CN102542005A - 增长型数据库的数据统计查询系统及方法 - Google Patents
增长型数据库的数据统计查询系统及方法 Download PDFInfo
- Publication number
- CN102542005A CN102542005A CN2011104155830A CN201110415583A CN102542005A CN 102542005 A CN102542005 A CN 102542005A CN 2011104155830 A CN2011104155830 A CN 2011104155830A CN 201110415583 A CN201110415583 A CN 201110415583A CN 102542005 A CN102542005 A CN 102542005A
- Authority
- CN
- China
- Prior art keywords
- data
- result
- statistical query
- historical data
- subregion
- 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.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种增长型数据库的数据统计查询系统及方法,该方法包括:针对实时数据区域中的数据记录进行统计查询,得到第一统计查询结果;获取预先存储的历史数据区域的统计查询结果;根据所述第一统计查询结果,以及获取的统计查询结果,确定最终的统计查询结果。由于预存了数据表中历史数据即不太改动的数据的统计查询结果,所以在进行统计查询时,只需针对数据表中的实时数据即改动较频繁的数据进行统计查询操作,从而避免了对历史数据的统计查询操作,提高了统计查询的速度和效率,节约了系统的处理资源。
Description
技术领域
本发明涉及计算机技术,尤其涉及增长型数据库的数据统计查询系统和方法。
背景技术
随着信息产业和信息技术的飞速发展,信息系统的数据库中记录和处理的数据量也呈现爆炸式的增长。在大量投入运营的增长型数据库中,针对海量数据进行高速统计查询的需求和压力与日俱增。
现有技术中进行统计查询的方法,通常是先从数据库中查询到符合查询条件的数据,之后对这些数据进行统计计算,得到统计结果。例如,如图1所示的数据表1中,需要统计出“设备号”为S的交换次数的总和,则需要先从数据表1中查询到所有“设备号”为S的记录,然后针对这些记录中的“交换次数”值求和。在实际使用中为了加快查询速度,现有技术通常会利用索引进行查询。但是即使采用索引的方法进行查询,也需要逐条找到每个符合查询条件的记录,并针对每个记录中相应数据进行统计运算。
本发明的发明人注意到在增长型数据库中,数据由于固有的业务特点,极少发生变更,往往会出现这样的情况:刚刚进入数据库的数据,在一段时间内会频繁的变动,但是过了一段时间后,就基本不会发生变动。随着时间的推移,大量新数据持续进入数据库中,数据库的数据量会迅速增长,数据库中会频繁变动的那部分数据所占的比例越来越小。此时,如果出于某些逻辑固定的业务需求,采用现有技术的方法对数据库中的海量数据进行统计查询时,由于增长型数据库的数据特点是绝大部分数据不会发生变化,所以对这部分数据的查询与逻辑处理实际上是一直在重复操作的。
也就是说,在进行固定逻辑统计查询时,每次都需要在数据库逐条找到符合查询条件的数据,对这些数据进行固定的逻辑运算,由于其中大多数数据与上次进行统计查询时并未发生改变,所以大多数的查询和逻辑运算都是重复的,耗费了大量的系统资源,而且,统计查询所需时间也非常长、效率低,往往还会因为超长的等待时间造成查询失败,这期间占用的大量资源还使得数据库难以应付其他的并发操作。这极大地影响了信息系统的友好性、实时性和可靠性。
此外,现有技术的查询方法中的索引的创建和维护,也需要消耗大量的数 据库资源和维护时间,专门对索引数据进行处理,尤其是对于增长型数据库来说,数据量越大,索引的创建和维护越困难。而起,索引需要数据库在对数据做增删改等操作时,也要额外花费一些资源和时间对索引数据进行维护。
终上所述,对于增长型数据库采用现有技术的统计查询方法需要消耗大量的时间和资源,降低了系统的友好性、实时性和可靠性;并且,对索引进行创建和维护,也需要消耗大量的数据库资源和维护时间。
发明内容
本发明实施例提供了一种增长型数据库的数据统计查询系统及方法,用以提高统计查询效率,节约系统资源。
一种增长型数据库的数据统计查询方法,包括:针对实时数据区域中的数据记录进行统计查询,得到第一统计查询结果;获取预先存储的历史数据区域的统计查询结果;根据所述第一统计查询结果,以及获取的统计查询结果,确定最终的统计查询结果;其中,所述历史数据区域中包含有数据表中的第一类数据记录,所述实时数据区域中包含有所述数据表中的第二类数据记录;所述第一类数据记录和第二类数据记录是根据数据记录增加到所述数据表中的时间先后顺预先序确定的。
所述第一类数据记录和第二类数据记录通过下述步骤确定:将所述数据表中的数据记录的时间顺序参数的范围,分割为至少三个时间顺序参数子范围;对于其中任一时间顺序参数子范围,将时间顺序参数处于该时间顺序参数子范围内的数据记录确定为与该时间顺序参数子范围相对应的数据子区域内的数据记录;确定具有最大时间顺序参数的数据子区域为实时数据区域,其内的数据记录为所述第二类数据记录;确定其它数据子区域为历史数据子区域,组成所述的历史数据区域,所述其它数据子区域内的数据记录为所述第一类数据记录。
其中,所述数据记录的时间顺序参数是通过对时间值进行换算得到的;将所述数据表中的数据记录的时间顺序参数的范围分割为至少三个时间顺序参数子范围为:以时间单位对所述数据表中的数据记录的时间顺序参数的范围进行分割,得到时间顺序参数子范围。
其中,将所述数据表中的数据记录的时间顺序参数的范围分割为至少两个时间顺序参数子范围具体为:
对于n个时间顺序参数子范围M1~Mn中的Mk,其时间顺序参数的范围为[Sk,Sk+1);其中,
Sk+1=Sk+W (公式1)
n=ROUNDUP((Z-S1)/W) (公式2)
上述公式1中,W为设定值,k为1至n的自然数;
上述公式2中,S1为数据表的数据记录中的最小时间顺序参数,Z为数据表的数据记录中的最大时间顺序参数,ROUNDUP为向上取整运算符。
在所述确定最终的统计查询结果之前,还包括:根据统计查询需求,确定出查询数据区域;所述查询数据区域是根据待查询数据记录的时间顺序参数的范围确定的;确定被所述查询数据区域完全覆盖的历史数据子区域为区域A;确定被所述查询数据区域部分覆盖的历史数据子区域为区域B;根据所述统计查询需求在所述区域B进行统计查询得到统计查询结果B;以及,
所述获取预先存储的历史数据区域的统计查询结果具体为:获取区域A内各历史数据子区域的统计查询结果;和在根据所述第一统计查询结果以及获取的统计查询结果确定最终的统计查询结果时,还根据所述统计查询结果B,以确定最终的统计查询结果。
在所述获取区域A内各历史数据子区域的统计查询结果之前,还包括:判断区域A内各历史数据子区域的结果标识是否为有效;如果是,则获取区域A内各历史数据子区域的统计查询结果;否则,针对无效的结果标识所对应的历史数据子区域中的数据记录进行统计查询、更新该历史数据子区域的统计查询结果后,再获取区域A内各历史数据子区域的统计查询结果。
一种增长型数据库的数据统计查询系统,包括:历史数据查询结果存储模块,用于存储历史数据区域的统计查询结果;数据区域确定模块,用于确定所述历史数据区域和实时数据区域的;所述历史数据区域中的第一类数据记录和所述实时数据区域中的第二类数据记录是根据数据记录增加到数据表中的时间先后顺序确定的;统计查询模块,用于根据所述数据区域确定模块确定的实时数据区域,针对实时数据区域中的数据记录进行统计查询,得到第一统计查询结果;从所述历史数据查询结果存储模块中获取存储的历史数据区域的统计查询结果;根据所述第一统计查询结果以及获取的统计查询结果,确定最终的统计查询结果。
其中,所述数据区域确定模块将所述数据表中的数据记录的时间顺序参数的范围分割为至少三个时间顺序参数子范围;对于其中任一时间顺序参数子范围,将时间顺序参数处于该时间顺序参数子范围内的数据记录确定为与该时间顺序参数子范围相对应的数据子区域内的数据记录;确定具有最大时间顺序参数的数据子区域为实时数据区域,其内的数据记录为所述第二类数据记录;确定其它数据子区域为历史数据子区域,由历史数据子区域组成历史数据区域, 所述其它数据子区域内的数据记录为所述第一类数据记录。
所述系统还包括:历史数据查询结果生成模块,用于根据所述数据区域确定模块确定的历史数据子区域,针对各历史数据子区域中的数据记录进行统计查询,并将各历史数据子区域的统计查询结果存储到所述历史数据查询结果存储模块中。
其中,所述统计查询模块根据统计查询需求,确定出查询数据区域;所述查询数据区域是根据待查询数据记录的时间顺序参数的范围确定的;根据所述数据区域确定模块确定的历史数据子区域,确定被所述查询数据区域完全覆盖的历史数据子区域为区域A,以及被所述查询数据区域部分覆盖的历史数据子区域为区域B;根据所述统计查询需求在所述区域B进行统计查询得到统计查询结果B;从所述历史数据查询结果存储模块中获取区域A内各历史数据子区域的统计查询结果;根据所述第一统计查询结果、统计查询结果B,以及获取的统计查询结果,确定最终的统计查询结果。
所述历史数据查询结果生成模块,还用于在将历史数据子区域的统计查询结果存储到所述历史数据查询结果存储模块中时,还将该历史数据子区域的结果标识设置为有效后一同存入所述历史数据查询结果存储模块中。
所述历史数据查询结果生成模块,还用于若历史数据子区域中的数据记录发生变更,则修改所述历史数据查询结果存储模块中的该历史数据子区域的结果标识为无效。
所述统计查询模块,还用于在获取区域A内各历史数据子区域的统计查询结果之前,判断所述历史数据查询结果存储模块中存储的区域A内各历史数据子区域的结果标识是否为有效;如果是,则从所述所述历史数据查询结果存储模块中获取区域A内各历史数据子区域的统计查询结果;否则,通知所述历史数据查询结果生成模块,针对无效的结果标识所对应的历史数据子区域中的数据记录进行统计查询、更新所述历史数据查询结果存储模块中该历史数据子区域的统计查询结果和结果标识后,再获取所述历史数据查询结果存储模块中区域A内各历史数据子区域的统计查询结果。
本发明实施例中,由于预存了数据表中历史数据(不太改动的数据)的统计查询结果,那么在进行统计查询时,只需针对数据表中的实时数据(改动较频繁的数据)进行统计查询操作,再综合预存的统计查询结果,得到最终的统计查询结果。从而避免了对历史数据的统计查询操作,而历史数据在数据表中通常是绝大多数,因此,极大地提高了统计查询的速度和效率,节约了系统的处理资源。
并且,本发明实施例的统计查询方法中,可以不采用索引进行查询,不必消耗大量的数据库资源和维护时间,专门对索引数据进行处理,节约了系统资源和人力资源。
附图说明
图1为现有技术的数据表1示意图;
图2a为本发明实施例的数据表2示意图;
图2b为本发明实施例的数据表2的历史数据区域和实时数据区域划分示意图;
图2c为本发明实施例的数据表2的另一种历史数据区域和实时数据区域划分示意图;
图3为本发明实施例的历史数据区域和实时数据区域划分方法流程图;
图4为本发明实施例的统计查询方法流程图;
图5a为本发明实施例的另一种统计查询方法流程图;
图5b为本发明实施例的查询数据区域的数据记录示意图;
图6为本发明实施例的统计查询系统的结构框图。
具体实施方式
本发明实施例利用增长型数据库的数据特点即数据在数据库中按照时间顺序增长,在处理对海量数据的重复操作尤其是逻辑固定的业务需求时,可以按照时间进行数据范围划分,对于基本不会变化的历史数据,尽量复用其查询处理结果,从而降低了海量数据统计查询需要处理的数据量;通过对历史数据区域的数据统计查询结果的存储和维护,降低了海量数据统计查询的时间消耗和资源消耗。
为了加快增长型数据库中数据的统计查询速度,提高统计查询的效率,在进行统计查询之前,先将待查询的数据表中的数据记录划分历史数据区域、实时数据区域,并预先存储历史数据区域的统计查询结果,以备以后多次进行的统计查询操作时复用,避免重复的查询、统计操作,提高统计查询效率。具体方法流程如图3所示,包括如下步骤:
S301:将数据表中的数据记录按照时间顺序划分为历史数据区域和实时数据区域。对于增长型数据库中的数据表,数据表中的数据记录是按照时间顺序增长的。通常,数据记录中会有“时间顺序参数”,可以反映出数据记录加入到数据表中的时间先后顺序。例如,可以是数据记录中的“序号(ID号)”或时间值(例如对时间的换算值)。如图2a所示的数据表2中记录了每天的使用电量。每过一天便要在表2中增加一条数据记录,包括:ID号、使用电量以及 时间值。根据实际情况,既可以将表2中的ID号作为时间顺序参数,也可以将表2中的时间值作为时间顺序参数。根据数据记录的时间顺序参数,将数据表中的数据记录划分为历史数据区域中的数据记录和实时数据区域中的数据记录。
本领域技术人员可以根据经验,将变动频繁的数据记录划分到实时数据区域,将基本不再发生变动的数据记录划分到历史数据区域。根据数据记录增加到数据表中的时间先后顺序划分,历史数据区域和实时数据区域的一个具体的简单方法可以是:设定一个时间顺序参数,确定小于该时间顺序参数的数据记录为第一类数据记录,即历史数据区域中的数据记录;确定数据表中其它数据记录为第二类数据记录,实时数据区域中的数据记录。
或者,将数据表中的数据记录的时间顺序参数的范围,分割为至少三个时间顺序参数子范围;对于其中任一时间顺序参数子范围,将时间顺序参数处于该时间顺序参数子范围内的数据记录确定为与该时间顺序参数子范围相对应的数据子区域内的数据记录;确定具有最大时间顺序参数的数据子区域为实时数据区域,其内的数据记录为第二类数据记录;确定其它数据子区域为历史数据子区域,所有的历史数据子区域组成历史数据区域,所有的历史数据子区域的数据记录即为第一类数据记录。
在实际应用中,一种较优方法:若数据记录的时间顺序参数是根据时间值进行换算得到的,那么,数据记录的时间顺序参数可以直接反映其加入到数据表中的时间。因此,可以时间单位来划分历史数据子区域以及实时数据区域:即以时间单位对所述数据表中的数据记录的时间顺序参数的范围进行分割,得到时间顺序参数子范围,从而确定各数据子区域的数据记录,进而确定实时数据区域和历史数据子区域。例如,对如图2b所示的数据表2,可以年、或月为单位来划分各数据子区域,即每个月的数据记录作为一个数据子区域,具有最大时间值的数据子区域为实时数据区域,其它为历史数据子区域。
另外,也可采用均分的方法:例如,对如图2c所示的数据表2,假设分割出n(n为大于2的自然数)个时间顺序参数子范围M1~Mn。其中,Mk的范围为[Sk,Sk+1);
Sk+1=Sk+W (公式1)
n=ROUNDUP((Z-S1)/W) (公式2)
上述公式1中,W为设定值,k为1至n的自然数;上述公式2中,S1为数据表的数据记录中的最小时间顺序参数,Z为数据表的数据记录中的最大时间顺序参数,ROUNDUP为向上取整运算符。得到时间顺序参数子范围后,即可 确定对应的数据子区域的数据记录。具有最大时间值的数据子区域为实时数据区域,其它数据子区域为历史数据子区域。
显然,本领域技术人员可以根据本发明实施例所公开的技术方案,对于应用中的实际情况,采用其它的分割历史数据子区域和实时数据区域的方法,此处不再一一列举。
这里需要指出的是,划分的历史数据区域、实时数据区域或者历史数据子区域可以是物理上的,也可以是逻辑上的。也就是说,既可以开辟存储空间来放置历史数据区域、实时数据区域或者历史数据子区域,也可以采用更节约存储资源的方式,例如,以指针方式确定历史数据区域、实时数据区域或者历史数据子区域在数据表中的首数据记录、尾数据记录的地址。该技术手段为本领域技术人员常用,此处不赘述。
S302:针对历史数据区域的数据记录进行统计查询,将统计查询结果进行存储。具体的,针对每个历史数据子区域中的数据记录分别进行统计查询,得到每个历史数据子区域的统计查询结果进行存储。对一个历史数据子区域进行统计查询的过程:针对该历史数据子区域的数据记录,查询符合查询条件的数据记录,再对这些数据记录中的数据进行统计逻辑运算,得到该历史数据子区域的统计查询结果。
进一步,还可以为每个历史数据子区域的统计查询结果设置一个结果标识,用以标识当前存储的历史数据子区域的统计查询结果是否有效:若历史数据子区域中的某个数据记录被修改,则触发将该历史数据子区域的结果标识设置为无效;若对该历史数据子区域中的数据记录进行了统计查询,在存储该历史数据子区域的统计查询结果时,将结果标识设置为有效。
针对上述预先划分的历史数据区域、实时数据区域,以及预先存储的历史数据区域的统计查询结果,在需要对数据表进行统计查询时,可以利用预先存储的统计查询结果来提高效率,统计查询的方法流程图如图4所示,包括如下步骤:
S401:针对实时数据区域进行统计查询,得到实时数据区域的统计查询结果。即针对实时数据区域的数据记录,查询符合查询条件的数据记录,再对这些数据记录中的数据进行统计逻辑运算,得到实时数据区域的统计查询结果。
S402:提取之前预先存储的历史数据区域的统计查询结果。
S403:根据实时数据区域的统计查询结果,以及历史数据区域的统计查询结果得到最终的统计查询结果。
为了支持更加灵活的统计查询需求,本发明实施例中还对历史数据区域进 一步划分为若干个历史数据子区域。如果需要针对某段时间内的数据记录进行统计查询,那么,将进一步简化统计查询过程。假设,需要统计如图2b所示的数据表2中,2010年2月10日到2011年6月12日的数据记录中使用电量超60的个数总和,则统计查询的具体流程如图5a所示,包括如下步骤:
S501:根据统计查询需求确定需要查询的数据记录区域(简称查询数据区域)。
假设,数据表中的数据记录的时间顺序参数是根据时间值换算得到的,需要针对数据表中某段时间内的数据记录进行统计查询。例如,对于区域划分如图2b所示的数据表2,需要对2010年2月10日到2011年6月12日的数据记录进行统计查询,则根据该查询需求,可以确认待查询数据记录的时间顺序参数的范围,确定该范围内的数据记录即为查询数据区域的数据记录(如图5b所示)。
S502:确定被查询数据区域完全覆盖的历史数据子区域(简称区域A)。
若某历史数据子区域中的所有数据记录均属于查询数据区域,则该历史数据子区域被查询数据区域完全覆盖。例如,本例中确定的区域A包括:2010年3月的历史数据子区域~2011年5月的历史数据子区域。
S503:确定被查询数据区域部分覆盖的历史数据子区域(简称区域B)。
若某历史数据子区域中的部分数据记录属于查询数据区域,部分数据记录不属于查询数据区域,则该历史数据子区域被查询数据区域部分覆盖。例如,本例中确定的区域B包括:2010年2月的历史数据子区域。
S504:提取预先存储的区域A的统计查询结果(简称统计查询结果A)。
若区域A包括若干个历史数据子区域,则获取区域A中的每个历史数据子区域的统计查询结果。
较优的,如果针对每个历史数据子区域还设置了结果标识,那么,在获取区域A的统计查询结果之前,先判断区域A内的历史数据子区域的结果标识是否为有效。若有效,则获取区域A的统计查询结果;否则,针对无效的结果标识所对应的历史数据子区域中的数据记录进行统计查询、更新该历史数据子区域的统计查询结果以及设置结果标识为有效后,再获取区域A内各历史数据子区域的统计查询结果,将获取的区域A内各历史数据子区域的统计查询结果简称为统计查询结果A。
S505:针对区域B中的数据记录进行统计查询操作,得到统计查询结果(简称统计查询结果B)。例如,本例中在2010年2月的历史数据子区域的数据记录中,查询出2010年2月9日后的数据记录中使用电量大于60的数据记录, 统计查询出的数据记录之和。
S506:针对实时数据区域的数据记录进行统计查询操作,得到统计查询结果(简称统计查询结果C)。
S507:根据统计查询结果A、B、C,得到最终的统计查询结果。例如,本例中,对统计查询结果A中的各历史数据子区域的统计查询结果求累加和,再加上统计查询结果B和统计查询结果C,得到最终的统计查询结果——2010年2月10日到2011年6月12日的数据记录中使用电量超60的个数总和。
需要指出的是,上述步骤S502-S506不必严格按此顺序执行,例如,也可以先执行步骤S503再执行步骤S502,本领域技术人员可以根据实际来决定。历史数据区域与实时数据区域被划分后,在以后数据表中又新增数据记录时,还可以随时对历史数据区域和实时数据区域进行调整、更新维护:当数据表增加新的数据记录后,确定该数据记录属于实时数据区域,如果判断出当前的实时数据区域是否超过预先设定的界定范围(例如实时数据区域的数据记录个数超过某设定值,或者实时数据区域的数据记录的时间参数值大于某个设定值),则新增一个历史数据子区域,根据预先确定的划分规则,将实时数据区域中的部分数据记录划分到该新增的历史数据子区域中。预先确定的划分规则,例如,可以是将实时数据区域中除新增的数据记录之外的数据记录均划分到新增的历史数据子区域中,也可以是将实时数据区域中时间参数较小的一半数据记录划分到新增的历史数据子区域中。本领域技术人员可以根据实际情况来制订该划分规则。
在业务系统中,平时的统计查询需求相对比较固定,也就是说,进行查询时,统计逻辑运算相对固定,那么,这种预先保存历史数据的统计查询结果的方法,可以为之后相同类型的统计查询,提供可以复用的查询结果,来帮助加快得到最终查询结果的速度。本发明实施例中,所举逻辑运算为:比较阈值后,统计个数,对个数求和。类似的,对于其它统计逻辑运算,如求最大值、最小值、平均值、连乘等,均可以利用预先存储的部分数据的统计查询结果来得到最新统计查询结果,此处不再一一列举。
本发明实施例还提供了一种增长型数据库的数据统计查询系统,如图6所示,包括:历史数据查询结果存储模块601、数据区域确定模块602、统计查询模块603。
数据区域确定模块602,用于确定历史数据区域和实时数据区域的;所述历史数据区域中的第一类数据记录和所述实时数据区域中的第二类数据记录,是根据数据记录增加到数据表中的时间先后顺序确定的。
具体的,数据区域确定模块602将数据表中的数据记录的时间顺序参数的范围,分割为至少三个时间顺序参数子范围;对于其中任一时间顺序参数子范围,将时间顺序参数处于该时间顺序参数子范围内的数据记录确定为与该时间顺序参数子范围相对应的数据子区域内的数据记录;确定具有最大时间顺序参数的数据子区域为实时数据区域,其内的数据记录为第二类数据记录;确定其它数据子区域为历史数据子区域,组成历史数据区域,所述其它数据子区域内的数据记录为第一类数据记录。在上述步骤S301中已详述多种划分、确定方法,此处不再赘述。
历史数据查询结果存储模块601,用于存储历史数据区域的统计查询结果。
统计查询模块603,用于根据数据区域确定模块602确定的实时数据区域,针对实时数据区域中的数据记录进行统计查询,得到第一统计查询结果;从历史数据查询结果存储模块601中获取存储的历史数据区域的统计查询结果;根据所述第一统计查询结果,以及获取的统计查询结果,确定最终的统计查询结果。
具体的,统计查询模块603根据统计查询需求,确定出查询数据区域;所述查询数据区域为待查询数据记录的时间顺序参数的范围;根据数据区域确定模块602确定的历史数据子区域,确定被查询数据区域完全覆盖的历史数据子区域为区域A,以及被查询数据区域部分覆盖的历史数据子区域为区域B。
统计查询模块603根据统计查询需求在所述区域B进行统计查询得到统计查询结果B;从历史数据查询结果存储模块601中获取区域A内各历史数据子区域的统计查询结果;根据所述第一统计查询结果、统计查询结果B,以及获取的统计查询结果,确定最终的统计查询结果。
进一步,系统还包括:历史数据查询结果生成模块604。
历史数据查询结果生成模块604,用于根据数据区域确定模块602确定的历史数据子区域,针对各历史数据子区域中的数据记录进行统计查询,并将各历史数据子区域的统计查询结果存储到历史数据查询结果存储模块601中。
进一步,历史数据查询结果生成模块604,还用于在将历史数据子区域的统计查询结果存储到历史数据查询结果存储模块601中时,还将该历史数据子区域的结果标识设置为有效后一同存入所述历史数据查询结果存储模块601中。
历史数据查询结果生成模块604进一步还可以用于:若历史数据子区域中的数据记录发生变更,则修改历史数据查询结果存储模块601中的该历史数据子区域的结果标识为无效。
进而,统计查询模块603还用于:在获取区域A内各历史数据子区域的统 计查询结果之前,判断历史数据查询结果存储模块601中存储的区域A内各历史数据子区域的结果标识是否为有效;如果是,则从所述历史数据查询结果存储模块601中获取区域A内各历史数据子区域的统计查询结果;否则,通知历史数据查询结果生成模块604。在历史数据查询结果生成模块604针对无效的结果标识所对应的历史数据子区域中的数据记录进行统计查询、更新历史数据查询结果存储模块601中该历史数据子区域的统计查询结果和结果标识后,再获取历史数据查询结果存储模块601中区域A内各历史数据子区域的统计查询结果。
数据区域确定模块602,还用于当所述数据表增加新的数据记录后,确定该数据记录属于实时数据区域;判断出当前的实时数据区域是否超过预先设定的界定范围;若是,则新增一个历史数据子区域,根据预先确定的划分规则,将实时数据区域中的部分数据记录划分到该新增的历史数据子区域中。
本发明实施例中,由于预存了数据表中历史数据(不太改动的数据)的统计查询结果,那么在进行统计查询时,只需针对数据表中的实时数据(改动较频繁的数据)进行统计查询操作,再综合预存的统计查询结果,得到最终的统计查询结果。从而避免了对历史数据的统计查询操作,而历史数据在数据表中通常是绝大多数,因此,极大地提高了统计查询的速度和效率,节约了系统的处理资源。
并且,本发明实施例的统计查询方法中,可以不采用索引进行查询,不必消耗大量的数据库资源和维护时间,专门对索引数据进行处理,节约了系统资源和人力资源。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读取存储介质中,如:ROM/RAM、磁碟、光盘等。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (13)
1.一种增长型数据库的数据统计查询方法,包括:
针对实时数据区域中的数据记录进行统计查询,得到第一统计查询结果;
获取预先存储的历史数据区域的统计查询结果;
根据所述第一统计查询结果,以及获取的统计查询结果,确定最终的统计查询结果;
其中,所述历史数据区域中包含有数据表中的第一类数据记录,所述实时数据区域中包含有所述数据表中的第二类数据记录;
所述第一类数据记录和第二类数据记录是根据数据记录增加到所述数据表中的时间先后顺序预先确定的。
2.如权利要求1所述的方法,其中,所述第一类数据记录和第二类数据记录如下确定:
将所述数据表中的数据记录的时间顺序参数的范围,分割为至少三个时间顺序参数子范围;
对于其中任一时间顺序参数子范围,将时间顺序参数处于该时间顺序参数子范围内的数据记录确定为与该时间顺序参数子范围相对应的数据子区域内的数据记录;
确定具有最大时间顺序参数的数据子区域为实时数据区域,其内的数据记录为所述第二类数据记录;确定其它数据子区域为历史数据子区域,组成所述的历史数据区域,所述其它数据子区域内的数据记录为所述第一类数据记录。
3.如权利要求2所述的方法,其中,所述数据记录的时间顺序参数是通过对时间值进行换算得到的;以及,
所述将所述数据表中的数据记录的时间顺序参数的范围,分割为至少三个时间顺序参数子范围具体为:
以时间单位对所述数据表中的数据记录的时间顺序参数的范围进行分割,得到时间顺序参数子范围。
4.如权利要求2所述的方法,其中,将所述数据表中的数据记录的时间顺序参数的范围分割为至少两个时间顺序参数子范围为:
对于n个时间顺序参数子范围M1~Mn中的Mk,其时间顺序参数的范围为[Sk,Sk+1);其中,
Sk+1=Sk+W (公式1)
n=ROUNDUP((Z-S1)/W) (公式2)
上述公式1中,W为设定值,k为1至n的自然数;
上述公式2中,S1为数据表的数据记录中的最小时间顺序参数,Z为数据表的数据记录中的最大时间顺序参数,ROUNDUP为向上取整运算符。
5.如权利要求3或4所述的方法,其中,在所述确定最终的统计查询结果之前还包括:
根据统计查询需求,确定出查询数据区域;所述查询数据区域是根据待查询数据记录的时间顺序参数的范围确定的;
确定被所述查询数据区域完全覆盖的历史数据子区域为区域A;
确定被所述查询数据区域部分覆盖的历史数据子区域为区域B;
根据所述统计查询需求在所述区域B进行统计查询得到统计查询结果B;以及,
所述获取预先存储的历史数据区域的统计查询结果,具体为:获取区域A内各历史数据子区域的统计查询结果;以及,
在根据所述第一统计查询结果,以及获取的统计查询结果,确定最终的统计查询结果时,还根据所述统计查询结果B,以确定最终的统计查询结果。
6.如权利要求5所述的方法,其中,在所述获取区域A内各历史数据子区域的统计查询结果之前还包括:
判断区域A内各历史数据子区域的结果标识是否为有效;以及,
如果是,则获取区域A内各历史数据子区域的统计查询结果;否则,针对无效的结果标识所对应的历史数据子区域中的数据记录进行统计查询、更新该历史数据子区域的统计查询结果后,再获取区域A内各历史数据子区域的统计查询结果。
7.如权利要求3或4所述的方法,其中,所述数据表的历史数据区域和实时数据区域的更新维护方法包括:
当所述数据表增加新的数据记录后,确定该数据记录属于所述实时数据区域;
判断出当前的实时数据区域是否超过预先设定的界定范围;若是,则新增一个历史数据子区域,根据预先确定的划分规则,将实时数据区域中的部分数据记录划分到该新增的历史数据子区域中。
8.一种增长型数据库的数据统计查询系统,包括:
历史数据查询结果存储模块,用于存储历史数据区域的统计查询结果;
数据区域确定模块,用于确定所述历史数据区域和实时数据区域,其中所述历史数据区域中的第一类数据记录和所述实时数据区域中的第二类数据记录是根据数据记录增加到数据表中的时间先后顺序确定的;
统计查询模块,用于根据所述数据区域确定模块确定的实时数据区域,针对实时数据区域中的数据记录进行统计查询,得到第一统计查询结果;从所述历史数据查询结果存储模块中获取存储的历史数据区域的统计查询结果;根据所述第一统计查询结果,以及获取的统计查询结果,确定最终的统计查询结果。
9.如权利要求8所述的系统,其特征在于,
所述数据区域确定模块将所述数据表中的数据记录的时间顺序参数的范围分割为至少三个时间顺序参数子范围;对于其中任一时间顺序参数子范围,将时间顺序参数处于该时间顺序参数子范围内的数据记录确定为与该时间顺序参数子范围相对应的数据子区域内的数据记录;确定具有最大时间顺序参数的数据子区域为实时数据区域,其内的数据记录为所述第二类数据记录;确定其它数据子区域为历史数据子区域,组成所述的历史数据区域,所述其它数据子区域内的数据记录为所述第一类数据记录。
10.如权利要求9所述的系统,其特征在于,还包括:
历史数据查询结果生成模块,根据所述数据区域确定模块确定的历史数据子区域,针对各历史数据子区域中的数据记录进行统计查询,并将各历史数据子区域的统计查询结果存储到所述历史数据查询结果存储模块中。
11.如权利要求10所述的系统,其特征在于,
所述统计查询模块根据统计查询需求,确定出查询数据区域;所述查询数据区域是根据待查询数据记录的时间顺序参数的范围确定的;根据所述数据区域确定模块确定的历史数据子区域,确定被所述查询数据区域完全覆盖的历史数据子区域为区域A,以及被所述查询数据区域部分覆盖的历史数据子区域为区域B;根据所述统计查询需求在所述区域B进行统计查询得到统计查询结果B;从所述历史数据查询结果存储模块中获取区域A内各历史数据子区域的统计查询结果;根据第一统计查询结果、统计查询结果B,以及获取的统计查询结果,确定最终的统计查询结果。
12.如权利要求11所述的系统,其特征在于,
所述历史数据查询结果生成模块,还用于在将历史数据子区域的统计查询结果存储到所述历史数据查询结果存储模块中时,将该历史数据子区域的结果标识设置为有效后一同存入所述历史数据查询结果存储模块中;
所述历史数据查询结果生成模块还用于在历史数据子区域中的数据记录发生变更时,修改所述历史数据查询结果存储模块中的该历史数据子区域的结果标识为无效;
所述统计查询模块还用于在获取区域A内各历史数据子区域的统计查询结果之前,判断所述历史数据查询结果存储模块中存储的区域A内各历史数据子区域的结果标识是否为有效;如果是,则从所述所述历史数据查询结果存储模块中获取区域A内各历史数据子区域的统计查询结果;否则,通知所述历史数据查询结果生成模块,针对无效的结果标识所对应的历史数据子区域中的数据记录进行统计查询、更新所述历史数据查询结果存储模块中该历史数据子区域的统计查询结果和结果标识后,再获取所述历史数据查询结果存储模块中区域A内各历史数据子区域的统计查询结果。
13.如权利要求9-12所述的系统,其特征在于,
所述数据区域确定模块还用于当所述数据表增加新的数据记录后,确定该数据记录属于所述实时数据区域;判断出当前的实时数据区域是否超过预先设定的界定范围;若是,则新增一个历史数据子区域,根据预先确定的划分规则,将实时数据区域中的部分数据记录划分到该新增的历史数据子区域中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011104155830A CN102542005A (zh) | 2011-12-13 | 2011-12-13 | 增长型数据库的数据统计查询系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011104155830A CN102542005A (zh) | 2011-12-13 | 2011-12-13 | 增长型数据库的数据统计查询系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102542005A true CN102542005A (zh) | 2012-07-04 |
Family
ID=46348898
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011104155830A Pending CN102542005A (zh) | 2011-12-13 | 2011-12-13 | 增长型数据库的数据统计查询系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102542005A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105184677A (zh) * | 2015-09-17 | 2015-12-23 | 国网北京市电力公司 | 配电网数据接入方法和装置 |
CN105677840A (zh) * | 2016-01-06 | 2016-06-15 | 东北大学 | 一种基于多维渐增数据模型的数据查询方法 |
CN108108486A (zh) * | 2018-01-10 | 2018-06-01 | 上海达梦数据库有限公司 | 一种数据表查询方法、装置、终端设备及存储介质 |
CN108628929A (zh) * | 2017-03-24 | 2018-10-09 | 西部数据技术公司 | 用于智能存档和分析的方法和装置 |
CN108959442A (zh) * | 2018-06-13 | 2018-12-07 | 福建天晴数码有限公司 | 基于预定义计算规则的流式实时计算方法、存储介质 |
CN111078906A (zh) * | 2018-10-18 | 2020-04-28 | 杭州海康威视数字技术股份有限公司 | 图像查询、信息同步方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1431617A (zh) * | 2003-02-17 | 2003-07-23 | 浙江大学 | 成品油贸易交接过程计量的全程监测系统及其使用方法 |
CN101051334A (zh) * | 2006-04-06 | 2007-10-10 | 香港理工大学 | 结构健康监测和信息管理系统及其方法 |
CN201766619U (zh) * | 2010-08-26 | 2011-03-16 | 中国石油集团川庆钻探工程有限公司 | 井场实时数据及现场视频信息发布的应用系统 |
CN102073767A (zh) * | 2011-01-12 | 2011-05-25 | 南京南瑞继保电气有限公司 | 电力信息系统群虚拟数据仓库元数据管理方法 |
-
2011
- 2011-12-13 CN CN2011104155830A patent/CN102542005A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1431617A (zh) * | 2003-02-17 | 2003-07-23 | 浙江大学 | 成品油贸易交接过程计量的全程监测系统及其使用方法 |
CN101051334A (zh) * | 2006-04-06 | 2007-10-10 | 香港理工大学 | 结构健康监测和信息管理系统及其方法 |
CN201766619U (zh) * | 2010-08-26 | 2011-03-16 | 中国石油集团川庆钻探工程有限公司 | 井场实时数据及现场视频信息发布的应用系统 |
CN102073767A (zh) * | 2011-01-12 | 2011-05-25 | 南京南瑞继保电气有限公司 | 电力信息系统群虚拟数据仓库元数据管理方法 |
Non-Patent Citations (1)
Title |
---|
严锡君等: "《实时系统中快速统计方法的实现与研究》", 《微型电脑应用》, no. 4, 30 April 2011 (2011-04-30), pages 57 - 59 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105184677A (zh) * | 2015-09-17 | 2015-12-23 | 国网北京市电力公司 | 配电网数据接入方法和装置 |
CN105677840A (zh) * | 2016-01-06 | 2016-06-15 | 东北大学 | 一种基于多维渐增数据模型的数据查询方法 |
CN105677840B (zh) * | 2016-01-06 | 2019-02-05 | 东北大学 | 一种基于多维渐增数据模型的数据查询方法 |
CN108628929A (zh) * | 2017-03-24 | 2018-10-09 | 西部数据技术公司 | 用于智能存档和分析的方法和装置 |
CN108628929B (zh) * | 2017-03-24 | 2021-11-16 | 西部数据技术公司 | 用于智能存档和分析的方法和装置 |
CN108108486A (zh) * | 2018-01-10 | 2018-06-01 | 上海达梦数据库有限公司 | 一种数据表查询方法、装置、终端设备及存储介质 |
CN108959442A (zh) * | 2018-06-13 | 2018-12-07 | 福建天晴数码有限公司 | 基于预定义计算规则的流式实时计算方法、存储介质 |
CN111078906A (zh) * | 2018-10-18 | 2020-04-28 | 杭州海康威视数字技术股份有限公司 | 图像查询、信息同步方法及装置 |
CN111078906B (zh) * | 2018-10-18 | 2023-05-19 | 杭州海康威视数字技术股份有限公司 | 图像查询、信息同步方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102542005A (zh) | 增长型数据库的数据统计查询系统及方法 | |
CN107608860B (zh) | 一种错误日志分类存储的方法、装置、设备 | |
CN104503840A (zh) | 对终端资源进行优化的方法及装置 | |
CN103077241A (zh) | 将文件拆分后并行加载数据入库的方法 | |
EP2511826A1 (en) | Level-to-level management method and system of storage resources | |
CN106021985B (zh) | 一种基因组数据压缩方法 | |
EP3779701B1 (en) | Data monitoring method, electronic device, and computer readable storage medium | |
CN102142983A (zh) | 告警相关性分析方法和装置 | |
CN102541925A (zh) | 一种实现详细话单的快速存储和检索的方法及装置 | |
WO2018122890A1 (ja) | ログ分析方法、システムおよびプログラム | |
CN112764993A (zh) | 一种节点信息收集方法、装置、设备及可读存储介质 | |
CN109254839A (zh) | 确定任务触发时间的方法、构建任务定时器的方法及系统 | |
CN104346458A (zh) | 数据存储方法和存储设备 | |
CN108241744A (zh) | 一种日志读取方法和装置 | |
CN111913925A (zh) | 一种分布式存储系统中的数据处理方法及系统 | |
CN103488695A (zh) | 数据同步装置和数据同步方法 | |
CN104376119A (zh) | 一种适应超大规模列存数据库的数据访问方法及装置 | |
CN110688065A (zh) | 一种存储空间管理方法、系统、电子设备及存储介质 | |
CN102722456A (zh) | 闪存存储设备的数据写入方法和闪存存储设备 | |
CN112905606A (zh) | 一种基于位图的考勤标识算法 | |
CN111143433A (zh) | 一种统计数据仓数据的方法及装置 | |
CN111127700A (zh) | 一种自动驾驶汽车的系统指标监控系统 | |
CN105243011A (zh) | 内存泄露定位方法及装置 | |
CN109189788A (zh) | 用于钢铁过程控制的高速数据存储方法和系统 | |
JPWO2018122889A1 (ja) | 異常検出方法、システムおよびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20120704 |