用于数据存储和数据查询的系统和方法与流程

文档序号:19942892发布日期:2020-02-14 23:25阅读:224来源:国知局
用于数据存储和数据查询的系统和方法与流程

相关申请的交叉引用

本申请要求于2017年6月26日递交的申请号为201710492917.1的中国申请的优先权,其全部内容通过引用的方式包含于此。

本申请一般涉及数据技术,更具体地,涉及用于数据存储和数据查询的系统和方法。



背景技术:

数据存储系统和数据查询系统广泛用于各种领域,例如线上到线下服务(例如,约车服务,递送服务和在线购物服务)。数据存储系统可以存储与服务相关的数据。数据查询系统可以基于从用户或终端发送的查询请求来查询数据。例如,对于与约车服务有关的数据,查询请求可以是与时间段中某个区域中的某种类型车辆相关的历史数据的查询。在某些情况下,数据查询系统可能需要在所述时间段内遍历与所述区域中某种类型车辆相关的所有历史数据。然而,在所述时间段内遍历与所述区域中的特定类型车辆相关的所有历史数据可能是耗时的,并且可能导致用户体验较差。因此,有必要提供用于更有效地存储数据和查询数据的系统和方法。



技术实现要素:

根据本申请的一个方面,数据存储系统可以包括:至少一个存储设备,包括一组指令或程序;以及至少一个处理器,被配置为与所述至少一个存储设备通信。当执行所述一组指令或程序时,所述至少一个处理器可以被配置为使得系统将一个区域划分为多个子区域。对于多个子区域的每个子区域,所述至少一个处理器还可以使系统将与每个子区域的历史数据相关联的时间段划分为多个单位时间段。历史数据可能满足区间减法规则。所述至少一个处理器还可以使系统确定每个单位时间段与累计至每个单位时间段的历史数据的总和之间的关系。所述至少一个处理器还可以使系统按时间顺序将与多个单位时间段相关联的多个总和存储到存储空间中。

在一些实施例中,所述至少一个处理器还可以使系统确定从时间段的开始时间到每个单位时间段的历史数据的总和。所述至少一个处理器还可以使系统将历史数据的总和与每个单位时间段相关联。

在一些实施例中,所述至少一个处理器还可以使系统确定除了与所述时间段相关的时间维度之外的m个时间维度,m可以是大于或等于0的整数。所述至少一个处理器还可以使系统基于与所述时间段和m个时间维度相关的时间维度来确定m+1维存储空间。

在一些实施例中,所述至少一个处理器还可以使系统确定与m+1维存储空间的时间段相关的时间维度的粒度。所述至少一个处理器还可以使系统分别确定m+1维存储空间的m个时间维度的m个粒度。

在一些实施例中,存储空间可以是key-value数据库,key-value数据库的主键可以包括多个单位时间段和m个时间维度。

在一些实施例中,多个子区域可以具有相同的尺寸。

在一些实施例中,每个子区域可以具有矩形形状。

根据本公开的另一方面,数据查询系统可以包括至少一个存储设备,所述存储设备包括一组指令或程序;与网络通信连接的数据交换端口;以及被配置成与至少一个存储设备通信的至少一个处理器。当执行所述组指令或程序时,所述至少一个处理器可以被配置成使得系统通过数据交换端口接收查询请求。所述至少一个处理器还可以使系统基于查询请求来确定目标子区域、开始时间、截止时间。所述至少一个处理器还可以使系统基于与目标子区域相关联的历史数据,来确定初始时间,以及与目标子区域相关联的所述历史数据相关的时间维度。所述至少一个处理器还可以使系统确定与截止时间相关联的第一单位时间段。所述至少一个处理还可以使所述系统确定与所述开始时间相关联的第二单位时间段。所述至少一个处理器还可以使系统确定从初始时间到第一单位时间段之前的单位时间段的第一组历史数据的第一总和。所述至少一个处理器还可以使系统确定从初始时间到第二单位时间段之前的单位时间段的第二组历史数据的第二总和。所述至少一个处理器还可以使系统基于第一总和、第二总和以及与目标子区域相关联的历史数据相关的时间维度来确定查询结果。

在一些实施例中,所述至少一个处理器还可以使系统确定第一总和第二总和中的至少一个是否存储在系统的缓存中。

在一些实施例中,响应于确定第一总和第二总和中的至少一个存储在缓存中,所述至少一个处理器还可以使系统从缓存获得第一总和第二总和中的至少一个。

在一些实施例中,响应于确定第一总和第二总和中的至少一个没有存储在缓存中,所述至少一个处理器还可以使系统从存储空间获得第一总和第二总和中的至少一个。

在一些实施例中,所述至少一个处理器还可以使系统从所有时间维度中的第一总和的第一累加和中减去所有时间维度中的第二总和的第二累加和。所述至少一个处理器还可使所述系统加上在所有时间维度上第三组历史数据的第三总和的第三累加和,所述第三组历史数据对应于一个或多个单位时间段,在所述一个或多个单位时间段中的历史数据被重复减去。

在一些实施例中,所述至少一个处理器还可以使系统通过数据交换端口从计算终端接收查询请求。

在一些实施例中,所述至少一个处理器还可以使系统通过数据交换端口向计算终端发送查询结果。

根据本申请的又一方面,计算机实现的方法可以包括由至少一个处理器执行的以下操作中的一个或多个。所述方法可以包括将一个区域划分为多个子区域。对于多个子区域中的每个子区域,所述方法还可以包括将与每个子区域的历史数据相关联的时间段划分为多个单位时间段。历史数据可以满足区间减法规则。所述方法还可以包括确定每个单位时间段与累计至每个单位时间段的历史数据的总和之间的关系。所述方法还可以包括按时间顺序将与多个单位时间段相关联的多个总和存储到存储空间中。

根据本申请的又一方面,计算机实现的方法可以包括由至少一个处理器执行的以下操作中的一个或多个。所述方法可以包括通过数据交换端口接收查询请求。所述方法还可以包括基于查询请求确定目标子区域、开始时间和截止时间。所述方法还可以包括基于与目标子区域相关联的历史数据确定初始时间,以及与与目标子区域相关联的历史数据相关的时间维度。所述方法还可以包括确定与截止时间相关联的第一单位时间段。所述方法还可以包括确定与开始时间相关联的第二单位时间段。所述方法还可以包括确定从初始时间到第一单位时间段之前的单位时间段的第一组历史数据的第一总和。所述方法还可以包括确定从初始时间到第二单位时间段之前的单位时间段的第二组历史数据的第二总和。所述方法还可以包括基于第一总和,第二总和,以及与目标子区域相关联的历史数据相关的时间维度来确定查询结果。

根据本申请的又一方面,非暂时性计算机可读介质可包括用于存储数据的至少一组指令,其中当由计算设备的一个或多个处理器执行时,所述至少一组指令可以使计算设备执行方法。所述方法可以包括由至少一个处理器执行的以下操作中的一个或多个。所述方法可以包括将一个区域划分为多个子区域。对于多个子区域中的每个子区域,所述方法还可以包括将与每个子区域的历史数据相关联的时间段划分为多个单位时间段。历史数据可以满足区间减法规则。所述方法还可以包括确定每个单位时间段与累计至每个单位时间段对应的历史数据的总和之间的关系。所述方法还可以包括按时间顺序将与多个单位时间段相关联的多个总和存储到存储空间中。

根据本申请的又一方面,一种非暂时性计算机可读介质可以包括用于查询数据的至少一组指令,其中当由计算设备的一个或多个处理器执行时,所述至少一组指令可以使计算设备执行方法所述方法可以包括由至少一个处理器执行的以下操作中的一个或多个。所述方法可以包括通过数据交换端口接收查询请求。所述方法还可以包括基于查询请求确定目标子区域、开始时间和截止时间。所述方法还可以包括基于与目标子区域相关联的历史数据,确定初始时间,以及与与目标子区域相关联的历史数据相关的时间维度。所述方法还可以包括确定与截止时间相关联的第一单位时间段。所述方法还可以包括确定与开始时间相关联的第二单位时间段。所述方法还可以包括确定从初始时间到第一单位时间段之前的单位时间段的第一组历史数据的第一总和。所述方法还可以包括确定从初始时间到第二单位时间段之前的单位时间段的第二组历史数据的第二总和。所述方法还可以包括基于第一总和,第二总和,以及与目标子区域相关联的历史数据相关的时间维度来确定查询结果。

本申请的一部分附加特性可以在下面的描述中进行说明。通过对以下描述和相应附图的检查或者对实施例的生产或操作的了解,本申请的一部分附加特性对于本领域技术人员是明显的。本申请的特征可以通过实践或使用以下实例中详细讨论的方法、手段及组合的各个方面来达成。

附图说明

本申请将结合示例性实施例进一步进行描述。这些示例性实施例将通过附图进行详细描述。附图未按比例绘制。这些实施例是非限制性的示例性实施例,在图示多种视图下的实施例中,相似的编号表示相似的结构,并且其中:

图1是根据本申请的一些实施例所示的示例性数据系统的示意图;

图2是根据本申请一些实施例所示的示例性计算装置的组件的示意图;

图3是根据本申请的一些实施例所示的示例性移动设备的示例性硬件和/或软件组件的示意图;

图4是根据本申请的一些实施例所示的示例性处理设备的示意图;

图5a是根据本申请的一些实施例所示的示例性处理设备的示意图;

图5b是根据本申请的一些实施例所示的示例性数据获取模块的框图;

图6是根据本申请的一些实施例所示的用于将数据存储到存储空间中的示例性过程的流程图;

图7是根据本申请的一些实施例所示的用于将数据存储到存储空间中的示例性过程的流程图;

图8a是根据本申请的一些实施例所示的示例性一维存储空间的示意图;

图8b是根据本申请的一些实施例所示的示例性二维存储空间的示意图;

图9是根据本申请的一些实施例所示的用于将数据存储到存储空间中的示例性过程的流程图;

图10是根据本申请的一些实施例所示的用于查询数据的示例性过程的流程图;

图11是根据本申请的一些实施例所示的用于查询数据的示例性过程的流程图;和

图12是根据本申请的一些实施例所示的用于查询数据的示例性过程的示意图。

具体实施方式

为了更清楚地说明本申请的实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例。对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。

如本申请和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其他的步骤或元素。

虽然本申请对根据本申请的实施例的系统中的某些模块做出了各种引用,然而,任何数量的不同模块可以被使用并运行在客户端和/或服务器上。这些模块旨在是说明性的,而不旨在限制本申请的范围。不同的模块可以用于系统以及方法的不同方面。

本申请中使用了流程图用来说明根据本申请的实施例的系统所执行的操作。应当理解的是,前面或下面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各种步骤。相反,可以按照倒序或同时处理各种步骤。此外,一个或多个其他步骤可以添加至流程图中,或者,可以从流程图中删除一个或多个其他步骤。

下面结合附图对本申请的具体实施方式进行说明。显而易见的是,所描述的实施例并不是穷尽的,而不是限制性的。本申请中所述实施例的其他实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例均属于本申请的范围。

此外,本申请中的系统和方法可以应用于需要数据存储和查询服务的任何应用场景。例如,本申请的系统和方法可以应用于不同的运输系统,包括陆地、海洋、航空航天等或类似或上述举例的任意组合。运输系统可以为使用各种车辆的用户提供运输服务。所述运输系统的车辆可以包括出租车、私家车、顺风车、公交车、列车、子弹列车、高铁、地铁、船舶、飞机、飞船、热气球、无人驾驶车辆或类似物或其任意组合。本申请的系统或方法可以应用于约车服务、司机服务、递送服务、拼车服务、公共汽车服务、外卖服务、驾驶员招聘服务、班车服务、旅行服务等,或其任何组合。又例如,本申请的系统或方法可以应用于导航服务,购物服务,住宅服务,基于位置的服务(lbs)等,或其任何组合。本发明的系统或方法的应用可以包括网页、浏览器的插件、客户终端、客户定制系统、内部分析系统、人工智能机器人等,或其任何组合。

本申请的一个方面涉及用于存储数据的系统和方法。所述系统和方法可以将一个区域划分为多个子区域。对于多个子区域中的每个子区域,系统和方法可以将与每个子区域的历史数据相关联的时间段划分为多个单位时间段。历史数据可以与子区域中提供的服务(例如,约车服务、拼车服务、递送服务、在线购物服务等)相关联。历史数据可以满足区间减法规则。所述系统和方法还可以确定每个单位时间段与累计至每个单位时间段的历史数据的总和之间的关系。因此,系统和方法可以按时间顺序将与多个单位时间段相关联的多个总和存储到存储空间(例如,一维存储空间、二维存储空间)中。

本申请的另一方面涉及用于查询存储空间中的数据的系统和方法。系统和方法可以从计算终端接收查询请求。所述系统和方法可以基于查询请求确定目标子区域、开始时间、截止时间、与目标子区域相关联的历史数据相关的时间维度、与截止时间相关联的第一单位时间段、与开始时间相关联的第二单位时间段、从初始时间到第一单位时间段之前的单位时间段的第一组历史数据的第一总和、从初始时间到第二单位时间段之前的单位时间段的第二组历史数据的第二总和。相应地,系统和方法可以基于第一总和、第二总和、以及与目标子区域相关联的历史数据相关的时间维度来确定查询结果。

图1是根据本申请的一些实施例所示的示例性数据系统的示意图。数据系统100可以包括服务器110、网络120、存储设备130和计算终端140。

服务器110可以方便数据系统100的数据处理、数据存储和/或数据查询。在一些实施例中,服务器110可以是单一服务器或服务器组。服务器群可以是集中式的或分布式的(例如,服务器110可以是分布式的系统)。在一些实施例中,服务器110可以是本地的或远程的。例如,服务器110可以经由网络120访问存储在移动终端140和/或存储设备130中的信息和/或数据。又例如,服务器110可以直接连接到用户终端140和/或存储设备130,以访问存储的信息和/或数据。在一些实施例中,服务器110可以在一个云平台上实现。仅作为示例,所述云平台可以包括私有云、公共云、混合云、小区云、分布云、跨云、多云等或上述举例的任意组合。在一些实施例中,服务器110可以在图2中描述的包含了一个或者多个组件的计算装置200上执行。

在一些实施例中,服务器110可以包括处理引擎112。处理引擎112可以处理与执行本申请中描述的一个或多个功能有关的信息和/或数据。例如,处理引擎112可以将区域划分为多个子区域。又例如,处理引擎112可以将与子区域的历史数据相关联的时间段划分为多个单位时间段。作为又一示例,处理引擎112可以确定单位时间段与累计至单位时间段的历史数据的总和之间的关系。作为又一示例,处理引擎112可以按时间顺序确定存储空间并将与多个单位时间段相关联的多个总和存储到存储空间中。作为又一示例,处理引擎112可以从计算终端接收查询请求。作为又一示例,处理引擎112可以基于查询请求确定目标子区域、开始时间、截止时间、与目标子区域相关联的历史数据相关的时间维度、与截止时间相关联的第一单元时间段、与开始时间相关联的第二单位时间段、从初始时间到第一单位时间段之前的一个单位时间段的第一组历史数据的第一总和、从初始时间到第二单位时间段之前的一个单位时间段的第二组历史数据的第二总和。作为又一示例,处理引擎112可以基于第一总和、第二总和、与目标子区域相关联的历史数据相关的时间维度来确定查询结果。

在一些实施例中,所述处理引擎112可包括一个或者多个处理引擎(例如,单芯片处理引擎或多芯片处理引擎)。仅仅作为示例,处理引擎112可以包括一个或多个硬件处理器,例如中央处理单元(cpu)、特定应用集成电路(asic)、特定应用指令集处理器(asip)、图像处理单元(gpu)、物理运算处理单元(ppu)、数字信号处理器(dsp)、现场可编程门阵列(fpga)、可编程逻辑装置(pld)、控制器、微控制器单元、精简指令集计算机(risc)、微处理器等或上述举例的任意组合。

网络120可以促进信息和/或数据的交换。在一些实施例中,数据系统100中的一个或多个组件(例如,服务器110、存储设备130和计算终端140)可以经由网络120向数据系统100中的其他组件发送信息和/或数据。例如,处理引擎112可以经由网络120从存储设备130和/或计算终端140接收查询请求。在一些实施例中,网络120可以是有线网络或无线网络中的任意一种,或其组合。仅作为示例,网络120可以包括有线网络、有线网络、光纤网络、电信通信网络、内联网、因特网、局域网(lan)、广域网(wan)、无线局域网(wlan)、城域网(man)、广域网(wan)、公共电话交换网络(pstn)、蓝牙网络、zigbee网络、近场通信(nfc)网络等,或其任何组合。在一些实施例中,网络120可以包括一个或多个网络交换点。例如,网络120可以包括有线或无线网络接入点,例如基站和/或互联网交换点120-1、120-2、......,信息流程系统100的一个或多个组件可通过它连接到网络120交换数据和/或信息。

存储设备130可以存储数据和/或指令。在一些实施例中,存储设备130可以存储从用户终端140和/或处理引擎112获取的数据。例如,存储设备130可以存储从计算终端140接收的查询请求。又例如,存储设备130可以存储单位时间段和处理引擎112确定的单位时间段对应的历史数据的总和之间的关系。在一些实施例中,存储设备130可以存储服务器110可以执行或使用的数据和/或指令,以执行本申请中描述的示例性方法。例如,存储设备130可以存储处理引擎112可以执行或用于将区域划分为多个子区域的指令。又例如,存储设备130可以存储处理引擎112可以执行或使用的指令,以确定单位时间段与单位时间段对应的历史数据的总和之间的关系。作为又一示例,存储设备130可以存储处理引擎112可以执行或使用以确定m+1维存储空间的指令。在一些实施例中,存储设备130可包括大容量存储器、可移动存储器、挥发性读写内存、只读存储器(rom)等或其任意组合。示例性的可以移动存储器可以包括快闪驱动器、软盘、光盘、记忆卡、压缩碟、磁带等。示例性可移式存储器可包括一快闪驱动器、软盘、光盘、记忆卡、压缩碟、磁带等。示例性的挥发性只读存储器可以包括随机存取内存(ram)。示例性的ram可包括一动态ram(dram)、双倍速率同步动态ram(ddrsdram)、静态ram(sram)、闸流体ram(t-ram)和零电容ram(z-ram)等。示例性rom可以包括一掩模式rom(mrom)、可编程rom(prom)、可擦写可编程rom(eprom)、带电可擦可编程rom(eeprom)、只读光盘存储器(cd-rom)或数字通用磁盘rom等。在一些实施例中,所述存储设备130可在云平台上实现。仅仅作为示例,所述云平台可以包括私有云、公共云、混合云、社区云、分布式云或内部云等多层云或其任意组合。

在一些实施例中,存储设备130可以连接到网络120以与数据系统100中的一个或多个组件(例如,服务器110,计算终端140等)通信。数据系统100中的一个或多个组件可以经由网络120访问存储在存储设备130中的数据或指令。在一些实施例中,存储设备130可以直接连接到数据系统100中的一个或多个组件或与之通信(例如,服务器110、计算终端140等)。在一些实施例中,存储设备130可以是服务器110的一部分。

在一些实施例中,用户终端140可以包括移动设备140-1、平板电脑140-2、膝上型计算机140-3,等或其任意组合。在一些实施例中,行动装置140-1可以包括智能家居装置、可穿戴装置、行动装置、虚拟现实装置、增强现实装置等或上述举例的任意组合。在一些实施例中,智能家居设备可以包括智能照明设备、智能电器的控制设备、智能监控设备、智能电视、智能摄像机、对讲机等,或其任意组合。在一些实施例中,可穿戴装置可以包括手环、鞋袜、眼镜、头盔、手表、衣物、背包、智能配件等或上述举例的任意组合。在一些实施例中,行动装置可以包括移动电话、个人数字助理、游戏设备、导航装置、pos机、膝上型计算机、台式计算机等或上述举例的任意组合。在一些实施例中,虚拟现实装置和/或增强现实装置可以包括虚拟现实头盔、虚拟现实眼镜、虚拟现实眼罩、增强现实头盔、增强现实眼镜、增强现实眼罩等或上述举例的任意组合。例如,虚拟现实设备和/或增强现实设备可以包括googleglasstm、oculusrifttm、hololenstm、gearvrtm等。

应当注意,数据系统100仅出于说明的目的而提供,并且不旨在限制本申请的范围。对于本领域的普通技术人员来说,可以根据本申请的描述,做出各种各样的修正或改变。例如,数据系统100还可以包括数据库,信息源等。又例如,数据系统100可以在其他设备上实现以实现类似或不同的功能。然而,这些修正和改变不会背离本申请的范围。

图2是根据本申请的一些实施例所示的可以在其上实现服务器110,存储设备130和/或计算终端140的计算设备的示例性组件的示意图。本实施例中的特定系统利用功能框图描述了一个包含用户界面的硬件平台。这种计算机可以是一个通用目的的计算机,也可以是一个有特定目的的计算机。两种类型的计算机可以被配置用于实现根据本申请的一些实施例所示的任何特定系统。计算设备200可以用于实现可执行本申请中的一个或多个功能的任何组件。举例来说,计算装置200可实施如本文所描述的系统100的任何组件。在图1和图2中,为方便起见只绘制了一台计算装置。在提交本申请时,本领域普通技术人员将理解,与本文所述的数据存储和/或数据查询有关的计算机功能可以在多个类似平台上以分布式方式实现,以分发处理负荷。

例如,计算装置200可以包括与网络连接的通讯端口250,以方便数据通讯。计算设备200可以还包括处理器(处理器220),以一个或多个处理器(逻辑电路)的形式执行程序指令。例如,处理器包括其中的接口电路和处理电路。接口电路被配置为从总线210接收电子信号,其中电子信号对用于处理电路处理的结构数据和/或指令进行编码。处理电路可以进行逻辑计算,然后判断结论、结果和/或编码为电子信号的指令。则所述接口电路可以经由总线210从所述处理电路发送电信号。

示例性的计算设备包括内部通讯总线210、不同形式的程序存储器和数据存储器,包括例如,磁盘270、和只读存储器(rom)230或随机存取存储器(ram)240,用于存储由计算设备处理和/或传输的各种各样的数据文件。示例性计算平台也可以包括存储于rom230、ram240及/或其他形式的非暂时性存储媒体中的能够被处理器220执行的程序指令。本申请的方法和/或流程可以以程序指令的方式实施。计算设备200还包括支持计算机和其他组件之间输入/输出的i/o组件260。计算装置200也可以通过网络通讯接收程序设计和数据。

为理解方便,计算装置2中仅示例性绘制了一个cpu和/或处理器。还可以考虑多个cpu和/或处理器;因此,由本申请中描述的一个cpu和/或处理器执行的操作和/或方法步骤也可以由多个cpu和/或处理器联合或单独执行。例如,在本申请中,如果计算装置200的中央处理单元和/或处理器执行步骤a和步骤b,应当理解的是步骤a和步骤b可以由计算装置200的两个不同的中央处理单元和/或处理器共同或分别执行(例如,第一处理器执行步骤a,第二处理器执行步骤b,或者第一处理器和第二处理器共同执行步骤a和b)。

图3是根据本申请的一些实施例所示的示例性移动设备的示例性硬件和/或软件组件的示意图;根据本申请的一些实施例,可以在其上实现计算终端140。如图3所示,移动设备300可以包括通信平台310、显示器320、图形处理单元(gpu)330、中央处理单元(cpu)340、i/o350、内存360和存储器390。cpu340可以包括类似于处理器220的接口电路和流程电路。在一些实施例中,任何其他合适的组件,包括但不限于系统总线或控制器(未示),亦可包括于移动装置300内。在一些实施例中,移动操作系统370(例如,iostm、androidtm、windowsphonetm等)和一个或多个应用程序380可以从存储器390加载到内存360中,以便由cpu340执行。应用程序380可以包括浏览器或任何其他合适的移动应用程序,用于接收和呈现与来自移动设备300上的数据清理系统的服务请求或其他信息有关的接收和呈现信息。用户与信息流的交互可以经由i/o设备350来实现并且经由网络120被提供给处理引擎112和/或系统100的其他组件。

为了实现不同的模块、单元以及在之前的披露中所描述的它们的功能,计算机硬件平台可以被用作以上描述的一个或多个元素的硬件平台(例如,图2中描述的系统110的组件)。由于这些硬件元件,操作系统和程序语言是常见的,因此可以假设本领域技术人员可以熟悉这些技术,并且他们可能能够根据本申请中描述的技术,提供数据存储和/或数据查询所需的信息。带有用户界面的计算机可以用作个人计算机(pc)或其他类型的工作站或终端设备。经过正确编程后,可以将带有用户界面的计算机用作服务器。可以认为本领域技术人员也可以熟悉这种类型的计算机设备的这种结构、程序或一般操作。因此,不对附图进行额外的解释。

图4是根据本申请的一些实施例所示的示例性处理设备的示意图。在一些实施例中,处理引擎112可以包括区域划分模块410、时间段划分模块420、关联模块430、存储空间确定模块440和存储模块450。这些模块可以是处理引擎112的至少一部分的硬件电路。这些模块也可以作为一个应用程序或一组由处理引擎112读取和执行的指令实现。此外,这些模块可以是硬件电路和应用/指令的任何组合。例如,当处理引擎执行应用程序或一组指令时,模块可以是处理引擎112的一部分。

在一些实施例中,区域划分模块410可以将区域划分为多个子区域。要划分的区域可以是地理区域。在一些实施例中,可以基于要存储在数据系统100中的数据的类型来确定所述区域。在一些实施例中,区域划分模块410可以随机划分区域。另外和/或替代地,区域划分模块410可以基于一个或多个参数划分区域,例如区域的大小、行政区域的划分(例如,国家、省、城市或区域)、纵向和纬度坐标等,或其任何组合。子区域可以具有任何尺寸和/或形状。不同子区域的形状和/或尺寸可以相同或不同。在一些实施例中,区域划分模块410可以将区域划分为具有相同尺寸和/或相同形状的多个子区域。例如,区域划分模块410可以将区域均匀地划分为具有多边形形状的多个子区域,例如正三角形(例如,边长为500米的等边三角形),矩形(例如,长度为500米、宽度为300米的矩形)、正方形或正六边形等。

在一些实施例中,时间段划分模块420可以将与在每个子区域中收集的历史数据相关联的时间段划分为多个单位时间段。历史数据可能涉及子区域内提供的服务。仅出于说明的目的,所述服务可以包括约车服务、拼车服务、搭便车服务、递送服务、在线购物服务、医疗服务、基于地图的服务等,或其任何组合。以约车服务为例,历史数据可包括在子区域中生成的服务订单的数量(或计数)、位于子区域中的服务提供者的数量(或计数)、位于子区域的服务请求者的数量(或者计数)、子区域中已完成的服务请求的数量(或计数)等。在一些实施例中,历史数据可以满足区间减法规则。在一些实施例中,与每个子区域的历史数据相关联的时间段可以是年、月、周、日或从一个开始时间到一个截止时间的任何时间段。

在一些实施例中,单位时间段的持续时间(也称为单位时间段的粒度)可以是例如0.5小时、1小时、5小时、10小时或24小时等。在一些实施例中,单位时间段的持续时间可以手动设置或者根据不同情况由数据系统100的一个或多个组件确定。在一些实施例中,时间段划分模块420可以基于单位时间段的持续时间将时间段划分为多个单位时间段。在一些实施例中,时间段划分模块420可以基于预定数量(或计数)的单位时间段将时间段划分为多个单位时间段。在一些实施例中,单位时间段的数量(或计数)可以根据数据系统100的默认设置来设置,或者由用户或操作者通过计算终端140预设。在一些实施例中,时间段划分模块420可以将时间段均匀地划分为多个单位时间段。

在一些实施例中,关联模块430可以确定每个单位时间段与累计至每个单位时间段的历史数据的总和之间的关系。在一些实施例中,关联模块430可以确定从时间段的开始时间到每个单位时间段的历史数据的总和。在一些实施例中,关联模块430可以将历史数据的总和与每个单位时间段相关联。例如,关联模块430可以将与子区域的历史数据相关联的时间段划分为n个单位时间段,其中n可以是大于1的整数。对于n个单位时间段中的第i个单位时间段,关联模块430可以确定从时间段的开始时间到第i个单位时间段的历史数据的第i个总和,其中i可以是大于1的整数,并且小于或等于n。关联模块430可以将第i个总和与第i个单位时间段相关联。

在一些实施例中,关联模块430可以确定第一单位时间段与对应于第一单位时间段的第一组历史数据的第一总和之间的第一关系。在一些实施例中,关联模块430可以确定第二单位时间段与第一组目标历史数据和第二组目标历史数据的第二总和之间的第二关系,其中第二组历史数据对应于第二单位时间段。类似地,关联模块430可以确定第n单位时间段与从第一组历史数据到对应于第n单位时间段的第n组历史数据的第n总和之间的第n关系。

在一些实施例中,存储空间确定模块440可以基于与时间段相关的时间维度和m个时间维度来确定m+1维存储空间。在一些实施例中,m可以是大于或等于0的整数。

在一些实施例中,m个时间维度可以包括日、周、月、年、十年、世纪等,或其任何组合。在一些实施例中,存储空间的m个时间维度可以根据数据系统100的默认设置来设置,或者由用户或操作员通过计算终端140预设。在一些实施例中,存储空间确定模块440可以确定与m+1维存储空间的时间段相关的时间维度的粒度,如操作620所描述的。在一些实施例中,存储空间确定模块440可以分别确定m+1维存储空间的m个时间维度的m个粒度。可以在本申请的其他地方找到确定m+1维存储空间的更多描述(例如,图8及其描述)。

在一些实施例中,存储模块450可以按时间顺序将与多个单位时间段相关联的多个总和存储到m+1维存储空间中。可以在本申请的其他地方找到对和的存储的更多描述(例如,图6中的操作650,图7中的操作750及其描述)。

需要注意的是,以上对于处理引擎112的描述,仅为描述方便,并不能把本申请限制在所举实施例范围之内。对于本领域的普通技术人员来说,可以根据本申请的描述,做出各种各样的修正和改变。然而,这些修正和改变不会背离本申请的范围。

图5a是根据本申请的一些实施例所示的示例性处理设备的示意图。在一些实施例中,处理引擎112可以包括请求获取模块510、第一确定模块520、数据获取模块530、第二确定模块540和反馈模块550。这些模块可以是处理引擎112的至少一部分的硬件电路。这些模块也可以作为一个应用程序或一组由处理引擎112读取和执行的指令实现。此外,这些模块可以是硬件电路和应用/指令的任何组合。例如,当处理引擎执行应用程序或一组指令时,模块可以是处理引擎112的一部分。

在一些实施例中,请求获取模块510可以从计算终端接收查询请求。在一些实施例中,请求获取模块510可以经由网络120从计算终端140接收查询请求。

在一些实施例中,查询请求可以是对与服务有关的历史数据的请求。仅用于说明目的,所述服务可包括约车服务、拼车服务、搭便车服务、递送服务、在线购物服务、医疗服务、基于地图的服务等,或其任何组合。以约车服务为例,查询请求可以指示哪个历史数据(例如,服务订单的数量(计数)、服务提供者的数量(或计数)、服务请求者的数量(或计数)、已完成的服务请求的数量(或计数))要被查询,查询的子区域(也称为目标子区域),与要查询的历史数据相关联的时间区间(例如,开始时间、截止时间)等,或其任何组合。

在一些实施例中,第一确定模块520可以基于查询请求确定目标子区域、开始时间、截止时间、开始时间和截止时间的时间维度、与截止时间相关联的第一单位时间段、与开始时间相关的第二单位时间段。在一些实施例中,第一确定模块520可以确定与目标子区域相关联的历史数据相关的初始时间和/或时间维度。在一些实施例中,初始时间可以是一个时间,每个总和从这个时间开始确定。

在一些实施例中,第一确定模块520可以基于目标子区域确定存储空间中的位置。第一确定模块520还可以确定与目标子区域相关联的历史数据的时间维度,查询历史数据的时间区间的开始时间和截止时间。在一些实施例中,开始时间和截止时间的时间维度可以低于或等于与存储空间中存储的历史数据相关的时间维度。如这里所使用的,与存储空间中存储的历史数据相关的时间维度也可以称为存储空间的时间维度。在一些实施例中,第一确定模块520可以确定与截止时间相关联的第一单位时间段,以及与存储空间中的开始时间相关联的第二单位时间段。在一些实施例中,第一单位时间段可包括截止时间。在一些实施例中,第二单位时间段可以在存储空间的每个时间维度中,比包括开始时间的单位时间段提前一个粒度。

在一些实施例中,数据获取模块530可以确定从初始时间到第一单位时间段之前的一个单位时间段的第一组历史数据的第一总和,以及从初始时间到第二单位时间段之前的一个单位时间段的第二组历史数据的第二总和。存储在存储空间中的历史数据可以满足区间减法规则。在一些实施例中,初始时间可以记录在存储空间中。在一些实施例中,可以基于与目标子区域相关联的历史数据来确定初始时间。

在一些实施例中,数据获取模块530可以确定第一总和和/或第二总和是否存储在数据系统100的缓存中。响应于确定第一总和和/或第二总和存储在数据系统100的缓存中,数据获取模块530可以从数据系统100的缓存中获取第一总和和/或第二总和。响应于确定第一总和和/或第二总和未存储在数据系统100的缓存中,数据获取模块530可以从存储空间获得第一总和和/或第二总和。可以在本申请的其他地方找到确定第一总和和/或第二总和的更多描述(例如,图11及其描述)。

在一些实施例中,第二确定模块540可以通过从所有时间维度中的第一总和的第一累加和中减去所有时间维度中的第二总和的第二累加和,并加上在所有时间维度中第三组历史数据的第三总和的第三累加和来确定查询结果。在一些实施例中,第三组历史数据可以对应于一个或多个单位时间段,所述一个或多个单位时间段中的历史数据被重复减去。

在一些实施例中,反馈模块550可以将查询结果发送到计算终端。在一些实施例中,反馈模块550可以经由网络120将查询结果发送到计算终端140的可视界面。在一些实施例中,终端设备的可视界面可以以文本、图形、音频、视频等或其任何组合的形式显示查询结果。

需要注意的是,以上对于处理引擎112的描述,仅为描述方便,并不能把本申请限制在所举实施例范围之内。对于本领域的普通技术人员来说,可以根据本申请的描述,做出各种各样的修正和改变。然而,这些变化和修改不会背离本申请的范围。

图5b是根据本申请的一些实施例所示的示例性数据获取模块的框图。在一些实施例中,数据获取模块530可以包括数据确定单元601、缓存数据获取单元602和存储空间数据获取单元603。这些单元可以是处理引擎112的至少一部分的硬件电路。这些单元也可以实现为由处理引擎112读取和执行的应用程序或指令集。此外,这些单元可以是硬件电路和应用/指令的任何组合。例如,当处理引擎112正在执行应用程序或指令集时,这些单元可以是处理引擎112的一部分。

在一些实施例中,数据确定单元601可以确定第一总和与第二总和中的至少一个是否存储在系统(例如,数据系统100)的缓存中。在一些实施例中,缓存数据获取单元602可以从缓存获得第一总和与第二总和中的至少一个。在一些实施例中,存储空间数据获取单元603可以从存储空间获得第一总和与第二总和中的至少一个。

应当注意,数据获取模块530的以上描述仅出于说明的目的而提供,并且不旨在限制本申请的范围。对于本领域的普通技术人员来说,可以根据本申请的描述,做出各种各样的修正和改变。然而,这些变化和修改不会背离本申请的范围。

图6是根据本申请的一些实施例所示的用于将数据存储到存储空间中的示例性过程的流程图。在一些实施例中,流程600可以在数据系统100中实现。例如流程600可以作为指令的形式存储在存储设备130和/或存储器(例如,rom230、ram240等)中,并且由服务器110调用和/或执行(例如,服务器110中的处理引擎112或服务器110中的处理引擎112的处理器210)。

在610中,处理引擎112(例如,区域划分模块410)可以将区域划分为多个子区域。

要划分的区域可以是地理区域。在一些实施例中,可以基于要存储在数据系统100中的数据的类型来确定所述区域。例如,如果要存储的数据与约车服务(例如,服务订单的数量)相关,则所述区域可以是约车服务所覆盖的服务区域,例如,城市街区、机场等。作为另一个例子,如果要存储的数据与农业服务(例如,农作物产量)有关,则所述区域可以是农作物种植区域。

在一些实施例中,处理引擎112可以随机划分区域。另外和/或替代地,处理引擎112可以基于一个或多个参数来划分区域,例如区域的大小、行政区域的划分(例如,国家、省、城市或区域)、经度和纬度坐标等,或其任何组合。子区域可以具有任何尺寸和/或形状。不同子区域的形状和/或尺寸可以相同或不同。在一些实施例中,处理引擎112可以将区域划分为具有相同尺寸和/或相同形状的多个子区域。例如,处理引擎112可以将区域均匀地划分为多个具有多边形形状的子区域,例如正三角形(例如,边长为500米的等边三角形)、矩形(例如,长为500米,宽为300米的矩形)、正方形或正六边形等。

在620中,对于多个子区域的每个子区域,处理引擎112(例如,时间段划分模块420)可以将与在每个子区域中收集的历史数据相关联的时间段划分为多个单位时间段。

历史数据可能涉及子区域内提供的服务。仅出于说明的目的,所述服务可以包括约车服务、拼车服务、搭便车服务、递送服务、在线购物服务、医疗服务、基于地图的服务等,或其任何组合。以约车服务为例,历史数据可包括在子区域中生成的服务订单的数量(或计数)、位于子区域中的服务提供者的数量(或计数)、位于子区域的服务请求者的数量(或者计数)、子区域中已完成的服务请求的数量(或计数)等。

在一些实施例中,历史数据可以满足区间减法规则。例如,在a<b<c(a,b和c是实数)的情况下,如果在第一个区间[a,c]中的历史数据和在同一个子区域中(或区域)的第二个区间[b,c]是已知的,处理引擎112可以通过从第一区间[a,c]的历史数据中减去第二区间[b,c]的历史数据,来确定同一子区域(或区域)中的第三区间[a,b]中的历史数据。又例如,如果已知在相同子区域(或区域)中的第一区间[a,c]和第三区间[a,b]中的历史数据,则处理引擎112可以通过从第一区间[a,c]的历史数据中减去第三区间[a,b]中的历史数据,来确定第二区间[b,c]的历史数据。以约车服务中的服务订单的数量(或数量)为例,如果服务订单的数量(或计数)从上午7:00到上午9:00在某个子区域(或者区域)是100万,并且从上午7:00到上午8:00的服务订单的数量(或计数)在相同的子区域(或区域)中是40万,然后同一子区域(或区域)内上午8:00至9:00的服务订单的数量(或计数)可确定为60万(即1百万-40万=60万)。

在一些实施例中,与每个子区域的历史数据相关联的时间段可以是年、月、周、日或从开始时间到截止时间的任何时间段。例如,如果历史数据是从2017年6月1日上午8:00到2017年12月25日晚上9:00在子区域a中生成的服务订单的数量(或计数),则所述时间段可以自2017年6月1日上午8:00至2017年12月25日晚上9:00。在一些实施例中,可以根据数据系统100的默认设置来设置时间段,或者由用户或操作者经由计算终端140预设时间段。因此,可以收集基于确定时间段的历史数据。例如,如果时间段设置为2017年6月1日0:00到2017年7月1日0:00,并且历史数据是在子区域b中生成的服务订单的数量(或计数),那么可以收集在所述时间段内在子区域b中生成的服务订单。

在一些实施例中,单位时间段的持续时间(也称为单位时间段的粒度)可以是例如0.5小时、1小时、5小时、10小时或24小时等。例如,单位时间段的持续时间可以是0.5小时,那么一天可以被分成48个单位时间段。在一些实施例中,单位时间段的持续时间可以手动设置或者根据不同情况由数据系统100的一个或多个组件确定。例如,单位时间段可以根据数据系统100的默认设置来设置,或者由用户或操作者通过计算终端140预设。在一些实施例中,处理引擎112可以基于单位时间段的持续时间将时间段划分为多个单位时间段。在一些实施例中,处理引擎112可以基于预定数量(或计数)的单位时间段将时间段划分为多个单位时间段。在一些实施例中,单位时间段的数量(或计数)可以根据数据系统100的默认设置来设置,或者由用户或操作者通过计算终端140预设。在一些实施例中,处理引擎112可以将时间段均匀地划分为多个单位时间段。

在630中,处理引擎112(例如,关联模块430)可以确定每个单位时间段与累计至每个单位时间段的历史数据的总和之间的关系。

在一些实施例中,处理引擎112可以确定从时间段的开始时间到每个单位时间段的历史数据的总和。在一些实施例中,处理引擎112可以将历史数据的总和与每个单位时间段相关联。例如,处理引擎112可以将与子区域的历史数据相关联的时间段划分为n个单位时间段,其中n可以是大于1的整数。对于n个单位时间段中的第i个单位时间段,处理引擎112可以确定从时间段的开始时间到第i个单位时间段的历史数据的第i个总和,其中i可以是大于1的整数,并且小于或等于n。处理引擎112可以将第i个总和与第i个单位时间段相关联。

在640中,处理引擎112(例如,存储空间确定模块440)可以基于与时间段相关的时间维度和m个时间维度来确定m+1维存储空间。在一些实施例中,m可以是大于或等于0的整数。

在一些实施例中,m个时间维度可以包括日、周、月、年、十年、世纪等,或其任何组合。在一些实施例中,存储空间的m个时间维度可以根据数据系统100的默认设置来设置,或者由用户或操作员通过计算终端140预设。例如,如图8a所示,存储空间可以是一维存储空间(即,m=0),并且存储空间的时间维度可以与时间段相关。作为另一个例子,如图8b所示,存储空间可以是二维存储空间(即,m=1),并且存储空间的时间维度可以与时间段和日期相关。

在一些实施例中,处理引擎112可以确定与m+1维存储空间的时间段相关的时间维度的粒度,如操作620所描述的。在一些实施例中,处理引擎112可以分别确定m+1维存储空间的m个时间维度的m个粒度。可以在本申请的其他地方找到确定m+1维存储空间的更多描述(例如,图8及其描述)。

在650中,处理引擎112(例如,存储模块450)可以按时间顺序将与多个单位时间段相关联的多个总和存储到m+1维存储空间中。

应当注意的是,上述仅出于说明性目的而提供,并不旨在限制本申请的范围。对于本领域的普通技术人员来说,根据本申请的教导可以做出多种变化和修改。然而,变形和修改不会背离本申请的范围。在一些实施例中,可添加或省略一项或多项操作。例如,可以在流程600中添加存储操作。在存储操作中,处理引擎112可以将与存储空间相关联的信息和/或数据存储在存储介质(例如,存储设备130)中,这在本申请的其他地方公开。又例如,可以省略操作640。存储空间可以是数据系统100的存储设备(例如,存储设备130)中的默认存储空间。在一些实施例中,可以改变流程600中的操作的顺序。例如,可以在操作610或操作620之前执行操作640。又例如,可以在操作610之前执行操作620。也就是说,处理引擎112可以将与区域的历史数据相关联的时间段划分为多个单位时间段。对于每个单位时间段,处理引擎112则可以将所述区域划分为多个子区域。此外,处理引擎112可以将与多个子区域相关联的历史数据存储到存储空间中,如本申请中所描述的。

在一些实施例中,在将区域划分成多个子区域之后,对于每个子区域,处理引擎112可以根据一个或多个参数(例如,年龄、教育背景)将每个子区域中的多个用户(例如,多个打车服务订单中的多个服务提供者或服务请求者)划分成多个组。此外,处理引擎112可以将与不同组中的用户相关联的历史数据存储到存储空间中,如本申请中所描述的。

图7是根据本申请的一些实施例所示的用于将数据存储到存储空间中的示例性过程的流程图。在一些实施例中,流程700可以在数据系统100中实现。例如流程700可以作为指令的形式存储在存储设备130和/或存储器(例如,rom230、ram240等)中,并且由服务器110调用和/或执行(例如,服务器110中的处理引擎112或服务器110中的处理引擎112的处理器210)。

在710中,处理引擎112(例如,区域划分模块410)可以将区域划分为具有相同大小的多个子区域。

在一些实施例中,可以基于要存储在数据系统100中的数据的类型来确定所述区域。例如,如果要存储的数据与约车服务(例如,服务订单的数量)相关,则所述区域可以是约车服务所覆盖的服务区域,例如,城市街区、机场等。作为另一个例子,如果要存储的数据与农业服务(例如,作物产量)有关,则所述区域可以是作物种植区域。在下面的描述中,以与约车服务有关的数据(例如,服务订单的数量)为例。应当注意,仅出于说明的目的提供描述,并且不旨在限制本申请的范围。

在一些实施例中,不同子区域的形状和/或大小可以由用户手动设置,或者可以根据不同情况由数据系统100的一个或多个组件确定。例如,子区域可以是边长为500米的等边三角形、长度为500米且宽度为300米的矩形等。

操作710的更多描述可以在本申请的其他地方找到(例如,图6中的操作610及其描述)。

在720中,对于多个子区域的每个子区域,处理引擎112(例如,时间段划分模块420)可以将与在每个子区域中收集的历史数据相关联的时间段划分为n个单位时间段,其中,历史数据可以满足区间减法规则,n可以是大于1的整数。

在一些实施例中,历史数据可以满足区间减法规则。例如,在a<b<c(a,b和c是实数)的情况下,如果已知区间[a,c]和区间[b,c]中的历史数据,则处理引擎112可以通过在区间[a,c]的历史数据中从减去区间[b,c]中的历史数据,来确定在区间[a,b]中的历史数据。又例如,如果区间[a,c]和[a,b]中的历史数据是已知的,则处理引擎112可以通过从区间[a,c]的历史数据中减去区间[a,b]的历史数据,来确定区间[b,c]中的历史数据。

以约车服务中的服务订单数量为例,如果服务订单的数量(或计数)从上午7:00到上午9:00在某个子区域(或区域)是100万,并且从上午7:00到上午8:00的服务订单的数量(或计数)在同一个子区域(或区域)为40万,那么在同一子区域(或区域)内从上午8:00到上午9:00的服务订单的数量(或计数)可确定为的60万(即1百万-40万=60万)。

在一些实施例中,对于每个子区域,与每个子区域的历史数据相关联的时间段可以被划分为具有相同持续时间的n个单位时间段。在一些实施例中,单位时间段的持续时间(也称为单位时间段的粒度)可以手动设置或者根据不同情况由数据系统100的一个或多个组件确定。单位时间段的持续时间可以是例如0.5小时、1小时、5小时、10小时或24小时等。例如,每个单位时间段的持续时间可以是0.5小时,那么一天可以被划分为48个单位时间段。

操作720的更多描述可以在本申请的其他地方找到(例如,图6中的操作620及其描述)。

在730中,处理引擎112(例如,关联模块430)可以确定第一单位时间段与对应于第一单位时间段的第一组历史数据的第一总和之间的第一关系。处理引擎112(例如,关联模块430)可以确定第二单位时间段与第一组目标历史数据和第二组目标历史数据的第二总和之间的第二关系,其中第二组历史数据对应于第二单位时间段。类似地,处理引擎112(例如,关联模块430)可以确定第n单位时间段与从第一组历史数据到对应于第n单位时间段的第n组历史数据的第n总和之间的第n关系。

在一些实施例中,如果单位时间段的持续时间是0.5小时,即,一天被分成48个单位时间段。对于第一单位时间段00:00~00:30,处理引擎112可以确定第一单位时间段与对应于第一单位时间段的第一组历史数据的第一总和之间的第一关系。以约车服务中服务订单的数量(或数量)为例,如果第一单位时间段内服务订单的数量(或数量)为10万,则第一总和可能为10万。对于第二单位时间段00:30~01:00,处理引擎112可以确定第二单位时间段与第一组历史数据和第二组历史数据的第二总和之间的第二关系。第二组历史数据可以对应于第二单位时间段。例如,如果第一单位时间段内服务订单的数量(或计数)为10万,而第二单位时间段内服务订单的数量(或计数)为12万,那么第二个总和可能为22万(即10万+12万=22万)。对于第n个单位时间段23:30~00:00,处理引擎112可以确定第n个单位时间段与从第一组历史数据到对应于第n单位时间段的第n组历史数据的第n总和之间的第n关系。例如,第n总和可以是50万。

在740中,处理引擎112(例如,存储空间确定模块440)可以基于与时间段相关的时间维度和m个时间维度来确定m+1维存储空间,其中m可以是大于或等于0的整数。

在一些实施例中,处理引擎112可以确定与m+1维存储空间的时间段相关的时间维度的粒度,如操作620或操作720所描述的。在一些实施例中,处理引擎112可以分别确定m+1维存储空间的m个时间维度的m个粒度。可以在本申请的其他地方找到确定m+1维存储空间的更多描述(例如,图6和8及其描述)。

在750中,处理引擎112(例如,存储模块450)可以按时间顺序将与n个单位时间段相关联的多个总和存储到m+1维存储空间中。

在一些实施例中,出于说明的目的,字符串“201608080930”可表示对应于2016年8月8日9:30~10:00的单位时间段的一组历史数据的总和。因此,对应于2016年8月8日的每个单位时间段的每个总和可以由“201608080000”~“201608082330”表示。

应当注意的是,上述仅出于说明性目的而提供,并不旨在限制本申请的范围。对于本领域的普通技术人员来说,根据本申请的教导可以做出多种变化和修改。然而,变形和修改不会背离本申请的范围。

图8a是根据本申请的一些实施例所示的示例性一维存储空间的示意图。如图所示,存储空间的维度与时间段有关(即,m=0),并且时间段维度的粒度为0.5小时。在一些实施例中,可以按时间顺序将与多个单位时间段相关联的多个总和存储到一维存储空间中。也就是说,与相对较早的单位时间段相关联的总和可以存储在相对于一维存储空间的起始位置的较近位置处,因此,与相对较晚的单位时间段相关联的总和可以存储在相对于一维存储空间的起始位置的更远位置。

如图8a所示,存储空间中的单位时间段可以包括2016年8月8日的第一单位时间段00:00~00:30、2016年8月8日的第二单位时间段00:30~01:00、......、2016年8月8日23:30~2016年8月9日00:00的第48单位时间段、2016年8月9日00:00~2016年8月9日00:30的第49单位时间段。字符串“201608080000”、“201608080030”、......、“201608082330”和“201608090000”分别表示对应于单位时间段的历史数据的总和。具体地,字符串“201608080000”可以表示对应于2016年8月8日00:00~00:30的第一单位时间段的第一组历史数据的总和;字符串“201608080030”可表示第一组历史数据和对应于2016年8月8日第二单位时间段00:30~01:00的第二组历史数据的总和;字符串“201608082330”可以表示从第一组历史数据到对应于第48单位时间段2016年8月8日23:30~2016年8月9日00:00的第48组历史数据的总和;字符串“201608090000”可表示从第一组历史数据到对应于第49单位时间段2016年8月9日00:00~00:30的第49组历史数据的总和。由字符串“201608080000”表示的总和可以小于由字符串“201608080030”表示的总和。

在一些实施例中,历史数据可以满足区间减法规则。因此,为了查询与特定时间区间(也称为时间段)相关联的数据,用户或处理引擎112可能仅需要确定特定时间区间的开始时间和特定时间区间的截止时间,并基于与特定时间区间的开始时间和截止时间相关联的总和执行减法操作。

例如,对于图8a中所示的一维存储空间,如果用户输入请求,请求查询在2016年8月8日中午12:30的至2016年8月9日上午5点时间区间内历史数据(例如,服务订单的数量(或计数)),处理引擎112可以确定与第一单位时间段相关联的第一总和(即,由字符串“201608081230”表示的第一总和)(即,与该时间区间的开始时间相关联)和与第二单位时间段相关联的第二总和(即,由字符串“201608090430”表示的第二总和)(例如,与该时间区间的截止时间相关联)。处理引擎112还可以通过从由字符串“201608090430”表示的第二总和(例如,服务订单的数量(或计数))中减去由字符串“201608081200”表示的第一总和(例如,服务订单的数量(或计数))来确定查询结果。

图8b是根据本申请的一些实施例所示的示例性二维存储空间的示意图。如图所示,存储空间的水平维度可以与日相关(例如,从2016年8月1日到2016年8月12日),并且存储空间的垂直维度可以与单位时间段相关(例如,从单位时间段00:00~00:30至单位时间段10:30~11:00)。水平维度的粒度可以是一天,垂直维度的粒度可以是0.5小时。水平维度中的每一天可以对应于垂直维度中的48个单位时间段。在一些实施例中,存储空间的水平维度可以根据数据系统100的默认设置来设置,或者由用户或操作者通过计算终端140预设。例如,存储空间的水平维度可以是月、年等。

在一些实施例中,处理引擎112可以根据存储空间的时间维度将与多个单位时间段相关联的多个总和存储到存储空间中。例如,在多维存储空间中,与多维存储空间中的某个单位时间段相关联的总和可以指与在存储空间的每个维度中都在该单位时间段之前的一个单位时间段相对应的历史数据的总和。例如,如图8b所示,如果2016年8月1日00:00是所述时间段的开始时间,2016年8月10日07:00是所述时间段的截止时间,则由字符串“201608100700”表示的与图示为a的单位时间段相关联的数据可以是与区域810中示出的多个单位时间段相关联的多组历史数据的总和。

在一些实施例中,类似于存储在一维存储空间中的数据,存储在二维存储空间中的历史数据可以满足区间减法规则。因此,处理引擎112可以通过执行一个或多个减法操作来确定时间区间中的历史数据。

例如,如图8b所示,如果用户输入请求(或数据系统100接收请求),请求查询从2016年8月7日到2016年8月12日的每天上午07:00~09:30的时间区间内的历史数据(例如,服务订单的数量(或计数)),处理引擎112可以通过从字符串“201608120900”表示的第三总和中减去由字符串“201608060900”表示的第一总和与由字符串“201608120630”表示的第二总和,并加上由字符串“201608060630”表示的第四总和来确定查询结果,其中第四总和被重复减去。由字符串“201608060900”表示的第一总和可以对应于水平维度中标记为“20160806”(即2016年8月6日)的位置和垂直维度中标记为“0900”(即09:00)的位置。由字符串“201608120630”表示的第二总和可以对应于水平维度中标记为“20160812”(即2016年8月12日)的位置和垂直维度中标记为“0630”(即06:30)的位置。由字符串“201608120900”表示的第三总和可以对应于水平维度中标记为“20160812”(即2016年8月12日)的位置和垂直维度中标记为“0900”(即09:00)的位置。由字符串“201608060630”表示的第四总和可以对应于在水平维度中标记为“20160806”(即2016年8月6日)的位置和在垂直维度上标记为“0630”(即,06:30)的位置。基于查询请求,确定查询结果的更多描述可以在本申请的其他地方找到(例如,图10-11及其描述)。

根据本申请中描述的数据存储方法,一方面,处理引擎112可以将与多个单位时间段相关联的多个总和存储到存储空间中,而不是存储每个历史数据。例如,对于与100,000个服务订单相关的历史数据,处理引擎112可以仅存储总和(即100,000),而不是存储与100,000个服务订单中的每一个相关的历史数据,因此,可以显著减少占用的存储空间。另一方面,由于存储在存储空间中的历史数据可以满足区间减法规则,处理引擎112可以通过对存储在存储空间中的总和,执行一个或多个减法运算来确定存储空间中的特定时间区间内的历史数据。因此,存储空间可以显著提高查询速度。例如,对于每天与约车服务有关的数千万个历史数据,使用本申请中描述的数据存储方法,查询速度可以从几分之一秒提高到几毫秒,并且这种有益的技术效果对于大量数据,效果可能更明显。

应当注意,可以基于图8b中所示的二维存储空间来提高存储空间的维度(例如,m)。例如,除了与日期和单位时间段相关的维度之外,可以为多维存储空间设置与月份和/或年份相关的其他维度。

在一些实施例中,存储空间(例如,如图8a和8b所示的存储空间,或者在预设公开中未示出的多维存储空间)中的每个单位时间段可以对应于一个空间维度,例如,子区域。也就是说,每个子区域可以对应于一个存储空间(例如,如图8a所示的一维存储空间,如图8b所示的二维存储空间,或任何其他多维存储空间)。在一些实施例中,处理引擎112可以根据经度坐标和纬度坐标确定空间维度(例如,子区域)。例如,如果经度坐标的粒度是0.005,纬度坐标的粒度是0.005,则处理引擎112可以存储与经度坐标在116.215和116.220之间且纬度坐标在40.460和和40.465之间的子区域相关的历史数据,位于存储空间中由“116215_40460”表示的位置。

图9是根据本申请的一些实施例所示的用于将数据存储到存储空间中的示例性过程的流程图。在一些实施例中,流程900可以在数据系统100中实现。例如,流程900可以作为指令的形式存储在存储设备130和/或存储器(例如,rom230、ram240等)中,并且由服务器110调用和/或执行(例如,服务器110中的处理引擎112、或服务器110中的处理引擎112的处理器210)。

在910中,处理引擎112(例如,区域划分模块410)可以将区域划分为具有相同大小的多个子区域。可以在本申请的其他地方找到对区域划分的更多描述(例如,图6中的操作610、图7中的操作710及其描述)。

在920中,对于多个子区域中的每个子区域,处理引擎112(例如,时间段划分模块420)可以将与每个子区域的历史数据相关联的时间段划分为n个单位时间段,其中n可以是大于1的整数。历史数据可以满足区间减法规则。可以在本申请的其他地方找到划分时间段的更多描述(例如,图6中的操作620,图7中的操作720及其描述)。

在930中,处理引擎112(例如,关联模块430)可以确定第一单位时间段与对应于第一单位时间段的第一组历史数据的第一总和之间的第一关系。处理引擎112(例如,关联模块430)可以确定第二单位时间段与第一组目标历史数据和第二组目标历史数据的第二总和之间的第二关系,其中第二组历史数据对应于第二单位时间段。类似地,处理引擎112(例如,关联模块430)可以确定第n单位时间段和从第一组历史数据到与第n单位时间段相对应的第n组历史数据的第n总和之间的第n关系。在单位时间段和总和之间的关系的确定的更多描述可以在本申请的其他地方找到(例如,图6中的操作630,图7中的操作730及其描述)。

在940中,处理引擎112(例如,存储空间确定模块440)可以确定与m+1维存储空间的时间段相关的时间维度的粒度。

在一些实施例中,处理引擎112可以在划分与子区域的历史数据相关联的时间段时确定与时间段相关的时间维度的粒度。例如,如图8a和8b所示,单位时间段的持续时间是0.5小时,在这种情况下,与存储空间的时间段相关的时间维度的粒度就是0.5小时。

在950中,处理引擎112(例如,存储空间确定模块440)可以分别确定m+1维存储空间的m个时间维度的m个粒度。

在一些实施例中,处理引擎112可以确定除了与时间段相关的时间维度之外的m个时间维度,其中m可以是大于或等于0的整数。在一些实施例中,m个时间维度可以包括日、周、月、年等,或其任何组合。m个时间维度可以由用户手动预设,或者可以根据不同情况由数据系统100的一个或多个组件确定。处理引擎112还可以确定m+1维存储空间的m个时间维度的m个粒度。此外,处理引擎112可以基于与时间段相关的时间维度和m个时间维度来确定m+1维存储空间。应注意,处理引擎112可基于不同的时间维度确定不同的存储空间。在一些实施例中,如果存储空间的一个时间维度改变,则一个或多个其他时间维度可以相应地改变。例如,如果时间维度是天,那么一天可以对应于48个单位时间段。如果时间维度是星期,那么一星期可以对应336个单位时间段。

在960中,处理引擎112(例如,存储模块450)可以按时间顺序将与n个单位时间段相关联的多个总和存储到m+1维存储空间中。可以在本申请的其他地方找到存储和的更多描述(例如,图6中的操作650,图7中的操作750及其描述)。

在一些实施例中,每个子区域可以具有矩形的形状。在一些实施例中,如果每个子区域的形状被设置为矩形,则可以方便子区域中的历史数据满足区间减法规则,然后可以方便任何进一步的数据查询操作,并且查询结果可能更准确。

在一些实施例中,本申请中示出的存储空间可以是key-value数据库,相应地,单位时间段和其他m时间维度可以被设置为key-value数据库的主键。在一些实施例中,key-value数据库可以提供快速查询速度,允许存储大量数据,支持高并发性,并且可以适合于通过一个或多个主键进行查询。在一些实施例中,存储在存储空间中的历史数据满足区间减法规则。在数据查询中,处理引擎112可以基于存储空间中与时间区间的开始时间对应的第一位置、存储空间中与时间区间的截止时间对应的第二位置,以及减法操作来确定查询结果。在一些实施例中,可以基于对应的主键确定存储空间中对应于时间区间的开始时间的第一位置和存储空间中对应于时间区间的截止时间的第二位置,相应地,可以快速确定查询结果。在一些实施例中,如果重复减去一个或多个历史数据,则可以将历史数据加到查询结果中。在一些实施例中,如果存储空间的时间维度大于1,则可以执行加法操作来恢复重复减去的历史数据。

应当注意的是,上述仅出于说明性目的而提供,并不旨在限制本申请的范围。对于本领域的普通技术人员来说,根据本申请的教导可以做出多种变化和修改。然而,变形和修改不会背离本申请的范围。例如,可以省略操作950。存储空间可以是一维存储空间(即,m=0),如图8a所示。

图10是根据本申请的一些实施例所示的用于查询数据的示例性过程的流程图。在一些实施例中,流程1000可以在数据系统100中实现。例如流程1000可以作为指令的形式存储在存储设备130和/或存储器(例如,rom230、ram240等)中,并且由服务器110调用和/或执行(例如,服务器110中的处理引擎112或服务器110中的处理引擎112的处理器210)。

在1010中,处理引擎112(例如,请求获取模块510)可以从计算终端接收查询请求。在一些实施例中,处理引擎112可以经由网络120从计算终端140接收查询请求。

在一些实施例中,网络120可以例如通过安装在计算终端140中的应用程序(例如,图3中的应用程序380)在服务器110和计算终端140之间建立通信(例如,无线通信)。在一些实施例中,应用程序可以被配置为为用户提供服务(例如,线上到线下服务)。例如,所述应用程序可能与约车服务有关。在一些实施例中,用户可以登录应用程序并发起查询请求。在一些实施例中,当安装在计算终端140中的应用程序被启动时,可以连续或周期性地监测来自用户的查询请求。一旦应用程序检测到查询请求,计算终端140就可以经由网络120将查询请求自动发送到处理引擎112。

在一些实施例中,查询请求可以是对与服务有关的历史数据的请求。仅用于说明目的,所述服务可包括约车服务、拼车服务、搭便车服务、递送服务、在线购物服务、医疗服务、基于地图的服务等,或其任何组合。以约车服务为例,查询请求可以指示哪个历史数据(例如,服务订单的数量(计数),服务提供者的数量(或计数),服务请求者的数量(或计数),已完成的服务请求的数量(或计数))要被查询,查询的子区域(也称为目标子区域),与要查询的历史数据相关联的时间区间(例如,开始时间、截止时间)等,或其任何组合。

在1020中,处理引擎112(例如,第一确定模块520)可以基于查询请求,确定目标子区域、开始时间、截止时间、开始时间和截止时间的时间维度、与截止时间相关联的第一单位时间段、以及与开始时间相关的第二单位时间段。在一些实施例中,处理引擎112可以确定与目标子区域相关联的历史数据相关的初始时间和/或时间维度。在一些实施例中,初始时间可以是一个时间,每个总和从这个时间开始确定。

在一些实施例中,处理引擎112可以基于目标子区域确定存储空间中的位置。处理引擎112还可以确定与目标子区域相关联的历史数据相关的时间维度,查询历史数据的时间区间的开始时间和截止时间。在一些实施例中,开始时间和截止时间的时间维度可以低于或等于与存储空间中存储的历史数据相关的时间维度。如这里所使用的,与存储空间中存储的历史数据相关的时间维度也可以称为存储空间的时间维度。

在一些实施例中,在确定所查询的历史数据的开始时间和截止时间之后,处理引擎112可以在存储空间中确定与截止时间相关联的第一单位时间段和与开始时间相关联的第二单位时间段。在一些实施例中,第一单位时间段可包括截止时间。在一些实施例中,第二单位时间段可以在存储空间的每个时间维度中,比包括开始时间的单位时间段提前一个粒度。

在1030中,处理引擎112(例如,数据获取模块530)可以确定从初始时间到第一单位时间段之前的一个单位时间段的第一组历史数据的第一总和,以及从初始时间到第二单位时间段之前的一个单位时间段的第二组历史数据的第二总和。存储在存储空间中的历史数据可以满足区间减法规则。在一些实施例中,初始时间可以记录在存储空间中。在一些实施例中,可以基于与目标子区域相关联的历史数据来确定初始时间。

在一些实施例中,处理引擎112可以确定第一总和和/或第二总和是否存储在数据系统100的缓存中。响应于确定第一总和和/或第二总和存储在数据系统100的缓存中,处理引擎112可以从数据系统100的缓存中获得第一总和和/或第二总和。响应于确定第一总和和/或第二总和未存储在数据系统100的缓存中,处理引擎112可以从存储空间获得第一总和和/或第二总和。关于第一总和和/或第二总和的确定的更多描述可以在本申请的其他地方找到(例如,图11及其描述)。

在1040中,处理引擎112(例如,第二确定模块540)可以通过从所有时间维度中的第一总和的第一累加和中减去所有时间维度中的第二总和的第二累加和,并加上在所有时间维度中第三组历史数据的第三总和的第三累加和,来确定查询结果。在一些实施例中,第三组历史数据可以对应于一个或多个单位时间段,在所述一个或多个单位时间段中的历史数据被重复减去。

在1050中,处理引擎112(例如,反馈模块550)可以将查询结果发送到计算终端。在一些实施例中,处理引擎112可以经由网络120将查询结果发送到计算终端140的可视界面。终端设备的可视界面可以以文本、图形、音频、视频等的形式或其任何组合显示查询结果。

例如,用户可以查询如图8b所示的二维存储空间中的2016年8月7日至2016年8月12日的每天上午7:00~9:30的时间区间中的服务订单的数量(或计数)。处理引擎112可以确定包括截止时间的第一单位时间段(即,2016年8月12日上午9:30)。第一单位时间段可以对应于水平维度中标记为“20160812”(即2016年8月12日)和垂直维度中标记为“0930”(即09:30)的位置。处理引擎112可以确定与开始时间(即,2016年8月7日上午7:00)相关联的第二单位时间段。第二单位时间段可以比包括开始时间的单位时间段在与图8b所示的二维存储空间的日期和单位时间段相关的时间维度中均提前一个粒度。例如,在与日期相关的时间维度上,包括开始时间的单位时间段之前的一个粒度可以是“20160806”,并且,在与单位时间段相关的时间维度中,包括开始时间的单位时间段之前的一个粒度可以是“0630”。相应地,第二单位时间段可以对应于水平维度中标记为“20160806”(即2016年8月6日)和垂直维度中标记为“0630”(即06:30)的位置。

处理引擎112还可以确定与第一单位时间段相关联的第一总和,以及与第二单位时间段相关联的第二总和。第一总和可以是从存储空间中记录的初始时间(例如,图8b中所示的2016年8月1日上午00:00)到在存储空间的两个维度上均在第一单位时间段之前的一个单位时间段的第一组历史数据的总和。第二总和可以是从存储空间中记录的初始时间(例如,图8b中所示的2016年8月1日00:00)到在存储空间的两个维度上均在第二单位时间段之前的一个单位时间段的第二组历史数据的总和。在一些实施例中,第一总和可以由字符串“201608120900”表示。在一些实施例中,第二总和可以由字符串“201608060630”表示。

处理引擎112还可以基于与存储空间的日期相关的时间维度中的第一总和与第二总和的第一差值、与存储空间的单位时间段相关的时间维度中的第一总和与第二总和的第二差值,以及第三总和来确定查询结果。例如,处理引擎112可以从与第一单位时间段(水平维度标记为“20160812”,垂直维度标记为“0900”)相关联的第一总和,减去与单位时间段(在水平维度中标记为“20160806”,在垂直维度中标记为“0900”)相关联的总和来确定第一差值。处理引擎112可以从第一差值中减去与单位时间段(在水平维度中标记为“20160812”,在垂直维度中标记为“0630”)相关联的总和来确定第二差值。与单位时间段(在水平维度中标记为“20160806”,在垂直维度中标记为“0900”)相关联的总和,以及与单位时间段(在水平维度中标记为“20160812”,在垂直维度中标记为“0630”)相关联的总和,都包括与单位时间段(在水平维度中标记为“20160806”,在垂直维度中标记为“0630”)相关联的第三总和。在确定第二差值时,重复减去了第三总和。因此,处理引擎112可以通过将第三总和加到第二差值来确定查询结果。

应当注意,图10中所示的数据查询过程可以仅包括一个或多个减法操作和/或一个或多个添加操作。可能没有复杂的操作。因此,可以加速查询速度。

应当注意的是,上述仅出于说明性目的而提供,并不旨在限制本申请的范围。对于本领域的普通技术人员来说,根据本申请的教导可以做出多种变化和修改。然而,变形和修改不会背离本申请的范围。在一些实施例中,可添加或省略一项或多项操作。例如,可以在流程1000中添加存储操作。在存储操作中,处理引擎112可以将与查询请求相关联的信息和/或数据存储在存储介质(例如,存储设备130)中,这在本申请的其他地方公开。又例如,可以省略操作1050。

图11是根据本申请的一些实施例所示的用于查询数据的示例性过程的流程图。在一些实施例中,流程1100可以在数据系统100中实现。例如,流程1100可以作为指令的形式存储在存储设备130和/或存储器(例如,rom230、ram240等)中,并且由服务器110调用和/或执行(例如,服务器110中的处理引擎112、或服务器110中的处理引擎112的处理器210)。

在1110中,处理引擎112(例如,请求获取模块510)可以从计算终端接收查询请求。操作1110的更多描述可以在本申请的其他地方找到(例如,图10中的操作1010及其描述)。

在1120中,处理引擎112(例如,第一确定模块520)可以基于查询请求确定目标子区域、开始时间、截止时间、开始时间和截止时间的时间维度、与截止时间相关联的第一单位时间段、以及与开始时间相关联的第二单位时间段。在一些实施例中,第一单位时间段可包括截止时间。在一些实施例中,第二单位时间段可以在存储空间的每个时间维度中,比包括开始时间的单位时间段提前一个粒度。操作1120的更多描述可以在本申请的其他地方找到(例如,图10中的操作1020及其描述)。

在1130,处理引擎112(例如,数据确定单元601)可以确定第一总和与第二总和中的至少一个是否存储在系统(例如,数据系统100)的缓存中。响应于确定第一总和与第二总和中的至少一个存储在缓存中,流程1100可以进行到1140。响应于确定第一总和与第二总和中的至少一个未存储在缓存中,流程1100可以进行到1150。在1140中,处理引擎112(例如,缓存数据获取单元602)可以从缓存中获得第一总和与第二总和中的至少一个。在1150,处理引擎112(例如,存储空间数据获取单元603)可以从存储空间获得第一总和与第二总和中的至少一个。

在1160中,处理引擎112(例如,第二确定模块540)可以通过从所有时间维度中的第一总和的第一累加和中减去所有时间维度中的第二总和的第二累加和,并加上在所有时间维度中第三组历史数据的第三总和的第三累加和来确定查询结果。在一些实施例中,第三组历史数据可以对应于一个或多个单位时间段,所述一个或多个单位时间段中的历史数据被重复减去。操作1160的更多描述可以在本申请的其他地方找到(例如,图10中的操作1040及其描述)。

在1170中,处理引擎112(例如,反馈模块550)可以将查询结果发送到计算终端。操作1170的更多描述可以在本申请的其他地方找到(例如,图10中的操作1050及其描述)。

需要注意的是,上述描述仅是为了说明,并不构成对本申请范围的限制。对于本领域的普通技术人员来说,可以根据本申请的描述,做出各种各样的修正和改变。然而,这些修正和改变不会背离本申请的范围。

图12是根据本申请的一些实施例所示的用于数据查询的示例性过程的示意图。在一些实施例中,本申请中公开的存储空间可以是key-value数据库1210。key-value数据库1210可用于存储、检索和/或管理数据。在key-value数据库1210中,可以使用可以唯一地识别数据的一个或多个主键来存储和检索数据。在一些实施例中,key-value数据库1210可用于存储数据和查询数据,如本申请中所述。例如,key-value数据库1210的主键可以包括多个单位时间段和m个时间维度,如本申请中其他地方所述。

如图12所示,服务接口层1220可以从计算终端1260获得查询请求。那么,服务接口层1220可以请求数据获取层1230以获得数据。数据获取层1230可以获得用于根据如图10所示的流程1000确定查询请求的查询结果的数据。例如,数据获得层1230可以基于查询请求确定目标子区域、开始时间、截止时间、开始时间和截止时间的时间维度、与第一单位时间段相关联的第一单位时间段、与开始时间相关联的第二单位时间段,如操作1020所描述的。数据获得层1230还可以确定与第一单位时间段相关联的第一总和,以及与第二单位时间段相关联的第二总和,如操作1030所描述的。在一些实施例中,数据获得层1230可以确定存储空间的每个时间维度中的第一总和与第二总和的差值。在一些实施例中,数据获得层1230可以同时确定存储空间的每个时间维度中的第一总和与第二总和的差值。

仅用于说明目的,为了确定图8b所示二维存储空间中的2016年8月7日至2016年8月12日的每天上午7:00至9:30的时间区间内的服务订单的数量(或计数),数据获得层1230可以获得与多个单位时间段相关联的多个总和:水平维度标记为“20160812”,垂直维度标记为“0900”的单位时间段;水平维度标记为“20160806”,垂直维度标记为“0630”的单位时间段;水平维度标记为“20160806”,水平维度标记为“0900”的单位时间段;水平维度标记为“20160812”,垂直维度标记为“0630”的单位时间段;如操作1040和1050所描述的。在一些实施例中,数据获得层1230可以同时获得与这些单位时间段相关联的多个总和。在一些实施例中,数据获得层1230可以确定与这些单位时间段相关联的总和中的至少一个是否存储在数据系统100的缓存数据库1240中。响应于确定所述总和中的至少一个存储在缓存数据库1240中,数据获得层1230可以从缓存数据库1240获得总和中的至少一个。响应于确定至少一个总和未存储在缓存数据库1240中,数据获得层1230可以从key-value数据库1210获得总和中的至少一个。

在一些实施例中,在从key-value数据库1210获得总和中的至少一个之后,数据获得层1230可以将至少一个总和存储在缓存数据库1240中。在一些实施例中,数据获得层1230可以将数据(例如,总和)发送到服务接口层1220。服务接口层1220还可以将数据发送到确定层1250,用于确定查询结果,如结合操作1040所描述的。在一些实施例中,服务接口层1220可以从确定层1250获得查询结果。在一些实施例中,服务接口层1220还可以将查询结果发送到计算终端1260。

应当注意的是,上述仅出于说明性目的而提供,并不旨在限制本申请的范围。对于本领域的普通技术人员来说,可以根据本申请的描述,做出各种各样的修正和改变。然而,这些修正和改变不会背离本申请的范围。

上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述发明披露仅仅作为示例,而并不构成对本申请的限定。虽然此处并没有明确说明,本领域具有通常知识者可以对本申请进行各种修改、改进和修正。所述修改、改进和修正在本申请中被建议,所以所述类修改、改进、修正仍属于本申请示范实施例的精神和范围。

同时,本申请使用了特定术语来描述本申请的实施例。例如,术语“一个实施例”、“一实施例”及“一些实施例”意指与本申请的至少一个实施例相关的某一特征、结构或特性。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一替代性实施例”并不一定是指同一实施例。此外,本申请的一个或多个实施例中的某些特征、结构或特性可以进行适当的组合。

此外,本领域技术人员可以理解,本申请的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本申请的各个方面可以完全由硬件实施、可以完全由软件(包括韧体、常驻软件、微代码等)实施、也可以由硬件和软件组合实施,上述硬件或软件均可以被称为“模块”、“单元”、“组件”、“装置”或“系统”。此外,本申请的各方面可以呈现为位于一个或多个计算机可读媒体中的计算机产品,所述产品具有计算机可读程序编码。

计算机可读信号介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。此类传播讯号可以有多种形式,包括电磁形式、光形式等或任何合适的组合形式。计算机可读信号介质可以是除计算机可读存储介质之外的任何计算机可读介质,所述介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机可读讯号媒体上的程序编码可以通过任何合适的媒体进行传播,包括无线电、缆线、光纤电缆、rf、或类似媒体、或任何上述媒体的合适组合。

本申请各部分操作所需的计算机程序码可以用任意一种或多种程序语言编写,包括面向对象程序设计语言如java、scala、smalltalk、eiffel、jade、emerald、c++、c#、vb.net、python等,常规程序化程序设计语言如c语言、visualbasic、fortran2003、perl、cobol2002、php、abap,动态程序设计语言如python、ruby和groovy,或其他程序设计语言。程序代码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机上运行、或完全在远程计算机或服务器上运行。在后种情况下,远程计算器可以通过任何网络形式与用户计算器连接,例如,局域网络(lan)或广域网(wan),或连接至外部计算器(例如通过因特网),或在云端计算环境中,或作为服务使用如软件即服务(saas)。

此外,除非申请专利范围中明确说明,否则所述处理元素或序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本申请流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,所述类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本申请实施例实质和范围的修正和等价组合。例如,虽然以上描述的系统组件可以通过安装于硬件装置中实施,但也可以只通过软件的解决方案实施,例如在现有的服务器或移动设备上安装所描述的系统。

同理,应当注意的是,为了简化本申请披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本申请实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本申请对象所需要的特征比权利要求中提及的特征多。实际上,申请专利范围的特征要少于上述披露的单个实施例的全部特征。

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