一种数据统计方法和装置制造方法及图纸

技术编号:14337318 阅读:85 留言:0更新日期:2017-01-04 10:34
本发明专利技术公开了一种数据统计方法和装置。该方法包括:接收来自客户端的日志数据,并在日志数据中提取用户标识;查询数据库中是否存在用户标识;若是,则在日志数据中提取版本标识,并根据版本标识,更新数据库中的统计数据;若否,则根据日志数据,更新数据库中的统计数据。本发明专利技术当首次接收到某一用户标识的日志数据时,在数据库中添加该用户标识对应的用户数据,并更新计数器;当再次接收到相同用户标识的用户数据时,根据乐观锁版本号来判断是否可以更新数据库中对应的用户数据以及计数器。本发明专利技术可以在数据库中进行数据统计,在内存中仅进行逻辑运算,降低了对内存的依赖性,减少了对内存的占用率。

【技术实现步骤摘要】

本专利技术涉及计算机
,特别是涉及一种数据统计方法和装置
技术介绍
随着应用程序(Application,简称APP)的普及度越来越高,对于APP的用户数据的统计分析也越来越多。在现有技术中,可以从新增用户、活跃用户、使用时长等多个维度对用户数据进行统计,研发人员需要根据产品需求,预先确定好每个统计维度的独立访客(uniquevisitor,简称UV)集合、访问量(PageView,简称PV)计数器,UV集合通常使用Set集合。在处理用户数据时,根据用户属性的不同,将数据分别放入到相应统计维度的集合或者计数器中,最后以时间为节点切换新的集合和计数器,原来的集合和计数器不再有数据写入,进而完成一个时段的实时数据统计。但是,现有数据统计方式是基于内存实现的,对内存的要求较高,在处理大数据时,会不断的扩大内存的占用率,最终内存耗尽导致程序报错或者崩溃,而且一旦遇到服务器硬件故障,内存的数据将会丢失。
技术实现思路
本专利技术要解决的技术问题是提供一种数据统计方法和装置,用以解决现有数据统计方式对内存的依赖性高的问题。针对上述技术问题,本专利技术是通过以下技术方案来解决的。本专利技术提供了一种数据统计方法,包括:接收来自客户端的日志数据,并在所述日志数据中提取用户标识;查询数据库中是否存在所述用户标识;若是,则在所述日志数据中提取版本标识,并根据所述版本标识,更新所述数据库中的统计数据;若否,则根据所述日志数据,更新所述数据库中的统计数据。其中,所述根据所述版本标识,更新所述数据库中的统计数据,包括:在提取的所述版本标识符合数据更新条件的情况下,对所述数据库中的日在线计数器进行累加;以及根据提取的所述版本标识,对所述数据库中所述用户标识对应的版本标识进行更新。其中,所述版本标识为最后在线时间。其中,所述数据更新条件为:在所述日志数据中提取的最后在线时间晚于所述数据库中所述用户标识对应的最后在线时间。其中,所述根据所述日志数据,更新所述数据库中的统计数据,包括:对所述数据库中的日在线计数器和新增用户计数器分别进行累加;以及,在所述数据库中初始化用户数据;所述用户数据包括从所述日志数据中提取出的用户标识和版本标识。本专利技术还提供了一种数据统计装置,包括:接收和提取模块,用于接收来自客户端的日志数据,并在所述日志数据中提取用户标识;查询模块,用于查询数据库中是否存在所述用户标识;第一更新模块,用于在所述查询模块查询到所述用户标识的情况下,调用所述接收和提取模块在所述日志数据中提取版本标识,并根据所述接收和提取模块提取出的所述版本标识,更新所述数据库中的统计数据;第二更新模块,用于在所述查询模块没有查询到所述用户标识的情况下,根据所述日志数据,更新所述数据库中的统计数据。其中,所述第一更新模块用于:在提取的所述版本标识符合数据更新条件的情况下,对所述数据库中的日在线计数器进行累加;以及根据提取的所述版本标识,对所述数据库中所述用户标识对应的版本标识进行更新。其中,所述版本标识为最后在线时间。其中,所述数据更新条件为:在所述日志数据中提取的最后在线时间晚于所述数据库中所述用户标识对应的最后在线时间。其中,所述第二更新模块用于:对所述数据库中的日在线计数器和新增用户计数器分别进行累加;以及,在所述数据库中初始化用户数据;所述用户数据包括从所述日志数据中提取出的用户标识和版本标识。本专利技术有益效果如下:本专利技术当首次接收到某一用户标识的日志数据时,在NoSQL数据库中添加该用户标识对应的用户数据,并更新计数器;当再次接收到相同用户标识的用户数据时,根据乐观锁版本号来判断是否可以更新NoSQL数据库中对应的用户数据以及计数器。本专利技术可以在NoSQL数据库中进行数据统计,在内存中仅进行逻辑运算,降低了对内存的依赖性,减少了对内存的占用率。附图说明图1是根据本专利技术一实施例的数据统计方法的流程图;图2是根据本专利技术一实施例的用户数据的数据结构示意图;图3是根据本专利技术一实施例的数据统计装置的结构图。具体实施方式本专利技术应用的数据统计系统架构包括数据层、传输层、计算层和展示层。本专利技术在计算层实现。本专利技术在数据库中记录用户数据,并且将用户最后在线时间作为用户数据的版本标识,在接收到用户数据时,根据版本标识对数据库中的用户数据进行更新,使数据存储和运算分离,降低了实时数据统计对内存的依赖性,提高了数据可靠性,并在服务器的运算能力不够用时,提供横向扩展的能力。以下结合附图以及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不限定本专利技术。本专利技术实施例提供了一种数据统计方法。如图1所示,图1是根据本专利技术一实施例的数据统计方法的流程图。本实施例的执行主体为位于服务器系统架构的计算层。步骤S110,接收来自客户端的日志数据,在该日志数据中提取用户标识。日志数据是客户端侧记录的工作日志。在日志数据中包括:用户标识、版本标识、用户注册日期等。用户标识为用户唯一标识。版本标识例如是最后在线时间。步骤S120,查询数据库中是否存在所述用户标识。若是,则执行步骤S130;若否,则执行步骤S140。数据库用于记录统计数据。该数据库位于服务器系统架构的计算层。数据库可以是非关系型数据库(NotonlySQL,简称NoSQL)。NoSQL数据库在主键查询时受数据量的影响较小。统计数据包括:用户数据和计数器。用户数据包括但不限于:用户标识、版本标识、用户注册日期。其中,用户标识作为主键,如图2所示的数据结构,数据实体即为用户数据,PK(PrimaryKey)表示主键,userid为用户标识、version为版本标识、onlineTime为最后在线时间、regTime为注册时间。计数器的种类包括但不限于:日在线计数器和新增用户计数器。日在线计数器是对独立访客UV的计数,其是以日期为基准,同日00:00~24:00内相同的用户登录仅计算一次。也就是说,最后在线时间可以反映最后一次的登录日期。新增用户计数器是对新的用户的计数。当然计数器还可以包括访问量计数器,即对访问量进行计数。本实施例的数据库中使用乐观锁来更新用户数据。乐观锁是基于数据版本(version)的记录机制,即为用户数据增加一个版本号。将接收到的日志数据的版本号与数据库表对应记录的当前版本号进行比对,如果接收到的日志数据的版本号大于数据库表中对应记录的当前版本号,则对数据库表予以更新,否则认为接收到的用户数据是过期数据。步骤S130,在所述日志数据中提取版本标识,并根据所述版本标识,更新所述数据库中的统计数据。在数据库中存在日志数据中提取出的用户标识,说明该用户标识对应的客户端不是首次访问服务器。所以在提取的版本标识符合数据更新条件的情况下,对数据库中的日在线计数器进行累加;以及根据提取的版本标识,对数据库中所述用户标识对应的版本标识进行更新。也就是说,将数据库中所述用户标识对应的用户数据中的版本标识更新为提取的所述版本标识。数据更新条件即是乐观锁更新条件。本实施例优选的,版本标识为最后在线时间。数据更新条件为:在日志数据中提取的最后在线时间晚于数据库中所述用户标识(提取于日志数据)对应的最后在线时间。具体的,在日志数据中提取用户标识和最后在线时间,查询数据库中该用户标识对本文档来自技高网...
一种数据统计方法和装置

【技术保护点】
一种数据统计方法,其特征在于,包括:接收来自客户端的日志数据,并在所述日志数据中提取用户标识;查询数据库中是否存在所述用户标识;若是,则在所述日志数据中提取版本标识,并根据所述版本标识,更新所述数据库中的统计数据;若否,则根据所述日志数据,更新所述数据库中的统计数据。

【技术特征摘要】
1.一种数据统计方法,其特征在于,包括:接收来自客户端的日志数据,并在所述日志数据中提取用户标识;查询数据库中是否存在所述用户标识;若是,则在所述日志数据中提取版本标识,并根据所述版本标识,更新所述数据库中的统计数据;若否,则根据所述日志数据,更新所述数据库中的统计数据。2.如权利要求1所述的方法,其特征在于,所述根据所述版本标识,更新所述数据库中的统计数据,包括:在提取的所述版本标识符合数据更新条件的情况下,对所述数据库中的日在线计数器进行累加;以及,根据提取的所述版本标识,对所述数据库中所述用户标识对应的版本标识进行更新。3.如权利要求2所述的方法,其特征在于,所述版本标识为最后在线时间。4.如权利要求3所述的方法,其特征在于,所述数据更新条件为:在所述日志数据中提取的最后在线时间晚于所述数据库中所述用户标识对应的最后在线时间。5.如权利要求1所述的方法,其特征在于,所述根据所述日志数据,更新所述数据库中的统计数据,包括:对所述数据库中的日在线计数器和新增用户计数器分别进行累加;以及,在所述数据库中初始化用户数据;所述用户数据包括从所述日志数据中提取出的用户标识和版本标识。6.一种数据统计装置,其特征在于,包括:接收和提取模块,用于接...

【专利技术属性】
技术研发人员:付奇
申请(专利权)人:五八同城信息技术有限公司
类型:发明
国别省市:天津;12

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1