CN106682167B - 用户行为数据的统计装置及方法 - Google Patents

用户行为数据的统计装置及方法 Download PDF

Info

Publication number
CN106682167B
CN106682167B CN201611222052.9A CN201611222052A CN106682167B CN 106682167 B CN106682167 B CN 106682167B CN 201611222052 A CN201611222052 A CN 201611222052A CN 106682167 B CN106682167 B CN 106682167B
Authority
CN
China
Prior art keywords
data
time interval
user behavior
statistical result
statistical
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.)
Active
Application number
CN201611222052.9A
Other languages
English (en)
Other versions
CN106682167A (zh
Inventor
彭小春
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SHANDONG KUNZHONG INFORMATION TECHNOLOGY Co.,Ltd.
Original Assignee
Shandong Kunzhong Information Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shandong Kunzhong Information Technology Co ltd filed Critical Shandong Kunzhong Information Technology Co ltd
Priority to CN201611222052.9A priority Critical patent/CN106682167B/zh
Publication of CN106682167A publication Critical patent/CN106682167A/zh
Application granted granted Critical
Publication of CN106682167B publication Critical patent/CN106682167B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries

Abstract

本发明公开了一种用户行为数据的统计装置,该装置包括:数据存储模块,用于每间隔预设的第一时间间隔,从源数据库中读取应用在所述第一时间间隔内产生的用户行为数据并存储到基于内存的分布式存储系统;数据加载模块,用于从所述分布式存储系统中读取所述用户行为数据并加载到数据存储系统的第一内存区;数据统计模块,用于根据加载的所述用户行为数据生成第一统计结果并存储至所述第一内存区,以在接收到数据统计请求时,基于所述第一统计结果进行数据统计。本发明还提出一种用户行为数据的统计方法。本发明解决了现有的对应用的用户行为数据统计速度慢的技术问题,能够快速地将统计结果返回给用户。

Description

用户行为数据的统计装置及方法
技术领域
本发明涉及大数据统计技术领域,尤其涉及一种用户行为数据的统计装置及方法。
背景技术
各大应用上线之后,如果想要知道用户对该应用的使用情况,使产品开发人员对用户行为的了解更加全面与完整,需要对用户行为数据进行统计,即数据统计。为了达到统计的目的,需要应用收集信息,并上报到数据统计服务器,由数据统计服务器进行计算,并把结果显示在页面。一般离线数据只统计固定时间差的数据,例如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集群,其中的一台计算机作为sparkmaster,负责接收、处理以及分配任务,其余的三台计算机作为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集群,其中的一台计算机作为sparkmaster,负责接收、处理以及分配任务,其余的三台计算机作为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,在检测到所述第一内存区所在的系统发生重启时,从所述第二内存区中读取预设的第三时间间隔内存储的第一统计结果并加载至所述第一内存区。
在现有技术中,计算得到第一统计结果时,会把结果文件持久化的存储到本地磁盘,在服务器重启时,需要从本地磁盘将读取持久化的结果文件并加载到内存中,但是当数据量比较大时,从本次磁盘读取数据的速度会非常慢,导致服务器重启的速度也非常慢。
在该实施例中,数据计算系统将生成的第一统计结果持久化的存储到分布式存储系统中。由于当系统发生重启时,数据计算系统存储在第一内存区中数据会发生丢失,因此,可以从第二内存区中读取一定时间间隔内的存储的第一统计结果,并加载到第一内存区,该时间间隔为第三时间间隔,用户可以根据需要预先设置,例如,可以是三个月。以下列举一个具体使用场景进行说明。数据计算系统每天特定的时间点对应用在二十四小时内产生的用户行为数据进行统计得到第一统计结果,存储在分布式存储系统的第二内存区以及本身的第一内存区。当服务器重启时,数据计算系统从第二内存区中读取最近三个月内存储的第一统计结果并加载到第一内存区中,以供接收到用户的数据统计请求时,进行数据统计。
进一步地,作为一种实施方式,数据计算系统从所述第一内存区中查找属于所述第二时间间隔内的第一统计结果的步骤与所述根据查找到的所述第一统计结果进行数据统计以获取第二统计结果并发送至所述客户端的步骤之间,所述用户行为数据的统计方法还包括:
当所述第二时间间隔对应的时间起点不在所述第三时间间隔内时,确定查找不到对应的第一统计结果的第四时间间隔,其中,所述第四时间间隔小于所述第二时间间隔;从所述第二内存区中读取与所述第四时间间隔对应的第一统计结果并加载至所述第一内存区。
在该实施方式中,当第二时间间隔对应的时间起点不在第三时间间隔内时,判定接收到的数据统计请求所要求的时间间隔超出了数据计算系统的第一内存中所存储的第一统计结果的时间间隔,则数据统计请求对应的第二时间间隔中会有部分时间间隔查找不到对应的第一统计结果,此时,确定出查找不到对应的第一统计结果的这部分时间间隔,作为第四时间间隔,从分布式存储系统的第二内存区中查找与其对应的第一统计结果,并加载到第一内存区中以进行数据统计获取到第二统计结果。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (6)

1.一种用户行为数据的统计装置,其特征在于,所述用户行为数据的统计装置包括:
数据存储模块,用于每间隔预设的第一时间间隔,从源数据库中读取应用在所述第一时间间隔内产生的用户行为数据并存储到基于内存的分布式存储系统;
数据加载模块,用于从所述分布式存储系统中读取所述用户行为数据并加载到数据存储系统的第一内存区;
数据统计模块,用于根据加载的所述用户行为数据生成第一统计结果并存储至所述第一内存区,以在接收到数据统计请求时,基于所述第一统计结果进行数据统计;
时间确定模块,用于在接收到客户端发送的数据统计请求时,确定所述数据统计请求对应的第二时间间隔,其中,所述第二时间间隔大于或者等于所述第一时间间隔;
数据查找模块,用于基于所述数据存储系统,从所述第一内存区中查找属于所述第二时间间隔内的第一统计结果;
所述数据统计模块还用于:根据查找到的所述第一统计结果进行数据统计以获取第二统计结果并发送至所述客户端;
所述数据加载模块还用于:在检测到所述第一内存区所在的系统发生重启时,从第二内存区中读取预设的第三时间间隔内存储的第一统计结果并加载至所述第一内存区。
2.根据权利要求1所述的用户行为数据的统计装置,其特征在于,所述时间确定模块还用于:当所述第二时间间隔对应的时间起点不在所述第三时间间隔内时,确定查找不到对应的第一统计结果的第四时间间隔,其中,所述第四时间间隔小于所述第二时间间隔;
所述数据查找模块还用于:从所述第二内存区中读取与所述第四时间间隔对应的第一统计结果;
所述数据加载模块还用于:将所述数据查找模块查找到的与所述第四时间间隔对应的第一统计结果并加载至所述第一内存区。
3.根据权利要求1或2所述的用户行为数据的统计装置,其特征在于,所述数据统计模块还用于:根据查找到的所述第一统计结果创建数据统计任务;以及,将创建的数据统计任务分配至各个节点执行,根据所述各个节点的执行结果生成所述第二统计结果并发送至所述客户端。
4.一种用户行为数据的统计方法,其特征在于,所述用户行为数据的统计方法包括:
每间隔预设的第一时间间隔,从源数据库中读取应用在所述第一时间间隔内产生的用户行为数据并存储到基于内存的分布式存储系统;
从所述分布式存储系统中读取所述用户行为数据并加载到第一内存区,根据加载的所述用户行为数据生成第一统计结果并存储至所述第一内存区;
在生成所述第一统计结果后,将所述第一统计结果持久化存储到与所述分布式存储系统对应的第二内存区中;
在检测到所述第一内存区所在的系统发生重启时,从所述第二内存区中读取预设的第三时间间隔内存储的第一统计结果并加载至所述第一内存区;
在接收到客户端发送的数据统计请求时,确定所述数据统计请求对应的第二时间间隔,其中,所述第二时间间隔大于或者等于所述第一时间间隔;
从所述第一内存区中查找属于所述第二时间间隔内的第一统计结果;
根据查找到的所述第一统计结果进行数据统计以获取第二统计结果并发送至所述客户端。
5.根据权利要求4所述的用户行为数据的统计方法,其特征在于,所述从所述第一内存区中查找属于所述第二时间间隔内的第一统计结果的步骤与所述根据查找到的所述第一统计结果进行数据统计以获取第二统计结果并发送至所述客户端的步骤之间,所述用户行为数据的统计方法还包括:
当所述第二时间间隔对应的时间起点不在所述第三时间间隔内时,确定查找不到对应的第一统计结果的第四时间间隔,其中,所述第四时间间隔小于所述第二时间间隔;
从所述第二内存区中读取与所述第四时间间隔对应的第一统计结果并加载至所述第一内存区。
6.根据权利要求4或5所述的用户行为数据的统计方法,其特征在于,所述根据查找到的所述第一统计结果进行数据统计以获取第二统计结果并发送至所述客户端的步骤包括:
根据查找到的所述第一统计结果创建数据统计任务;
将创建的数据统计任务分配至各个节点执行,根据所述各个节点的执行结果生成所述第二统计结果并发送至所述客户端。
CN201611222052.9A 2016-12-26 2016-12-26 用户行为数据的统计装置及方法 Active CN106682167B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611222052.9A CN106682167B (zh) 2016-12-26 2016-12-26 用户行为数据的统计装置及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611222052.9A CN106682167B (zh) 2016-12-26 2016-12-26 用户行为数据的统计装置及方法

Publications (2)

Publication Number Publication Date
CN106682167A CN106682167A (zh) 2017-05-17
CN106682167B true CN106682167B (zh) 2020-08-14

Family

ID=58870708

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611222052.9A Active CN106682167B (zh) 2016-12-26 2016-12-26 用户行为数据的统计装置及方法

Country Status (1)

Country Link
CN (1) CN106682167B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107220348B (zh) * 2017-05-27 2020-10-27 浪潮云信息技术股份公司 一种基于Flume与Alluxio的数据收集方法
CN107797907A (zh) * 2017-10-30 2018-03-13 江西博瑞彤芸科技有限公司 基于用户行为的行为数据的统计方法
CN109634735A (zh) * 2018-12-18 2019-04-16 郑州云海信息技术有限公司 一种调度Pod的方法及装置
CN111666260A (zh) * 2019-03-08 2020-09-15 杭州海康威视数字技术股份有限公司 数据处理方法及装置
CN113806090B (zh) * 2021-09-17 2023-05-26 东云睿连(武汉)计算技术有限公司 一种基于Alluxio的大数据作业运行方法和系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102681886A (zh) * 2011-04-14 2012-09-19 天脉聚源(北京)传媒科技有限公司 一种移动设备上用户行为追踪的方法和系统
CN104331421A (zh) * 2014-10-14 2015-02-04 安徽四创电子股份有限公司 一种大数据的高效处理方法及系统
CN104579753A (zh) * 2014-12-15 2015-04-29 腾讯科技(深圳)有限公司 用户数据统计方法、接入层服务器和统计服务器
CN104657435A (zh) * 2015-01-30 2015-05-27 杭州华三通信技术有限公司 一种应用数据的存储管理方法和网络管理系统
US9110975B1 (en) * 2006-11-02 2015-08-18 Google Inc. Search result inputs using variant generalized queries
CN104869009A (zh) * 2014-06-16 2015-08-26 青岛新闻网络传播有限公司 网站数据统计的系统和方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9110975B1 (en) * 2006-11-02 2015-08-18 Google Inc. Search result inputs using variant generalized queries
CN102681886A (zh) * 2011-04-14 2012-09-19 天脉聚源(北京)传媒科技有限公司 一种移动设备上用户行为追踪的方法和系统
CN104869009A (zh) * 2014-06-16 2015-08-26 青岛新闻网络传播有限公司 网站数据统计的系统和方法
CN104331421A (zh) * 2014-10-14 2015-02-04 安徽四创电子股份有限公司 一种大数据的高效处理方法及系统
CN104579753A (zh) * 2014-12-15 2015-04-29 腾讯科技(深圳)有限公司 用户数据统计方法、接入层服务器和统计服务器
CN104657435A (zh) * 2015-01-30 2015-05-27 杭州华三通信技术有限公司 一种应用数据的存储管理方法和网络管理系统

Also Published As

Publication number Publication date
CN106682167A (zh) 2017-05-17

Similar Documents

Publication Publication Date Title
CN106682167B (zh) 用户行为数据的统计装置及方法
US20160142369A1 (en) Service addressing in distributed environment
CN106407207B (zh) 一种实时新增数据更新方法和装置
US9684689B2 (en) Distributed parallel processing system having jobs processed by nodes based on authentication using unique identification of data
CN110134738B (zh) 分布式存储系统资源预估方法、装置
CN107038194B (zh) 一种页面跳转方法和装置
CN112579692B (zh) 一种数据同步方法、装置、系统、设备及存储介质
CN112527848B (zh) 基于多数据源的报表数据查询方法、装置、系统及存储介质
US10558391B2 (en) Data processing system and data processing method
CN115114359B (zh) 用户数据处理方法及装置
US20150120697A1 (en) System and method for analysis of a database proxy
CN110647459B (zh) 应用测试方法及装置
CN107092556B (zh) 测试方法、装置及设备
CN112416974A (zh) 一种数据处理方法、装置、设备及可读存储介质
CN110333984B (zh) 接口异常检测方法、装置、服务器及系统
CN115374109B (zh) 数据访问方法、装置、计算设备和系统
CN108121733B (zh) 一种数据的查询方法及装置
CN110928941A (zh) 一种数据分片抽取方法及装置
CN115686746A (zh) 访问方法、任务处理方法、计算设备及计算机存储介质
CN107451142B (zh) 在数据库中写入和查询数据的方法与装置及其管理系统和计算机可读存储介质
CN106570193B (zh) 一种时序大数据的加载方法
CN114860432A (zh) 一种内存故障的信息确定方法及装置
US9483560B2 (en) Data analysis control
CN116166737A (zh) 资源拓扑图的生成方法、装置、电子设备及可读存储介质
CN111221847B (zh) 监控数据存储方法、装置及计算机可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200721

Address after: 276000 Shandong Linyi hi tech Zone Innovation Building A510 room

Applicant after: SHANDONG KUNZHONG INFORMATION TECHNOLOGY Co.,Ltd.

Address before: 518057 Guangdong Province, Shenzhen high tech Zone of Nanshan District City, No. 9018 North Central Avenue's innovation building A, 6-8 layer, 10-11 layer, B layer, C District 6-10 District 6 floor

Applicant before: NUBIA TECHNOLOGY Co.,Ltd.

GR01 Patent grant
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Statistical device and method of user behavior data

Effective date of registration: 20220628

Granted publication date: 20200814

Pledgee: Shandong Linyi Luozhuang Rural Commercial Bank Co.,Ltd.

Pledgor: SHANDONG KUNZHONG INFORMATION TECHNOLOGY CO.,LTD.

Registration number: Y2022980009169

PC01 Cancellation of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20230710

Granted publication date: 20200814

Pledgee: Shandong Linyi Luozhuang Rural Commercial Bank Co.,Ltd.

Pledgor: SHANDONG KUNZHONG INFORMATION TECHNOLOGY CO.,LTD.

Registration number: Y2022980009169