用户行为数据的统计装置及方法与流程

文档序号:11919109阅读:182来源:国知局
用户行为数据的统计装置及方法与流程

本发明涉及大数据统计技术领域,尤其涉及一种用户行为数据的统计装置及方法。



背景技术:

各大应用上线之后,如果想要知道用户对该应用的使用情况,使产品开发人员对用户行为的了解更加全面与完整,需要对用户行为数据进行统计,即数据统计。为了达到统计的目的,需要应用收集信息,并上报到数据统计服务器,由数据统计服务器进行计算,并把结果显示在页面。一般离线数据只统计固定时间差的数据,例如1天、7天和30天的数据,当客户端发送请求的时间差不确定时(比如请求9月1号到10月20号的数据,时间差是50天),无法使用离线的方式预先对数据进行统计。

为了使用户能够尽快请求到任意时间差的数据,目前采用的统计计算方式为:采用spark集群(一种数据计算平台),定时从MongoDB(一种基于分布式文件存储的数据库)中导出需要的数据,将导出的数据存储在spark机器所在的目录,将计算结果加载到spark机器的内存,当用户发送页面请求时,从内存中读取结果并进行计算,将计算结果发送给用户,但是这样的方案存在以下两个弊端:一是将导出的数据存储到本地磁盘中,在接收到页面请求时,从本地磁盘中读取数据进行统计并将结果返回给用户,从磁盘中读取数据的速度远低于从内存中读取数据的速度;二是如果从MongoDB中导出的数据存储在本地磁盘,需要集群中的每一台机器把自身存储的文件广播到集群中,其他的机器才能知道这个文件的存在,进而进行获取。现有的数据统计方案中存在的上述两个弊端导致数据统计速度慢,无法快速地将统计结果返回给用户。



技术实现要素:

本发明提供一种用户行为数据的统计装置及方法,其主要目的在于解决现有的对应用的用户行为数据统计速度慢的技术问题,以实现快速地将统计结果返回给用户。

为实现上述目的,本发明提供一种用户行为数据的统计装置,该用户行为数据的统计装置包括:

数据存储模块,用于每间隔预设的第一时间间隔,从源数据库中读取应用在所述第一时间间隔内产生的用户行为数据并存储到基于内存的分布式存储系统;

数据加载模块,用于从所述分布式存储系统中读取所述用户行为数据并加载到数据存储系统的第一内存区;

数据统计模块,用于根据加载的所述用户行为数据生成第一统计结果并存储至所述第一内存区,以在接收到数据统计请求时,基于所述第一统计结果进行数据统计。

可选地,所述用户行为数据的统计装置包括:

时间确定模块,用于在接收到客户端发送的数据统计请求时,确定所述数据统计请求对应的第二时间间隔,其中,所述第二时间间隔大于或者等于所述第一时间间隔;

数据查找模块,用于基于所述数据存储系统,从所述第一内存区中查找属于所述第二时间间隔内的第一统计结果;

所述数据统计模块还用于:根据查找到的所述第一统计结果进行数据统计以获取第二统计结果并发送至所述客户端。

可选地,所述数据存储模块还用于:在生成所述第一统计结果后,将所述第一统计结果持久化存储到与所述分布式存储系统对应的第二内存区中;

所述数据加载模块还用于:在检测到所述第一内存区所在的系统发生重启时,从所述第二内存区中读取预设的第三时间间隔内存储的第一统计结果并加载至所述第一内存区。

可选地,所述时间确定模块还用于:当所述第二时间间隔对应的时间起点不在所述第三时间间隔内时,确定查找不到对应的第一统计结果的第四时间间隔,其中,所述第四时间间隔小于所述第二时间间隔;

所述数据查找模块还用于:从所述第二内存区中读取与所述第四时间间隔对应的第一统计结果;

所述数据加载模块还用于:将所述数据查找模块查找到的与所述第四时间间隔对应的第一统计结果并加载至所述第一内存区。

可选地,所述数据统计模块还用于:根据查找到的所述第一统计结果创建数据统计任务;以及,将创建的数据统计任务分配至各个节点执行,根据所述各个节点的执行结果生成所述第二统计结果并发送至所述客户端。

此外,为实现上述目的,本发明还提供一种用户行为数据的统计方法,该用户行为数据的统计方法包括:

每间隔预设的第一时间间隔,从源数据库中读取应用在所述第一时间间隔内产生的用户行为数据并存储到基于内存的分布式存储系统;

从所述分布式存储系统中读取所述用户行为数据并加载到第一内存区,根据加载的所述用户行为数据生成第一统计结果并存储至所述第一内存区,以在接收到数据统计请求时,基于所述第一统计结果进行数据统计。

可选地,所述根据加载的所述用户行为数据生成第一统计结果并存储至所述第一内存区的步骤之后,所述用户行为数据的统计方法还包括步骤:

在接收到客户端发送的数据统计请求时,确定所述数据统计请求对应的第二时间间隔,其中,所述第二时间间隔大于或者等于所述第一时间间隔;

从所述第一内存区中查找属于所述第二时间间隔内的第一统计结果;

根据查找到的所述第一统计结果进行数据统计以获取第二统计结果并发送至所述客户端。

可选地,所述用户行为数据的统计方法还包括步骤:

在生成所述第一统计结果后,将所述第一统计结果持久化存储到与所述分布式存储系统对应的第二内存区中;

在检测到所述第一内存区所在的系统发生重启时,从所述第二内存区中读取预设的第三时间间隔内存储的第一统计结果并加载至所述第一内存区。

可选地,所述从所述第一内存区中查找属于所述第二时间间隔内的第一统计结果的步骤与所述根据查找到的所述第一统计结果进行数据统计以获取第二统计结果并发送至所述客户端的步骤之间,所述用户行为数据的统计方法还包括:

当所述第二时间间隔对应的时间起点不在所述第三时间间隔内时,确定查找不到对应的第一统计结果的第四时间间隔,其中,所述第四时间间隔小于所述第二时间间隔;

从所述第二内存区中读取与所述第四时间间隔对应的第一统计结果并加载至所述第一内存区。

可选地,所述根据查找到的所述第一统计结果进行数据统计以获取第二统计结果并发送至所述客户端的步骤包括:

根据查找到的所述第一统计结果创建数据统计任务;

将创建的数据统计任务分配至各个节点执行,根据所述各个节点的执行结果生成所述第二统计结果并发送至所述客户端。

本发明提出的用户行为数据的统计装置及方法,每间隔预设的第一时间间隔从源数据库中读取应用在该第一时间间隔内产生的用户行为数据存储到基于内存的分布式存储系统中,从上述分布式存储系统中读取用户行为数据加载到第一内存区,根据加载的用户行为数据生成第一统计结果存储到第一内存区,这样当接收到用户的数据统计请求时,就可以基于存储在第一内存区中的第一统计结果进行数据统计,也就是说,本发明的方案中,将从源数据库获取到的原始的用户行为数据先存储在基于内存的分布式存储系统中,从分布式存储系统中获取到原始的用户行为数据进行计算获取到第一统计结果并存储至第一内存区,将该统计结果作为后续数据统计的依据,上述数据存储与计算均是在内存中进行,极大地提高了数据统计的速度,以便于在接收到用户发送的数据统计请求时,能够快速地将统计结果返回给用户。

附图说明

图1为本发明用户行为数据的统计装置第一实施例的功能模块示意图;

图2为本发明用户行为数据的统计装置第一实施例中的计算机设备的构架示意图;

图3为本发明用户行为数据的统计方法第一实施例的流程图;

图4为本发明用户行为数据的统计方法第二实施例的流程图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明提供一种用户行为数据的统计装置。参照图1所示,为本发明用户行为数据的统计装置第一实施例的功能模块示意图。

在本实施例中,该用户行为数据的统计装置包括:

数据存储模块10,用于每间隔预设的第一时间间隔,从源数据库中读取应用在所述第一时间间隔内产生的用户行为数据并存储到基于内存的分布式存储系统;

数据加载模块20,用于从所述分布式存储系统中读取所述用户行为数据并加载到数据存储系统的第一内存区;

数据统计模块30,用于根据加载的所述用户行为数据生成第一统计结果并存储至所述第一内存区,以在接收到数据统计请求时,基于所述第一统计结果进行数据统计。

在本发明实施例中,应用收集用户使用该应用产生的用户行为数据并上报,将应用上报的用户行为数据存储到源数据库,在本实施例中,采用基于分布式文件存储的数据库,例如MongoDB,该数据库可以部署在单台机器上,也可以部署在多台机器上。应用可以实时地或者每间隔一定的时间将该时间间隔内产生的新的用户行为数据上报,例如,在每天的固定时间点,上报24小时内产生的用户行为数据。

本发明提出的用户行为数据的统计装置可以是基于部署有分布式计算框架的服务器集群,例如spark集群,将上述用于存储数据的分布式存储系统基于该计算框架部署。上述部署有MongoDB的机器可以是一台独立于本实施例的设备。其中,本发明采用的分布式存储系统是基于内存的,例如可以是Hadoop分布式存储系统、alluxio分布式存储系统等。此外,在本实施例中,spark集群与alluxio分布式存储系统可以分别基于不同的计算机集群进行部署,或者,在部署spark集群的计算机设备基础上部署alluxio分布式存储系统,其中,alluxio分布式存储系统为spark、集群提供服务接口。以下实施例中,以spark集群,基于spark集群进行部署的alluxio分布式存储系统为例,对本发明的方案进行说明。

参照图2所示,部署四台计算机作为spark集群,其中的一台计算机作为spark master,负责接收、处理以及分配任务,其余的三台计算机作为spark worker,负责处理任务;然后基于该spark集群部署alluxio分布式存储系统,其中,作为spark master的计算机同时作为alluxio master,其余的三台计算机作为alluxio worker,每一台计算机中的内存均划分为两个内存区,包括供spark集群使用的第一内存区和供alluxio分布式存储系统使用的第二内存区。

此外,alluxio分布式存储系统中的文件是可以在整个计算机集群中共享的,也就是说,每台spark计算机都可以直接访问alluxio分布式存储系统中任意一台alluxio分布式存储系统中的任意一台机器并读取文件。

以下实施例中,以第一时间间隔为一天说明,在每天特定的时间点,分布式存储系统从MongoDB中读取应用在该特定的时间点之前二十四小时内产生的用户行为数据并存储到为其划分的第二内存区,进一步地,可以将用户行为数据持久化的存储到第二内存区,这样,即使数据统计服务器集群进行重启,持久化存储在第二内存区中的数据也不会丢失。

Spark master可以定时地从分布式存储系统中读取存储的用户行为数据并存储到第一内存区,在读取数据时,以上述第一时间间隔的用户行为数据为单位,并对这第一时间间隔内的用户行为数据进行统计,生成第一统计结果存储到第一内存区,这样,数据统计服务器在接收到客户端发送的数据获取请求时,就可以直接从第一内存区中获取第一统计结果进行进一步地统计以获取统计结果并发送至客户端。

作为一种实施方式,该用户行为数据的统计装置还包括:

时间确定模块,用于在接收到客户端发送的数据统计请求时,确定所述数据统计请求对应的第二时间间隔,其中,所述第二时间间隔大于或者等于所述第一时间间隔;

数据查找模块,用于从所述第一内存区中查找属于所述第二时间间隔内的第一统计结果;

数据统计模块30还用于:根据查找到的所述第一统计结果进行数据统计以获取第二统计结果并发送至所述客户端。

本实施例中提出的数据统计装置可以用于进行一个或者多个应用的用户行为数据的统计,上述MongoDB中可以存储多个应用的用户行为数据。客户端在发送数据统计请求中,在该数据统计请求中携带过滤条件,该过滤条件中包含有需要统计的应用的名称以及需要统计的时间间隔,即第二时间间隔和应用名称。在其他实施例中,还可以进一步地在对用户行为数据进行统计生成第一统计结果时,按照预先设置的统计分析规则统计各种类型的用户行为数据,例如用户在该应用的停留时间、使用次数、使用相隔天数等等,同时,在用户发送的数据统计请求中说明需要获取的用户行为数据的类型,在查找第一统计结果时,查找该类型的用户行为数据。

上述第一统计结果是按照一天为单位的用户行为数据的计算结果,用户发送的数据统计请求中要求的第二时间间隔一般大于或者等于第一时间间隔,例如,用户可能想要对一个月内的用户行为数据进行统计,则spark集群需要从内存中读取一个月内的第一统计结果,并进行计算,以获取到一个月内的数据统计结果,即第二统计结果,将该第二统计结果发送给客户端。

具体地,为了提高数据计算的速度,作为一种实施方式,数据统计模块还用于:根据查找到的所述第一统计结果创建数据统计任务;以及,将创建的数据统计任务分配至所述spark集群中对应的各个节点执行,根据所述各个节点的执行结果生成所述第二统计结果并发送至所述客户端。其中,上述spark集群中对应的各个节点,即spark master以及各台spark worker对创建的数据统计任务进行处理,spark master基于各个节点的统计结果生成第二统计结果返回给客户端。

进一步地,该实施例中的spark集群以及分布式存储系统中的计算机数量均可以根据数据量以及计算量的需要进行动态的扩展,可以预先设置多台计算机作为备用,当需要存储的数据量过大,和/或需要计算的数据量过大时,可以增加数据统计服务器集群中的计算机的数量,将备用的计算机添加到spark集群和/或分布式存储系统中,并根据需要定需要增加的计算机的数量。

本实施例提出的用户行为数据的统计装置,每间隔预设的第一时间间隔从源数据库中读取应用在该第一时间间隔内产生的用户行为数据存储到基于内存的分布式存储系统中,从上述分布式存储系统中读取用户行为数据加载到第一内存区,根据加载的用户行为数据生成第一统计结果存储到第一内存区,这样当接收到用户的数据统计请求时,就可以基于存储在第一内存区中的第一统计结果进行数据统计,也就是说,本发明的方案中,将从源数据库获取到的原始的用户行为数据先存储在基于内存的分布式存储系统中,从分布式存储系统中获取到原始的用户行为数据进行计算获取到第一统计结果并存储至第一内存区,将该统计结果作为后续数据统计的依据,上述数据存储与计算均是在内存中进行,极大地提高了数据统计的速度,以便于在接收到用户发送的数据统计请求时,能够快速地将统计结果返回给用户。

基于第一实施例提出本发明用户行为数据的统计装置的第二实施例。在本实施例中,数据存储模块10还用于:在生成所述第一统计结果后,将所述第一统计结果持久化存储到与所述分布式存储系统对应的第二内存区中;

数据加载模块30还用于:在检测到所述第一内存区所在的系统发生重启时,从所述第二内存区中读取预设的第三时间间隔内存储的第一统计结果并加载至所述第一内存区。

在现有技术中,计算得到第一统计结果时,会把结果文件持久化的存储到本地磁盘,在服务器重启时,需要从本地磁盘将读取持久化的结果文件并加载到内存中,但是当数据量比较大时,从本次磁盘读取数据的速度会非常慢,导致服务器重启的速度也非常慢。

在该实施例中,数据计算系统将生成的第一统计结果持久化的存储到分布式存储系统中。由于当系统发生重启时,数据计算系统存储在第一内存区中数据会发生丢失,因此,可以从第二内存区中读取一定时间间隔内的存储的第一统计结果,并加载到第一内存区,该时间间隔为第三时间间隔,用户可以根据需要预先设置,例如,可以是三个月。以下列举一个具体使用场景进行说明。数据计算系统每天特定的时间点对应用在二十四小时内产生的用户行为数据进行统计得到第一统计结果,存储在分布式存储系统的第二内存区以及本身的第一内存区。当服务器重启时,数据计算系统从第二内存区中读取最近三个月内存储的第一统计结果并加载到第一内存区中,以供接收到用户的数据统计请求时,进行数据统计。

进一步地,作为一种实施方式,时间确定模块40还用于:当所述第二时间间隔对应的时间起点不在所述第三时间间隔内时,确定查找不到对应的第一统计结果的第四时间间隔,其中,所述第四时间间隔小于所述第二时间间隔;数据查找模块50还用于:从所述第二内存区中读取与所述第四时间间隔对应的第一统计结果;数据加载模块20还用于:将所述数据查找模块查找到的与所述第四时间间隔对应的第一统计结果并加载至所述第一内存区。

在该实施方式中,当第二时间间隔对应的时间起点不在第三时间间隔内时,判定接收到的数据统计请求所要求的时间间隔超出了数据计算系统的第一内存中所存储的第一统计结果的时间间隔,则数据统计请求对应的第二时间间隔中会有部分时间间隔查找不到对应的第一统计结果,此时,确定出查找不到对应的第一统计结果的这部分时间间隔,作为第四时间间隔,从分布式存储系统的第二内存区中查找对应的第一统计结果,并加载到第一内存区中以进行数据统计获取到第二统计结果。

本发明还提出一种用户行为数据的统计方法。

参照图3所示,为本发明用户行为数据的统计方法第一实施例的流程图。

在该实施例中,该用户行为数据的统计方法包括:

步骤S10,每间隔预设的第一时间间隔,从源数据库中读取应用在所述第一时间间隔内产生的用户行为数据并存储到基于内存的分布式存储系统。

步骤S20,从所述分布式存储系统中读取所述用户行为数据并加载到第一内存区,根据加载的所述用户行为数据生成第一统计结果并存储至所述第一内存区,以在接收到数据统计请求时,基于所述第一统计结果进行数据统计。

在本发明实施例中,应用收集用户使用该应用产生的用户行为数据并上报,将应用上报的用户行为数据存储到源数据库,在本实施例中,采用基于分布式文件存储的数据库,例如MongoDB,该数据库可以部署在单台机器上,也可以部署在多台机器上。应用可以实时地或者每间隔一定的时间将该时间间隔内产生的新的用户行为数据上报,例如,在每天的固定时间点,上报24小时内产生的用户行为数据。

本发明提出的用户行为数据的统计方法可以基于分布式计算框架实现,例如spark集群,将上述用于存储数据的分布式存储系统基于该计算框架部署。上述部署有MongoDB的机器可以是一台独立于本实施例的设备。其中,本发明采用的分布式存储系统是基于内存的,例如可以是Hadoop分布式存储系统、alluxio分布式存储系统等。此外,在本实施例中,spark集群与alluxio分布式存储系统可以分别基于不同的计算机集群进行部署,或者,在部署spark集群的计算机设备基础上部署alluxio分布式存储系统,其中,alluxio分布式存储系统为spark、集群提供服务接口。以下实施例中,以spark集群,基于spark集群进行部署的alluxio分布式存储系统为例,对本发明的方案进行说明。

参照图2所示,部署四台计算机作为spark集群,其中的一台计算机作为spark master,负责接收、处理以及分配任务,其余的三台计算机作为spark worker,负责处理任务;然后基于该spark集群部署alluxio分布式存储系统,其中,作为spark master的计算机同时作为alluxio master,其余的三台计算机作为alluxio worker,每一台计算机中的内存均划分为两个内存区,包括供spark集群使用的第一内存区和供alluxio分布式存储系统使用的第二内存区。

此外,alluxio分布式存储系统中的文件是可以在整个计算机集群中共享的,也就是说,每台spark计算机都可以直接访问alluxio分布式存储系统中任意一台alluxio分布式存储系统中的任意一台机器并读取文件。

以下实施例中,以第一时间间隔为一天说明,在每天特定的时间点,分布式存储系统从MongoDB中读取应用在该特定的时间点之前二十四小时内产生的用户行为数据并存储到为其划分的第二内存区,进一步地,可以将用户行为数据持久化的存储到第二内存区,这样,即使数据统计服务器集群进行重启,持久化存储在第二内存区中的数据也不会丢失。

Spark master可以定时地从分布式存储系统中读取存储的用户行为数据并存储到第一内存区,在读取数据时,以上述第一时间间隔的用户行为数据为单位,并对这第一时间间隔内的用户行为数据进行统计,生成第一统计结果存储到第一内存区,这样,数据统计服务器在接收到客户端发送的数据获取请求时,就可以直接从第一内存区中获取第一统计结果进行进一步地统计以获取统计结果并发送至客户端。

作为一种实施方式,在步骤S20之后,该用户行为数据的统计方法还包括以下步骤:

在接收到客户端发送的数据统计请求时,确定所述数据统计请求对应的第二时间间隔,其中,所述第二时间间隔大于或者等于所述第一时间间隔;

从所述第一内存区中查找属于所述第二时间间隔内的第一统计结果;

根据查找到的所述第一统计结果进行数据统计以获取第二统计结果并发送至所述客户端。

本实施例中提出的数据统计服务器可以用于进行一个或者多个应用的用户行为数据的统计,上述MongoDB中可以存储多个应用的用户行为数据。客户端在发送数据统计请求中,在该数据统计请求中携带过滤条件,该过滤条件中包含有需要统计的应用的名称以及需要统计的时间间隔,即第二时间间隔和应用名称。在其他实施例中,还可以进一步地在对用户行为数据进行统计生成第一统计结果时,按照预先设置的统计分析规则统计各种类型的用户行为数据,例如用户在该应用的停留时间、使用次数、使用相隔天数等等,同时,在用户发送的数据统计请求中说明需要获取的用户行为数据的类型,在查找第一统计结果时,查找该类型的用户行为数据。

上述第一统计结果是按照一天为单位的用户行为数据的计算结果,用户发送的数据统计请求中要求的第二时间间隔一般大于或者等于第一时间间隔,例如,用户可能想要对一个月内的用户行为数据进行统计,则spark集群需要从内存中读取一个月内的第一统计结果,并进行计算,以获取到一个月内的数据统计结果,即第二统计结果,将该第二统计结果发送给客户端。

具体地,为了提高数据计算的速度,作为一种实施方式,根据查找到的所述第一统计结果进行数据统计以获取第二统计结果并发送至所述客户端的步骤包括:根据查找到的所述第一统计结果创建数据统计任务;根据预置任务分配规则将创建的数据统计任务分配至所述spark集群中对应的各个节点执行,根据所述各个节点的执行结果生成所述第二统计结果并发送至所述客户端。其中,上述spark集群中对应的各个节点,即spark master以及各台spark worker对创建的数据统计任务进行处理,spark master基于各个节点的统计结果生成第二统计结果返回给客户端。

进一步地,该实施例中的spark集群以及分布式存储系统中的计算机数量均可以根据数据量以及计算量的需要进行动态的扩展,可以预先设置多台计算机作为备用,当需要存储的数据量过大,和/或需要计算的数据量过大时,可以增加数据统计服务器集群中的计算机的数量,将备用的计算机添加到spark集群和/或分布式存储系统中,并根据需要定需要增加的计算机的数量。

本实施例提出的用户行为数据的统计方法,每间隔预设的第一时间间隔从源数据库中读取应用在该第一时间间隔内产生的用户行为数据存储到基于内存的分布式存储系统中,从上述分布式存储系统中读取用户行为数据加载到第一内存区,根据加载的用户行为数据生成第一统计结果存储到第一内存区,这样当接收到用户的数据统计请求时,就可以基于存储在第一内存区中的第一统计结果进行数据统计,也就是说,本发明的方案中,将从源数据库获取到的原始的用户行为数据先存储在基于内存的分布式存储系统中,从分布式存储系统中获取到原始的用户行为数据进行计算获取到第一统计结果并存储至第一内存区,将该统计结果作为后续数据统计的依据,上述数据存储与计算均是在内存中进行,极大地提高了数据统计的速度,以便于在接收到用户发送的数据统计请求时,能够快速地将统计结果返回给用户。

基于第一实施例提出本发明用户行为数据的统计方法的第二实施例。参照图4所示,在本实施例中,该用户行为数据的统计方法还包括:

步骤S30,在生成所述第一统计结果后,将所述第一统计结果持久化存储到与所述分布式存储系统对应的第二内存区中;

步骤S40,在检测到所述第一内存区所在的系统发生重启时,从所述第二内存区中读取预设的第三时间间隔内存储的第一统计结果并加载至所述第一内存区。

在现有技术中,计算得到第一统计结果时,会把结果文件持久化的存储到本地磁盘,在服务器重启时,需要从本地磁盘将读取持久化的结果文件并加载到内存中,但是当数据量比较大时,从本次磁盘读取数据的速度会非常慢,导致服务器重启的速度也非常慢。

在该实施例中,数据计算系统将生成的第一统计结果持久化的存储到分布式存储系统中。由于当系统发生重启时,数据计算系统存储在第一内存区中数据会发生丢失,因此,可以从第二内存区中读取一定时间间隔内的存储的第一统计结果,并加载到第一内存区,该时间间隔为第三时间间隔,用户可以根据需要预先设置,例如,可以是三个月。以下列举一个具体使用场景进行说明。数据计算系统每天特定的时间点对应用在二十四小时内产生的用户行为数据进行统计得到第一统计结果,存储在分布式存储系统的第二内存区以及本身的第一内存区。当服务器重启时,数据计算系统从第二内存区中读取最近三个月内存储的第一统计结果并加载到第一内存区中,以供接收到用户的数据统计请求时,进行数据统计。

进一步地,作为一种实施方式,数据计算系统从所述第一内存区中查找属于所述第二时间间隔内的第一统计结果的步骤与所述根据查找到的所述第一统计结果进行数据统计以获取第二统计结果并发送至所述客户端的步骤之间,所述用户行为数据的统计方法还包括:

当所述第二时间间隔对应的时间起点不在所述第三时间间隔内时,确定查找不到对应的第一统计结果的第四时间间隔,其中,所述第四时间间隔小于所述第二时间间隔;从所述第二内存区中读取与所述第四时间间隔对应的第一统计结果并加载至所述第一内存区。

在该实施方式中,当第二时间间隔对应的时间起点不在第三时间间隔内时,判定接收到的数据统计请求所要求的时间间隔超出了数据计算系统的第一内存中所存储的第一统计结果的时间间隔,则数据统计请求对应的第二时间间隔中会有部分时间间隔查找不到对应的第一统计结果,此时,确定出查找不到对应的第一统计结果的这部分时间间隔,作为第四时间间隔,从分布式存储系统的第二内存区中查找与其对应的第一统计结果,并加载到第一内存区中以进行数据统计获取到第二统计结果。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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