数据存储方法及其装置、数据查询方法及其装置与流程

文档序号:16468433发布日期:2019-01-02 22:55阅读:123来源:国知局

本发明实施例涉及数据存储和查询技术领域,尤其涉及数据存储方法、数据存储装置、数据查询方法、数据查询装置、电子设备和计算机可读存储介质。



背景技术:

存储数据的服务器在运行期间,会接到用户对于历史数据的查询请求,例如针对存储网络约车数据的网络约车服务器而言,用户的查询请求可能为查询某个区域某个时间段内的某类型的网络约车数据。

目前的查询方式,需要针对遍历所查询的区域内以及所查询的时间段内该类型的全部网络约车数据,这在如今网络约车数据日益增大的情况下,所需查询的数据量是及其庞大的,查询操作耗时较长,随之导致用户等待查询结果的时间也较长,影响用户查询体验。并且在其他数据的查询过程中也存在同样的问题。



技术实现要素:

本发明实施例提供数据存储方法、数据存储装置、数据查询方法、数据查询装置、电子设备和计算机可读存储介质,以解决相关技术中的不足。

根据本发明实施例的第一方面,提供一种数据存储方法,包括:

将目标区域划分为多个相同的子区域;

将子区域的历史数据对应的历史时间段划分为n个时长相同的时间段,其中,n为大于1的整数,所述历史数据满足区间减法;

建立第1个时间段对应的历史数据之和与所述第1个时间段的关联关系,建立所述第1个时间段、第2个时间段分别对应的历史数据之和的总和与所述第2个时间段的关联关系,…,建立所述第1个时间段、第2个时间段、…、第n个时间段分别对应的历史数据之和的总和与所述第n个时间段的关联关系;

根据所述时间段和m个预设的时间维度确定m+1维存储空间,m为大于或等于0的整数;

按照时间顺序将每个所述时间段相关联的历史数据之和存储在所述存储空间中。

可选地,所述根据所述时间段和m个预设的时间维度确定m+1维存储空间包括:

根据所述时间段确定所述存储空间一个维度的粒度;

根据每个所述预设的时间维度确定所述存储空间其他维度的粒度。

可选地,每个所述子区域的形状为矩形。

可选地,所述存储空间为key-value数据库,所述时间段和所述预设的时间维度为所述数据库的主键。

根据本发明实施例的第二方面,提供一种数据查询方法,包括:

接收终端的查询指令;

根据所述查询指令确定查询的目标子区域、起始时间和截止时间,所述起始时间和截止时间的维度,以及所述截止时间所处的截止时间段和所述起始时间所处的起始时间段在每个维度分别提前一个粒度所对应的前一个时间段;

获取与所述截止时间段相关联的第一历史数据之和,以及与所述前一个时间段相关联的第二历史数据之和,其中,所述第一历史数据之和为所述截止时间段之前的每个时间段分别对应的历史数据之和的总和,所述第二历史数据之和为所述前一个时间段之前的每个时间段分别对应的历史数据之和的总和,所述历史数据满足区间减法;

计算所述第一历史数据之和与所述第二历史数据之和在每个维度上的差值,加上重复减去的时间段对应的历史数据之和;

根据计算结果向所述终端反馈查询结果。

可选地,所述获取与所述截止时间段相关联的第一历史数据之和,以及与所述前一个时间段相关联的第二历史数据之和包括:

确定缓存中是否存在所述第一历史数据之和,和/或所述第二历史数据之和;

若存在所述第一历史数据之和或所述第二历史数据之和,从所述缓存中获取所述第一历史数据之和,或从所述缓存中获取所述第二历史数据之和;

若不存在所述第一历史数据之和或所述第二历史数据之和,从存储空间中获取所述第一历史数据之和,或从存储空间中获取所述第二历史数据之和。

根据本发明实施例的第三方面,提供一种数据存储装置,包括:

区域划分模块,用于将目标区域划分为多个相同的子区域;

时间段划分模块,用于将子区域的历史数据对应的历史时间段划分为n个时长相同的时间段,其中,n为大于1的整数,所述历史数据满足区间减法;

关联模块,用于建立第1个时间段对应的历史数据之和与所述第1个时间段的关联关系,建立所述第1个时间段、第2个时间段分别对应的历史数据之和的总和与所述第2个时间段的关联关系,…,建立所述第1个时间段、第2个时间段、…、第n个时间段分别对应的历史数据之和的总和与所述第n个时间段的关联关系;

空间确定模块,用于根据所述时间段和m个预设的时间维度确定m+1维存储空间,m为大于或等于0的整数;

存储模块,用于按照时间顺序将每个所述时间段相关联的历史数据之和存储在所述存储空间中。

可选地,所述空间确定模块用于根据所述时间段确定所述存储空间一个维度的粒度;根据每个所述预设的时间维度确定所述存储空间其他维度的粒度。

可选地,每个所述子区域的形状为矩形。

可选地,所述存储空间为key-value数据库,所述时间段和所述预设的时间维度为所述数据库的主键。

根据本发明实施例的第四方面,提供一种数据查询装置,包括:

指令接收模块,用于接收终端的查询指令;

确定模块,用于根据所述查询指令确定查询的目标子区域、起始时间和截止时间,所述起始时间和截止时间的维度,以及所述截止时间所处的截止时间段和所述起始时间所处的起始时间段在每个维度分别提前一个粒度所对应的前一个时间段;

数据获取模块,用于获取与所述截止时间段相关联的第一历史数据之和,以及与所述前一个时间段相关联的第二历史数据之和,其中,所述第一历史数据之和为所述截止时间段之前的每个时间段分别对应的历史数据之和的总和,所述第二历史数据之和为所述前一个时间段之前的每个时间段分别对应的历史数据之和的总和,所述历史数据满足区间减法;

计算模块,用于计算所述第一历史数据之和与所述第二历史数据之和在每个维度上的差值,加上重复减去的时间段对应的历史数据之和;

反馈模块,用于根据计算结果向所述终端反馈查询结果。

可选地,所述数据获取模块包括:

数据确定子模块,用于确定缓存中是否存在所述第一历史数据之和,和/或所述第二历史数据之和;

缓存数据获取子模块,用于在缓存中若存在所述第一历史数据之和或所述第二历史数据之和的情况下,从所述缓存中获取所述第一历史数据之和,或从所述缓存中获取所述第二历史数据之和;

存储空间数据获取子模块,用于在缓存中不存在所述第一历史数据之和或所述第二历史数据之和的情况下爱,从存储空间中获取所述第一历史数据之和,或从存储空间中获取所述第二历史数据之和。

根据本发明实施例的第五方面,提供一种电子设备,包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为:

将目标区域划分为多个相同的子区域;

将子区域的历史数据对应的历史时间段划分为n个时长相同的时间段,其中,n为大于1的整数,所述历史数据满足区间减法;

建立第1个时间段对应的历史数据之和与所述第1个时间段的关联关系,建立所述第1个时间段、第2个时间段分别对应的历史数据之和的总和与所述第2个时间段的关联关系,…,建立所述第1个时间段、第2个时间段、…、第n个时间段分别对应的历史数据之和的总和与所述第n个时间段的关联关系;

根据所述时间段和m个预设的时间维度确定m+1维存储空间,m为大于或等于0的整数;

按照时间顺序将每个所述时间段相关联的历史数据之和存储在所述存储空间中。

根据本发明实施例的第六方面,提供一种电子设备,包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为:

接收终端的查询指令;

根据所述查询指令确定查询的目标子区域、起始时间和截止时间,所述起始时间和截止时间的维度,以及所述截止时间所处的截止时间段和所述起始时间所处的起始时间段在每个维度分别提前一个粒度所对应的前一个时间段;

获取与所述截止时间段相关联的第一历史数据之和,以及与所述前一个时间段相关联的第二历史数据之和,其中,所述第一历史数据之和为所述截止时间段之前的每个时间段分别对应的历史数据之和的总和,所述第二历史数据之和为所述前一个时间段之前的每个时间段分别对应的历史数据之和的总和,所述历史数据满足区间减法;

计算所述第一历史数据之和与所述第二历史数据之和在每个维度上的差值,加上重复减去的时间段对应的历史数据之和;

根据计算结果向所述终端反馈查询结果。

根据本发明实施例的第七方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:

将目标区域划分为多个相同的子区域;

将子区域的历史数据对应的历史时间段划分为n个时长相同的时间段,其中,n为大于1的整数,所述历史数据满足区间减法;

建立第1个时间段对应的历史数据之和与所述第1个时间段的关联关系,建立所述第1个时间段、第2个时间段分别对应的历史数据之和的总和与所述第2个时间段的关联关系,…,建立所述第1个时间段、第2个时间段、…、第n个时间段分别对应的历史数据之和的总和与所述第n个时间段的关联关系;

根据所述时间段和m个预设的时间维度确定m+1维存储空间,m为大于或等于0的整数;

按照时间顺序将每个所述时间段相关联的历史数据之和存储在所述存储空间中。

根据本发明实施例的第八方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:

接收终端的查询指令;

根据所述查询指令确定查询的目标子区域、起始时间和截止时间,所述起始时间和截止时间的维度,以及所述截止时间所处的截止时间段和所述起始时间所处的起始时间段在每个维度分别提前一个粒度所对应的前一个时间段;

获取与所述截止时间段相关联的第一历史数据之和,以及与所述前一个时间段相关联的第二历史数据之和,其中,所述第一历史数据之和为所述截止时间段之前的每个时间段分别对应的历史数据之和的总和,所述第二历史数据之和为所述前一个时间段之前的每个时间段分别对应的历史数据之和的总和,所述历史数据满足区间减法;

计算所述第一历史数据之和与所述第二历史数据之和在每个维度上的差值,加上重复减去的时间段对应的历史数据之和;

根据计算结果向所述终端反馈查询结果。

由上述实施例可知,一方面,将多条数据加和进行存储,也即仅存储数据之和,可以极大的缩小存储空间;另一方面,由于存储的数据满足空间减法,因此在查询该存储空间中某个时间段的数据时,只需进行简单的减法操作即可得到查询结果,极大地提高了查询速度。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

图1是根据本发明实施例示出的一种数据存储方法的示意流程图。

图2是根据本发明实施例示出的一种存储空间的示意图。

图3是根据本发明实施例示出的一种存储空间的示意图。

图4是根据本发明实施例示出的另一种数据存储方法的示意流程图。

图5是根据本发明实施例示出的一种数据查询方法的示意流程图。

图6是根据本发明实施例示出的另一种数据查询方法的示意流程图。

图7是根据本发明实施例示出的数据查询方法的具体示意流程图。

图8是根据本发明实施例示出的一种数据存储装置的示意框图。

图9是根据本发明实施例示出的一种数据查询装置的示意框图。

图10是根据本发明实施例示出的另一种数据查询装置的示意框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

图1是根据本发明实施例示出的一种数据存储方法的示意流程图,该实施例可以用于存储数据的服务器中。如图1所示,该方法包括以下步骤:

步骤s11,将目标区域划分为多个相同的子区域。

在一个实施例中,目标区域可以根据所要存储的数据的不同而确定,例如需要存储的数据为网络约车数据,那么目标区域可以是城区、机场等网络约车订单较为集中的区域;例如需要存储的数据为农作物产量,那么目标区域可以是相应农作物的种植区域。以下主要在需要存储的数据为网络约车数据中的订单数据的情况下进行示例性说明。

在一个实施例中,子区域的尺寸和形状可以根据需要进行设置,例如可以是边长为500米的等边三角形,长为500米,宽为300米的矩形等。

步骤s12,将子区域的历史数据对应的历史时间段划分为n个时长相同的时间段,其中,n为大于1的整数,所述历史数据满足区间减法。

在一个实施例中,满足区间减法是指在a<b<c的情况下,a,b和c为实数,若数据满足已知[a,c]区间该数据的信息,以及[b,c]区间该数据的信息,即可确定[a,b]区间该数据的信息,或者已知[a,c]区间该数据的信息,以及[a,b]区间该数据的信息,即可确定[b,c]区间该数据的信息。

以网络约车数据中的订单数量为例,若已知某区域某日7点至9点的订单数量为100万,7点至8点的订单数量为40万,那么即可确定8点至9点的订单数量为100-40=60万。

在一个实施例中,针对每个子区域,可以将其历史数据对应的历史时间段划分为n个时长相同的时间段,划分时间段的粒度可以根据需要进行设置,例如可以设置为1小时、半小时、一天等。以半小时为例,那么可以将一天划分为48时间段。

步骤s13,建立第1个时间段对应的历史数据之和与所述第1个时间段的关联关系,建立所述第1个时间段、第2个时间段分别对应的历史数据之和的总和与所述第2个时间段的关联关系,…,建立所述第1个时间段、第2个时间段、…、第n个时间段分别对应的历史数据之和的总和与所述第n个时间段的关联关系。

在一个实施例中,以时长等于半小时为例,也即一天划分为48个时间段,那么针对第1个时间段00:00-00:30,相关联历史数据之和的也即第1个时间段对应的数据之和,例如共有10万个网络约车订单,则第1个时间段对应的历史数据之和为10万;针对第2个时间段00:30-01:00,相关历史数据之和则是第1个时间段对应的历史数据之和10万和第2个时间段对应的历史数据之和12万的总和,也即10万+12万=22万;以此类推,针对第48个时间段23:30-00:00,相关历史数据之和则是48个时间段分别对应的历史数据之和的总和,例如为500万。

步骤s14,根据所述时间段和m个预设的时间维度确定m+1维存储空间,m为大于或等于0的整数。

步骤s15,按照时间顺序将每个所述时间段相关联的历史数据之和存储在所述存储空间中。

在一个实施例中,为方便示意,以201608080930表示2016年8月8日9:30到10:00这个时间段的历史订单数据之和的总和。那么2016年8月8日每个时间段对应的历史订单数据之和的总和则可以通过201608080000至201608082330来表示。

图2是根据本发明实施例示出的一种存储空间的示意图。

在一个实施例中,存储空间至少是一维的,也即m=0,那么存储空间是一维的,且粒度为半小时。如图2所示,可以根据时间顺序将每个时间段相关联的历史数据之和的总和存储在存储空间中,也即越早的时间段对应的历史数据之和的总和存储在靠前的位置,越晚的时间段对应的历史数据之和的总和存储在靠后的位置,越靠后的位置存储的历史数据之和的总和越大。

图3是根据本发明实施例示出的一种存储空间的示意图。

在一个实施例中,用户可以根据需要设置除了时长以外的时间维度,例如日、月、年等,以第二个时间维度为日为例,也即m=1,那么存储空间存储的则是二维数据。如图3所示,其中横向的维度表示日期,图3中从左至右示出了从2016年8月8日至2016年8月12日;其中纵向的维度表示上述时长,图3中从上至下示出了从00:00至10:30多个时间段,也即每个日期维度均对应48个时间段。

在图3所示实施例的基础上,进一步还可以提高m的值,例如在时间段、日期的基础上,进一步设置月份维度、年份维度等。具体可以根据需要进行设置,存储空间也会相应地增加维度。

在一个实施例中,由于存储空间中的数据满足空间减法,因此在用户查询某个时域区间内的数据时,只需要确定该区间的起点和终点即可,并进行简单的减法操作即可得到查询结果。

例如针对图2所示的一维数据,若用户查询2016年8月8日12:30至2016年8月9日5:00之间的历史数据,那么只需要将201608090500对应的历史订单数据之和的总和与201608081230对应的订单数据之和的总和相减即可得到查询结果。

例如针对图3所示的二维数据,若用户查询2016年8月7日至2016年8月12日每天7:00至9:30的订单数量,那么只需要将20160812和0930相交的空间对应的历史数据之和的总和,减去20160806和0930相交的空间对应的历史数据之和的总和,再减去20160813和0630相交的空间对应的历史数据之和的总和,并加上重复减去的20160806和0630相交的空间对应的历史数据之和的总和即可得到查询结果。

也即根据本实施例的方式存储数据,一方面,将多条数据加和进行存储,也即仅存储数据之和的总和,例如针对10万条订单数据,仅存储数值10万即可,而无需存储10万条不同的订单数据,因此可以极大的缩小存储空间;另一方面,由于存储的数据满足空间减法,因此在查询该存储空间中某个时间段的数据时,只需进行简单的减法操作即可得到查询结果,极大地提高了查询速度,例如针对每天上千万条数据量的网络约车数据,基于图3所示实施例的存储方式,可以将查询速度由零点几秒缩短到几毫秒,针对更大的数据量,效果更加明显。

需要说明的是,针对图2、图3以及更多维的存储空间,每个时间段还对应有空间维度,也即对应多个子区域;也即每个子区域分别对应一个图2或图3乃至更高维的存储空间。子区域可以根据经度和维度来确定区间,例如经度的粒度为0.005个经度,维度的粒度为0.005个维度,那么可以将经度在116.215到116.220之间,纬度在40.460到40.465之间的数据记录在116215_40460空间内。

图4是根据本发明实施例示出的另一种数据存储方法的示意流程图。如图4所示,在图1所示实施例的基础上,所述根据所述时间段和m个预设的时间维度确定m+1维存储空间包括:

步骤s141,根据所述时间段确定所述存储空间一个维度的粒度;

步骤s142,根据每个所述预设的时间维度确定所述存储空间其他维度的粒度。

在一个实施例中,时间段可以是在划分子区域的历史数据对应的历史时间段的过程中确定的,例如图2和图3所示,时间段若为半小时,那么存储空间一个维度的粒度即为半小时。

在一个实施例中,预设的时间维度可以为日期、周、月份、年份等,该时间维度可以是预先设置的,根据不同的时间维度,可以构建不同的存储空间,并且随着每个维度设置的不同,存储空间的其他维度也会相应变化,例如预设的时间维度仅包括日,那么每一日对应48个时间段,例如预设的时间维度仅包括周,那么每一周对应336个时间段。并且预设的时间维度还可以不存在,也即如图2所示,存储空间为一维的。

可选地,每个所述子区域的形状为矩形。

在一个实施例中,将子区域设置矩形,更有利于保证子区域中的历史数据满足空间减法,从而有利于后续查询过程中准确地计算,以得到准确的查询结果。

可选地,所述存储空间为key-value数据库,所述时间段和所述预设的时间维度为所述数据库的主键。

在一个实施例中,key-value数据库的查询速度快,存放数据量大,并且支持高并发,而且非常适合通过主键进行查询,而由于本实施例中存储在存储空间中的数据满足空间减法,在进行查询时,主要是根据查询的时域区间的起点和终点确定相应的存储空间,并进行减法(针对大于一维的存储空间还需要进行加法运算)操作即可,而该时域区间的起点和终点则可以根据主键方便地确定,从而适合进行快速地查询。

图5是根据本发明实施例示出的一种数据查询方法的示意流程图。如图5所述,该数据查询方法包括:

步骤s51,接收终端的查询指令;

步骤s52,根据所述查询指令确定查询的目标子区域、起始时间和截止时间,所述起始时间和截止时间的维度,以及所述截止时间所处的截止时间段和所述起始时间所处的起始时间段在每个维度分别提前一个粒度所对应的前一个时间段。

在一个实施例中,查询指令中可以包括所需要查询的区域,也即目标子区域,以便根据目标子区域确定其对应的存储空间。还可以确定查询的时域区间的起始时间和截止时间,以及相应的维度。其中,在存储空间中可以查询比存储空间维度低的起始时间和截止时间对应的数据,也即一般查询指令中起始时间和截止时间的维度小于或等于存储空间的维度。

在一个实施例中,在根据查询指令确定了起始时间和截止时间后,可以进一步确定截止时间所处的截止时间段和所述起始时间所处的起始时间段在每个维度分别提前一个粒度所对应的前一个时间段,以便后续进行计算操作。

步骤s53,获取与所述截止时间段相关联的第一历史数据之和,以及与所述前一个时间段相关联的第二历史数据之和,其中,所述第一历史数据之和为所述截止时间段之前的每个时间段分别对应的历史数据之和的总和,所述第二历史数据之和为所述前一个时间段之前的每个时间段分别对应的历史数据之和的总和,所述历史数据满足区间减法;

步骤s54,计算所述第一历史数据之和与所述第二历史数据之和在每个维度上的差值,加上重复减去的时间段对应的历史数据之和;

步骤s55,根据计算结果向所述终端反馈查询结果。

在一个实施例中,该方法可以用于查询图1或图4所示实施例中的数据存储方法存储的数据,那么针对图3所示的二维存储空间,若用户查询2016年8月7日至2016年8月12日每天7:00至9:30的订单数量,那么确定起始时间所处的起始时间段在每个维度分别提前一个粒度所对应的前一个时间段,需要在日期维度提前一个粒度,即8月7日提前一日为8月6日,在时间段维度提前一个粒度,即7:00提前一个粒度为即6:30,则该前一个时间段为20160806和0630相交的空间对应的时间段。

进一步地,可以在日期的维度上计算第一历史数据之和与所述第二历史数据之和的差值,也即通过20160812和0930相交的空间对应的历史数据之和的总和减去20160806和0930相交的空间对应的历史数据之和总和,得到第一差值。然后进一步在时间段维度计算第一历史数据之和与所述第二历史数据之和的差值,也即用上述第一差值减去20160813和0630相交的空间对应的历史数据之和的总和,得到第二差值。

而20160806和0930相交的空间对应的历史数据之和的总和与20160813和0630相交的空间对应的历史数据之和的总和,均包含20160806和0630相交的空间对应的历史数据之和的总和,也即在上述两次减法计算过程中,重复减去了一次20160806和0630相交的空间对应的历史数据之和的总和,因此得到的第二差值的基础上,再加上20160806和0630相交的空间对应的历史数据之和的总和,即可得到查询结果。

查询结果的计算过程仅涉及若干次确定几个维度相交的空间对应的数据,以及简单的减法和加法运算,而不涉及其他复杂的处理过程,从而可以极大地提高得到查询结果的速度。

图6是根据本发明实施例示出的另一种数据查询方法的示意流程图。如图6所示,在图5所示实施例的基础上,所述获取与所述截止时间段相关联的第一历史数据之和,以及与所述前一个时间段相关联的第二历史数据之和包括:

步骤s531,确定缓存中是否存在所述第一历史数据之和,和/或所述第二历史数据之和;

步骤s532,若存在所述第一历史数据之和或所述第二历史数据之和,从所述缓存中获取所述第一历史数据之和,或从所述缓存中获取所述第二历史数据之和;

步骤s533,若不存在所述第一历史数据之和或所述第二历史数据之和,从存储空间中获取所述第一历史数据之和,或从存储空间中获取所述第二历史数据之和。

在一个实施例中,在获取第一历史数据之和以及第二历史数据之和时,可以先在缓存中查询是否存在第一历史数据之和以及第二历史数据之和,若在缓存中存在获取第一历史数据之和,则直接从缓存中获取第一历史数据之和,若不存在第一历史数据之和,则可以从存储空间中获取第一历史数据之和;相应地,若在缓存中存在第二历史数据之和,则直接从缓存中获取第二历史数据之和,若不存在第二历史数据之和,则可以从存储空间中获取第二历史数据之和;从而保证优先从缓存中获取数据,从而提高数据获取速度,进而提高查询结果的生成速度。

图7是根据本发明实施例示出的数据查询方法的具体示意流程图。

如图7所示,在一个实施例中,可以采用key-value数据库存储上述实施例中的数据。

查询服务接口层在接收到的查询指令后,可以请求数据获取层获取数据。数据获取层可以根据图5所示的实施例确定截止时间所处的截止时间段和起始时间所处的起始时间段在每个维度分别提前一个粒度所对应的前一个时间段。并且由于在计算第一历史数据之和与第二历史数据之和在每个维度上的差值时,还需确定第一历史数据之和第二历史数据之和在每个维度上相交的空间对应的历史数据之和的总和,以进行相减。

例如针对图3所示实施例,第一历史数据之和为20160812和0930相交的空间对应的历史数据之和的总和,第二历史数据之和为20160806和0630相交的空间对应的历史数据之和的总和,第一历史数据之和第二历史数据之和在每个维度(在图3所示实施例中维度等于2)上相交的空间对应的历史数据之和的总和为20160806和0930相交的空间对应的历史数据之和的总和,和20160813和0630相交的空间对应的历史数据之和的总和。

因此,以图3为例,在确定第一历史数据之和与第二历史数据之和在每个维度上的差值时,可以同时确定第一历史数据之和第二历史数据之和在每个维度上相交的空间对应的历史数据之和的总和,也即4个空间对应的历史数据之和的总和。

针对上述4个空间对应的历史数据之和的总和,数据获取层可以优先向缓存数据库进行请求,若缓存数据库反馈未查询到,那么数据获取层可以进一步向key-value数据库进行请求。

在key-value数据库返回了数据,或者缓存数据库返回了数据时,数据获取层可以将获取到的数据反馈给查询服务接口层。并且在key-value数据库返回了数据的情况下,数据获取层可以将获取到的数据保存到缓存数据库中。

向查询服务接口层进一步可以将获取到的数据发送到计算层进行计算,例如执行图5所示的步骤s54,进而计算出查询结果。

与上述数据存储方法的实施例相对应地,还提出了数据存储装置的实施例。

图8是根据本发明实施例示出的一种数据存储装置的示意框图。如图8所示,该装置包括:

区域划分模块81,用于将目标区域划分为多个相同的子区域;

时间段划分模块82,用于将子区域的历史数据对应的历史时间段划分为n个时长相同的时间段,其中,n为大于1的整数,所述历史数据满足区间减法;

关联模块83,用于建立第1个时间段对应的历史数据之和与所述第1个时间段的关联关系,建立所述第1个时间段、第2个时间段分别对应的历史数据之和的总和与所述第2个时间段的关联关系,…,建立所述第1个时间段、第2个时间段、…、第n个时间段分别对应的历史数据之和的总和与所述第n个时间段的关联关系;

空间确定模块84,用于根据所述时间段和m个预设的时间维度确定m+1维存储空间,m为大于或等于0的整数;

存储模块85,用于按照时间顺序将每个所述时间段相关联的历史数据之和存储在所述存储空间中。

可选地,所述空间确定模块用于根据所述时间段确定所述存储空间一个维度的粒度;根据每个所述预设的时间维度确定所述存储空间其他维度的粒度。

可选地,每个所述子区域的形状为矩形。

可选地,所述存储空间为key-value数据库,所述时间段和所述预设的时间维度为所述数据库的主键。

与上述数据查询方法的实施例相对应地,还提出了数据查询装置的实施例。

图9是根据本发明实施例示出的一种数据查询装置的示意框图。如图9所示,该数据查询装置包括:

指令接收模块91,用于接收终端的查询指令;

确定模块92,用于根据所述查询指令确定查询的目标子区域、起始时间和截止时间,所述起始时间和截止时间的维度,以及所述截止时间所处的截止时间段和所述起始时间所处的起始时间段在每个维度分别提前一个粒度所对应的前一个时间段;

数据获取模块93,用于获取与所述截止时间段相关联的第一历史数据之和,以及与所述前一个时间段相关联的第二历史数据之和;

计算模块94,用于计算所述第一历史数据之和与所述第二历史数据之和在每个维度上的差值,加上重复减去的时间段对应的历史数据之和,其中,所述第一历史数据之和为所述截止时间段之前的每个时间段分别对应的历史数据之和的总和,所述第二历史数据之和为所述前一个时间段之前的每个时间段分别对应的历史数据之和的总和,所述历史数据满足区间减法;

反馈模块95,用于根据计算结果向所述终端反馈查询结果。

图10是根据本发明实施例示出的另一种数据查询装置的示意框图。如图10所示,在图9所示实施例的基础上,所述数据获取模块93包括:

数据确定子模块931,用于确定缓存中是否存在所述第一历史数据之和,和/或所述第二历史数据之和;

缓存数据获取子模块932,用于在缓存中若存在所述第一历史数据之和或所述第二历史数据之和的情况下,从所述缓存中获取所述第一历史数据之和,或从所述缓存中获取所述第二历史数据之和;

存储空间数据获取子模块933,用于在缓存中不存在所述第一历史数据之和或所述第二历史数据之和的情况下爱,从存储空间中获取所述第一历史数据之和,或从存储空间中获取所述第二历史数据之和。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在相关的方法实施例中进行了详细描述,此处将不做详细阐述说明。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

本发明的实施例还提供一种电子设备,包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为:

将目标区域划分为多个相同的子区域;

将子区域的历史数据对应的历史时间段划分为n个时长相同的时间段,其中,n为大于1的整数,所述历史数据满足区间减法;

建立第1个时间段对应的历史数据之和与所述第1个时间段的关联关系,建立所述第1个时间段、第2个时间段分别对应的历史数据之和的总和与所述第2个时间段的关联关系,…,建立所述第1个时间段、第2个时间段、…、第n个时间段分别对应的历史数据之和的总和与所述第n个时间段的关联关系;

根据所述时间段和m个预设的时间维度确定m+1维存储空间,m为大于或等于0的整数;

按照时间顺序将每个所述时间段相关联的历史数据之和存储在所述存储空间中。

本发明的实施例还提供一种电子设备,包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为:

接收终端的查询指令;

根据所述查询指令确定查询的目标子区域、起始时间和截止时间,所述起始时间和截止时间的维度,以及所述截止时间所处的截止时间段和所述起始时间所处的起始时间段在每个维度分别提前一个粒度所对应的前一个时间段;

获取与所述截止时间段相关联的第一历史数据之和,以及与所述前一个时间段相关联的第二历史数据之和,其中,所述第一历史数据之和为所述截止时间段之前的每个时间段分别对应的历史数据之和的总和,所述第二历史数据之和为所述前一个时间段之前的每个时间段分别对应的历史数据之和的总和,所述历史数据满足区间减法;

计算所述第一历史数据之和与所述第二历史数据之和在每个维度上的差值,加上重复减去的时间段对应的历史数据之和;

根据计算结果向所述终端反馈查询结果。

本发明的实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:

将目标区域划分为多个相同的子区域;

将子区域的历史数据对应的历史时间段划分为n个时长相同的时间段,其中,n为大于1的整数,所述历史数据满足区间减法;

建立第1个时间段对应的历史数据之和与所述第1个时间段的关联关系,建立所述第1个时间段、第2个时间段分别对应的历史数据之和的总和与所述第2个时间段的关联关系,…,建立所述第1个时间段、第2个时间段、…、第n个时间段分别对应的历史数据之和的总和与所述第n个时间段的关联关系;

根据所述时间段和m个预设的时间维度确定m+1维存储空间,m为大于或等于0的整数;

按照时间顺序将每个所述时间段相关联的历史数据之和存储在所述存储空间中。

本发明的实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:

接收终端的查询指令;

根据所述查询指令确定查询的目标子区域、起始时间和截止时间,所述起始时间和截止时间的维度,以及所述截止时间所处的截止时间段和所述起始时间所处的起始时间段在每个维度分别提前一个粒度所对应的前一个时间段;

获取与所述截止时间段相关联的第一历史数据之和,以及与所述前一个时间段相关联的第二历史数据之和,其中,所述第一历史数据之和为所述截止时间段之前的每个时间段分别对应的历史数据之和的总和,所述第二历史数据之和为所述前一个时间段之前的每个时间段分别对应的历史数据之和的总和,所述历史数据满足区间减法;

计算所述第一历史数据之和与所述第二历史数据之和在每个维度上的差值,加上重复减去的时间段对应的历史数据之和;

根据计算结果向所述终端反馈查询结果。

本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1