用户活跃度指标的获取方法、装置、电子设备及存储介质与流程

文档序号:30308141发布日期:2022-06-05 08:03阅读:116来源:国知局
用户活跃度指标的获取方法、装置、电子设备及存储介质与流程

1.本公开涉及电子数字数据处理技术领域,尤其涉及一种用户活跃度指标的获取方法、装置、电子设备及存储介质。


背景技术:

2.本部分旨在为权利要求书中陈述的本公开的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
3.用户活跃度指标指的是在应用的运营过程中,反映用户数量变化和用户粘性等的指标。用户活跃度指标反映了用户对于应用内容和应用运营策略的反馈,对于应用的开发和运营具有一定的参考价值。
4.现有技术中,通常是根据用户登录明细获取用户活跃度指标,一般的,将用户登录明细保存至数据库,通过数据对比的方式获取用户活跃度指标。然而,这种方式对于数据库的存储性能和查询性能的要求较高,因此在数据量较大的情况下,时效性较差。


技术实现要素:

5.有鉴于此,本公开的目的在于提出一种用户活跃度指标的获取方法、装置、电子设备及存储介质。
6.基于上述目的,本公开示例性实施例提供了一种用户活跃度指标的获取方法,包括:
7.获取目标应用的用户登录日志;
8.根据所述用户登录日志建立目标时间段对应的位图,所述位图中的每一位用于标识对应的用户在所述目标时间段内是否登录所述目标应用,其中,所述位图中的每一位与一用户对应;
9.通过对一个或多个所述位图进行位运算,获得所述目标应用的用户活跃度指标。
10.在一些示例性实施例中,还包括:
11.根据所述用户登录日志获取每个用户的登录时间;
12.根据每个用户的所述登录时间,通过自增主键的方式生成每个用户对应的身份标识号;
13.根据每个用户对应的所述身份标识号,建立每个用户与所述位图中的每一位的对应关系。
14.在一些示例性实施例中,所述用户活跃度指标,包括以下至少一项:
15.登录用户数量、留存用户数量和新增用户数量。
16.在一些示例性实施例中,所述用户活跃度指标为登录用户数量,
17.所述通过对一个或多个所述位图进行位运算,获得所述目标应用的用户活跃度指标,包括:
18.统计所述目标时间段对应的所述位图中,标识对应的用户登录所述目标应用的位
的数量,将所述数量作为所述目标时间段的所述登录用户数量。
19.在一些示例性实施例中,所述用户活跃度指标为留存用户数量,
20.所述通过对一个或多个所述位图进行位运算,获得所述目标应用的用户活跃度指标,包括:
21.将所述目标时间段对应的所述位图与所述目标时间段的上一时间段对应的位图进行与运算,得到第一目标位图;
22.根据所述第一目标位图获得所述目标时间段的所述留存用户数量。
23.在一些示例性实施例中,所述方法还包括:
24.获取所述目标时间段前的多个时间段分别对应的位图;
25.对所述目标时间段前的多个时间段分别对应的位图进行合并,获得所述目标时间段前的多个时间段对应的历史位图。
26.在一些示例性实施例中,所述用户活跃度指标为新增用户数量,
27.所述通过对一个或多个所述位图进行位运算,获得所述目标应用的用户活跃度指标,包括:
28.将所述目标时间段对应的所述位图与所述历史位图进行或运算,得到中间位图;
29.将所述中间位图与所述历史位图进行异或运算,得到第二目标位图;
30.根据所述第二目标位图获得所述目标时间段的所述新增用户数量。
31.在一些示例性实施例中,所述获取目标应用的用户登录日志,包括:
32.通过日志采集器采集所述用户登录日志,并将所述用户登录日志缓存至流处理系统中。
33.在一些示例性实施例中,所述流处理系统中包含至少一个主题;
34.所述通过日志采集器采集所述用户登录日志,并将所述用户登录日志缓存至流处理系统中,包括:
35.将属于同一个应用的所述用户登录日志缓存至所述流处理系统中的同一个所述主题中;其中,不同所述应用与所述流处理系统中的不同所述主题相对应。
36.在一些示例性实施例中,所述根据所述用户登录日志获取每个用户的登录时间,包括:
37.通过流处理框架中的结构化查询语言从所述流处理系统中的所述用户登录日志中提取每个用户的所述登录时间。
38.在一些示例性实施例中,所述通过流处理框架中的结构化查询语言从所述流处理系统中的所述用户登录日志中提取每个用户的所述登录时间,包括:
39.通过所述流处理框架中的解析器将所述用户登录日志转换为json数据格式;
40.通过所述流处理框架中的所述结构化查询语言从所述json数据格式的所述用户登录日志中提取每个用户的所述登录时间。
41.在一些示例性实施例中,所述根据每个用户的所述登录时间,通过自增主键的方式生成每个用户对应的身份标识号,包括:
42.将每个用户的所述登录时间写入到关系型数据库管理系统中,通过自增主键的方式得到每个用户对应的所述身份标识号。
43.在一些示例性实施例中,所述根据每个用户对应的所述身份标识号,建立每个用
户与所述位图中的每一位的对应关系,包括:
44.根据每个用户对应的所述身份标识号,在远程字典服务数据库中建立每个用户与所述位图中的每一位的对应关系。
45.基于同一发明构思,本公开示例性实施例还提供了一种用户活跃度指标的获取装置,包括:
46.用户登录日志获取模块,被配置为获取目标应用的用户登录日志;
47.位图建立模块,被配置为根据所述用户登录日志建立目标时间段对应的位图,所述位图中的每一位用于标识对应的用户在所述目标时间段内是否登录所述目标应用,其中,所述位图中的每一位与一用户对应;
48.指标运算模块,被配置为通过对一个或多个所述位图进行位运算,获得所述目标应用的用户活跃度指标。
49.基于同一发明构思,本公开示例性实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上任意一项所述的方法。
50.基于同一发明构思,本公开示例性实施例还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使计算机执行如上任一所述方法。
51.从上面所述可以看出,本公开提供的用户活跃度指标的获取方法、装置、电子设备及存储介质,包括:获取目标应用的用户登录日志;根据用户登录日志建立目标时间段对应的位图,位图中的每一位用于标识对应的用户在目标时间段内是否登录目标应用,其中,位图中的每一位与一用户对应;通过对一个或多个位图进行位运算,获得目标应用的用户活跃度指标。本公开利用位图表示用户登录信息,降低了数据存储的复杂度,降低了对于数据库的存储性能的要求,成本控制较好,通过对表示用户登录信息的位图进行位运算得到用户活跃度指标,降低了数据运算的复杂度,提高了运算速度,时效性较好。
附图说明
52.为了更清楚地说明本公开或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
53.图1为根据本公开实施例提供的应用场景示意图;
54.图2为本公开实施例提供的用户活跃度指标的获取方法的流程示意图;
55.图3为根据本公开实施例提供的位图的结构示意图;
56.图4为根据本公开实施例提供的位图的建立方法的流程示意图;
57.图5为根据本公开实施例提供的确定登录用户数量的示意图;
58.图6为根据本公开实施例提供的确定新增用户数量的示意图;
59.图7为根据本公开实施例提供的确定留存用户数量的示意图;
60.图8为本公开实施例提供的用户活跃度指标的获取装置的结构示意图;
61.图9为本公开实施例提供的电子设备的结构示意图。
具体实施方式
62.下面将参考若干示例性实施方式来描述本公开的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
63.根据本公开的实施方式,提出了一种用户活跃度指标的获取方法、装置、电子设备及存储介质。
64.在本文中,需要理解的是,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
65.下面参考本公开的若干代表性实施方式,详细阐释本公开的原理和精神。
66.相关技术中,获取用户活跃度指标时,对于数据库的存储性能和查询性能的要求较高,因此在数据量较大的情况下,时效性较差。
67.本公开的发明人发现,造成上述相关技术中获取用户活跃度指标时效性较差的原因是:
68.相关技术中,将所有用户的每一次的登录时间均记录在数据库中,例如以(用户id,登录时间)的形式。以用户活跃度指标包括登录用户数量、留存用户数量和新增用户数量为例,在确定目标用户是否属于目标时间段内的登录用户时,在目标时间段内登录的所有用户的用户id中查询目标用户的用户id;在确定目标用户是否属于参照时间段内的留存用户时,在参照时间段内登录的所有用户的用户id中查询目标用户的用户id;在确定目标用户是否属于新增用户时,在数据库中记录的所有用户的用户id中查询目标用户的用户id。
69.可以看到,在上述方案的实施过程中,需要存储所有用户的所有登录明细数据,对于数据库的存储性能要求较高,同时,在数据量庞大的数据库中查询,对于数据库的查询性能要求也较高,因此,随着应用的运营,数据库中存储的数据量不断增长,会导致查询的时效性不断降低,另外,维护数据库的成本也较高。
70.为了解决上述问题,本公开提供了一种用户活跃度指标的获取方案,具体包括:获取目标应用的用户登录日志;根据用户登录日志建立目标时间段对应的位图,位图中的每一位用于标识对应的用户在目标时间段内是否登录目标应用,其中,位图中的每一位与一用户对应;通过对一个或多个位图进行位运算,获得目标应用的用户活跃度指标。
71.本公开利用位图表示用户登录信息,降低了数据存储的复杂度,降低了对于数据库的存储性能的要求,成本控制较好,通过对表示用户登录信息的位图进行位运算得到用户活跃度指标,降低了数据运算的复杂度,提高了运算速度,时效性较好。
72.在介绍了本公开的基本原理之后,下面具体介绍本公开的各种非限制性实施方式。
73.参考图1,其为本公开实施例提供的用户活跃度指标的获取方法的应用场景示意图。该应用场景包括终端设备101、服务器102和数据存储系统103。其中,终端设备101、服务器102以及数据存储系统103之间均可通过有线或无线的通信网络连接。终端设备101包括但不限于桌面计算机、移动电话、移动电脑、平板电脑、媒体播放器、智能可穿戴设备、个人数字助理(personal digital assistant,pda)或其它能够实现上述功能的电子设备等。服
务器102和数据存储系统103均可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器。
74.服务器102用于向终端设备101的用户提供用户活跃度指标的获取服务,终端设备101中安装有与服务器102通信的客户端,用户可通过该客户端输入获取用户活跃度指标的指令(例如输入目标应用和目标时间段,并选择登录用户数量、留存用户数量和新增用户数量中的至少一个指标项目),点击确认按钮后,客户端将获取用户活跃度指标的指令发送给服务器102,服务器102对通过对一个或多个根据用户登录日志建立的位图进行位运算,获得目标应用的用户活跃度指标,将用户活跃度指标发送给客户端,客户端向用户展示用户活跃度指标,以帮助用户进行开发或者运营等工作。
75.其中,服务器102还用于实时或者按照预设的时间间隔获取目标应用的用户登录日志;根据所述用户登录日志建立目标时间段对应的位图,所述位图中的每一位用于标识对应的用户在所述目标时间段内是否登录所述目标应用,其中,所述位图中的每一位与一用户对应。
76.数据存储系统103中存储有根据用户登录日志建立的位图。
77.下面结合图1的应用场景,来描述根据本公开示例性实施方式的用户活跃度指标的获取方案。需要注意的是,上述应用场景仅是为了便于理解本公开的精神和原理而示出,本公开的实施方式在此方面不受任何限制。相反,本公开的实施方式可以应用于适用的任何场景。
78.参考图2,其为本公开实施例提供的用户活跃度指标的获取方法的一种流程示意图。
79.用户活跃度指标的获取方法,包括以下步骤:
80.步骤s210、获取目标应用的用户登录日志。
81.其中,用户日志指的是记载了日期、时间、使用者及动作等相关操作的描述的事件记录;用户登录日志指的是用户日志中与登录相关的部分。
82.在一些示例性实施例中,实时或者按照预设的时间间隔获取用户登录日志。其中,获取的用户登录日志,并非针对单个用户,而是针对不特定的多个用户,甚至所有用户。
83.在一些示例性实施例中,通过日志采集器采集用户登录日志,并将用户登录日志缓存至流处理系统中。
84.其中,日志采集器用于采集和转发日志数据。
85.具体实施时,日志采集器监视预先指定的日志文件或位置,收集日志事件。启动日志采集器时,它将启动一个或多个输入,这些输入将在为日志数据指定的位置中查找。对于日志采集器所找到的每个日志,日志采集器都会启动收集器。每个收集器都读取一个日志以获取新内容,并将新日志数据发送到转发数据时所用的通用库,通用库会汇总事件并将汇总的数据发送到预先为日志采集器配置的输出。
86.作为一个示例,日志采集器为filebeat。
87.filebeat是一种轻量型日志采集器。
88.其中,流处理系统用于缓存日志。
89.作为一个示例,流处理系统为kafka。
90.kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理用户在网站中的所有动作流数据。
91.在一些示例性实施例中,配置日志采集器直接采集登录日志。
92.在一些示例性实施例中,先配置日志采集器采集包括登录日志、帮会相关日志、对战相关日志和交易相关日志等的多种日志,再通过筛选或者过滤得到登录日志。
93.在一些示例性实施例中,流处理系统中包含至少一个主题;将属于同一个应用的用户登录日志缓存至流处理系统中的同一个主题中;其中,不同应用与流处理系统中的不同主题相对应。
94.作为一个示例,每个应用对应kafka中的一个topic,不同应用的用户登录日志流入到相对应的topic中。
95.步骤s220、根据用户登录日志建立目标时间段对应的位图,位图中的每一位用于标识对应的用户在目标时间段内是否登录目标应用,其中,位图中的每一位与一用户对应。
96.其中,位图(bitmap)是一种数据结构,在位图中,通过使用二进制的bit位来存储数据,在本公开中,用一个1bit位来标识用户的登录状态,1是代表登录,0是代表没登录。
97.参考图3,其为根据本公开实施例提供的位图的一种结构示意图。
98.作为一个示例,目标时间段为2021年10月28日,目标时间段对应的位图中,每个位的默认值均为0,例如,用户1(1为该用户对应的身份标识号)在2021年10月28日进行了登录,使2021年10月28日对应的位图中的第1个位的值为1,同理,用户x(x为该用户对应的的身份标识号)进行了登录,使2021年10月28日对应的位图中的第x个位的值为1。其他位,保持其默认值0。
99.在本公开中,存储八个用户的登录信息仅需要8位,即一个字节,而如果使用常规数据库的形式,一个用户通常需要10个字节的存储空间,相比之下,本公开需要的存储空间缩小了八十倍。
100.参考图4,其为根据本公开实施例提供的位图的建立方法的一种流程示意图。
101.位图的建立方法,包括以下步骤:
102.步骤s410、根据用户登录日志获取每个用户的登录时间。
103.在一些示例性实施例中,s410具体包括:
104.通过流处理框架中的结构化查询语言从流处理系统中的用户登录日志中提取每个用户的登录时间。
105.作为一个示例,流处理框架为flink。
106.flink是开源流处理框架,其核心是用java和scala编写的分布式流数据流引擎。flink以数据并行和流水线方式执行任意流数据程序,flink的流水线运行时系统可以执行批处理和流处理程序。此外,flink的运行时本身也支持迭代算法的执行。
107.在一些示例性实施例中,在通过流处理框架中的结构化查询语言从流处理系统中的用户登录日志中提取每个用户的登录时间的过程中:先通过流处理框架中的解析器将用户登录日志转换为json数据格式;再通过流处理框架中的结构化查询语言从json数据格式的用户登录日志中提取每个用户的登录时间。
108.json(javascript object notation)是一种轻量级的数据交换格式。json采用完
全独立于语言的文本格式,易于人阅读和编写,同时也易于机器解析和生成。
109.作为一个示例,解析器为format。
110.作为一个示例,通过日志采集器例如filebeat将用户登录日志缓存至流处理系统例如kafka中,同一个应用的所有用户登录日志都会发送到同一个topic中,考虑到用户登录日志可能存在格式不统一的问题,可以通过解析器例如format将不同格式的日志数据统一格式,也可以通过解析器例如format将其他数据格式转换为易于解析的json数据格式,便于通过流处理框架例如flink中的结构化查询语言从流处理系统例如kafka中的用户登录日志中提取每个用户的登录时间。
111.步骤s420、根据每个用户的登录时间,通过自增主键的方式生成每个用户对应的身份标识号。
112.在一些示例性实施例中,s420具体包括:
113.将每个用户的登录时间写入到关系型数据库管理系统中,通过自增主键的方式得到每个用户对应的身份标识号。
114.其中,每个用户对应的身份标识号是该用户在位图中的位置标识,因此,其具有顺序性。
115.在一些示例性实施例中,将用户及其登录时间写入到关系型数据库管理系统中,通过自增主键的方式得到用户对应的身份标识号。
116.其中,关系型数据库管理系统将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
117.作为一个示例,本公开维护一个映射表,映射表中包含用户及其对应的身份标识号。其中,每个用户对应唯一确定的身份标识号,根据每个用户首次出现的时间顺序,生成其身份标识号(例如,身份标识号为从1开始的值),在任一用户非首次出现时,沿用其首次出现时生成的身份标识号。具体实施时,对于一个用户,首先在映射表中查询是否存在其对应的身份标识号,若存在,沿用此身份标识号。若不存在,构建其身份标识号,例如,该用户是该应用运营以来第i个首次出现的用户,其身份标识号即为i。
118.仅在用户入库的时候查询一次,在运算的时候不需要查询。
119.作为一个示例,关系型数据库管理系统为mysql。
120.步骤s430、根据每个用户对应的身份标识号,建立每个用户与位图中的每一位的对应关系。
121.在一些示例性实施例中,s430具体包括:
122.根据每个用户对应的身份标识号,在远程字典服务数据库中建立每个用户与位图中的每一位的对应关系。
123.在一些实施例中,在根据用户对应的身份标识号,在远程字典服务数据库中构建目标时间段对应的位图之前,需要确定远程字典服务数据库中是否存在该目标时间段对应的位图:
124.响应于确定远程字典服务数据库中存在目标时间段对应的位图,根据用户对应的身份标识,将登录信息写入该位图中;
125.响应于确定远程字典服务数据库中不存在目标时间段对应的位图,构建目标时间段对应的位图,并将登录信息写入该位图中。
126.作为一个示例,远程字典服务数据库为redis。redis是一种高性能key-value数据库,支持多种数据结构,有字符串、哈希、列表、集合、有序集合。redis在字符串的数据结构之上实现了bitmap,一个字符串由多个字符组成,每个字符是8位。
127.步骤s230、通过对一个或多个位图进行位运算,获得目标应用的用户活跃度指标。
128.其中,位运算指的是,电子计算机中的数据以二进制的形式存储在设备中,即0,1两种状态,对每个位进行运算称为位运算。位运算包括与运算、或运算和异或运算。其中,与运算:两个位都为1时结果才为1,否则为0;或运算:两个位都为0时,结果才为0,否则为1;异或运算:两个位值相同时,结果为0,否则为1。
129.在一些示例性实施例中,用户活跃度指标,包括以下至少一项:
130.登录用户数量、留存用户数量和新增用户数量。
131.例如,登录用户数量:目标时间段登录的用户的数量;
132.新增用户数量:在目标时间段之前未进行过登录的用户的数量;
133.留存用户数量:在目标时间段前登录过的,在目标时间段又进行了登录的用户的数量。
134.在一些示例性实施例中,用户活跃度指标为登录用户数量时,通过对一个或多个位图进行位运算,获得目标应用的用户活跃度指标,包括:
135.统计目标时间段对应的位图中,标识对应的用户登录目标应用的位的数量,将数量作为目标时间段的登录用户数量。
136.参考图5,作为一个示例,确定目标时间段2021年10月28日的登录用户数量,对2021年10月28日对应的位图中值为1的位的数量进行统计,该操作称为count,作为2021年10月28日的登录用户数量。
137.在一些示例性实施例中,用户活跃度指标为留存用户数量时,通过对一个或多个位图进行位运算,获得目标应用的用户活跃度指标,包括:
138.将目标时间段对应的位图与目标时间段的上一时间段对应的位图进行与运算,得到第一目标位图;
139.根据第一目标位图获得目标时间段的留存用户数量。
140.参考图6,作为一个示例,确定在目标时间段2021年10月28日的前一日登录过的,在2021年10月28日又进行了登录的用户的数量,称之为一日留存用户数量,2021年10月28日为目标时间段,2021年10月27日为上一时间段,将2021年10月28日对应的位图与2021年10月27日对应的位图做与运算,即两个位都为1时结果才为1,否则为0,得到表示留存用户数量的位图,统计位图中值为1的位的数量(做count),作为2021年10月28日的一日留存用户数量。
141.在一些示例性实施例中,方法还包括:
142.获取目标时间段前的多个时间段分别对应的位图;
143.对目标时间段前的多个时间段分别对应的位图进行合并,获得目标时间段前的多个时间段对应的历史位图。
144.在一些示例性实施例中,用户活跃度指标为新增用户数量时,通过对一个或多个位图进行位运算,获得目标应用的用户活跃度指标,包括:
145.将目标时间段对应的位图与历史位图进行或运算,得到中间位图;
146.将中间位图与历史位图进行异或运算,得到第二目标位图;
147.根据第二目标位图获得目标时间段的新增用户数量。
148.参考图7,作为一个示例,确定目标时间段2021年10月28日的新增用户数量,将2021年10月28日对应的位图与历史位图做或运算,即两个位都为0时,结果才为0,否则为1,得到中间位图(tmp表示中间位图);将中间位图与历史位图做异或运算,即两个位值相同时,结果为0,否则为1,得到表示新增用户数量的位图,统计位图中值为1的位的数量(做count),作为2021年10月28日的新增用户数量。
149.需要说明的是,在上述实施例中,以目标时间段的细粒度为天进行了示例性说明,但是,本公开实施例不限于此,具体实施时,可以按照预设的细粒度构建位图,从而获取预设细粒度的用户活跃度指标。
150.从上面所述可以看出,本公开提供的用户活跃度指标的获取方法,获取目标应用的用户登录日志;根据用户登录日志建立目标时间段对应的位图,位图中的每一位用于标识对应的用户在目标时间段内是否登录目标应用,其中,位图中的每一位与一用户对应;通过对一个或多个位图进行位运算,获得目标应用的用户活跃度指标。本公开利用位图表示用户登录信息,降低了数据存储的复杂度,降低了对于数据库的存储性能的要求,成本控制较好,通过对表示用户登录信息的位图进行位运算得到用户活跃度指标,降低了数据运算的复杂度,提高了运算速度,时效性较好。
151.另外,在本公开中,用户数据不易被遗漏,例如昨天的数据在今天才被发送过来,这时候,这部分数据会被无障碍的补充到对应时间段对应的位图中,同时,由于实时的数据结果是根据不同的位图之间做位运算得到的,所以当延迟的数据被补充之后,再进行计算,就能得到正确的值。
152.需要说明的是,本公开实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本公开实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
153.需要说明的是,上述对本公开的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
154.基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种用户活跃度指标的获取装置。
155.参考图8,用户活跃度指标的获取装置,包括:
156.用户登录日志获取模块810,被配置为获取目标应用的用户登录日志。
157.在一些示例性实施例中,用户登录日志获取模块810,具体被配置为:
158.通过日志采集器采集所述用户登录日志,并将所述用户登录日志缓存至流处理系统中。
159.在一些示例性实施例中,所述流处理系统中包含至少一个主题;用户登录日志获取模块810,具体被配置为:
160.将属于同一个应用的所述用户登录日志缓存至所述流处理系统中的同一个所述主题中;其中,不同所述应用与所述流处理系统中的不同所述主题相对应。
161.位图建立模块820,被配置为根据所述用户登录日志建立目标时间段对应的位图,所述位图中的每一位用于标识对应的用户在所述目标时间段内是否登录所述目标应用,其中,所述位图中的每一位与一用户对应。
162.在一些示例性实施例中,位图建立模块820,具体被配置为:
163.根据所述用户登录日志获取每个用户的登录时间;
164.根据每个用户的所述登录时间,通过自增主键的方式生成每个用户对应的身份标识号;
165.根据每个用户对应的所述身份标识号,建立每个用户与所述位图中的每一位的对应关系。
166.在一些示例性实施例中,位图建立模块820,具体被配置为:
167.通过流处理框架中的结构化查询语言从所述流处理系统中的所述用户登录日志中提取每个用户的所述登录时间。
168.在一些示例性实施例中,位图建立模块820,具体被配置为:
169.通过所述流处理框架中的解析器将所述用户登录日志转换为json数据格式;
170.通过所述流处理框架中的所述结构化查询语言从所述json数据格式的所述用户登录日志中提取每个用户的所述登录时间。
171.在一些示例性实施例中,位图建立模块820,具体被配置为:
172.将每个用户的所述登录时间写入到关系型数据库管理系统中,通过自增主键的方式得到每个用户对应的所述身份标识号。
173.在一些示例性实施例中,位图建立模块820,具体被配置为:
174.根据每个用户对应的所述身份标识号,在远程字典服务数据库中建立每个用户与所述位图中的每一位的对应关系。
175.指标运算模块830,被配置为通过对一个或多个所述位图进行位运算,获得所述目标应用的用户活跃度指标。
176.在一些示例性实施例中,所述用户活跃度指标,包括以下至少一项:
177.登录用户数量、留存用户数量和新增用户数量。
178.在一些示例性实施例中,所述用户活跃度指标为登录用户数量,指标运算模块830,具体被配置为:
179.统计所述目标时间段对应的所述位图中,标识对应的用户登录所述目标应用的位的数量,将所述数量作为所述目标时间段的所述登录用户数量。
180.在一些示例性实施例中,所述用户活跃度指标为留存用户数量,指标运算模块830,具体被配置为:
181.将所述目标时间段对应的所述位图与所述目标时间段的上一时间段对应的位图进行与运算,得到第一目标位图;
182.根据所述第一目标位图获得所述目标时间段的所述留存用户数量。
183.在一些示例性实施例中,指标运算模块830,还被配置为:
184.获取所述目标时间段前的多个时间段分别对应的位图;
185.对所述目标时间段前的多个时间段分别对应的位图进行合并,获得所述目标时间段前的多个时间段对应的历史位图。
186.在一些示例性实施例中,所述用户活跃度指标为新增用户数量,指标运算模块830,具体被配置为:
187.将所述目标时间段对应的所述位图与所述历史位图进行或运算,得到中间位图;
188.将所述中间位图与所述历史位图进行异或运算,得到第二目标位图;
189.根据所述第二目标位图获得所述目标时间段的所述新增用户数量。
190.为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本公开时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
191.上述实施例的装置用于实现前述任一实施例中相应的用户活跃度指标的获取方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
192.基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上任意一实施例所述的用户活跃度指标的获取方法。
193.图9示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
194.处理器1010可以采用通用的cpu(central processing unit,中央处理器)、微处理器、应用专用集成电路(application specific integrated circuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
195.存储器1020可以采用rom(read only memory,只读存储器)、ram(random access memory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
196.输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入/输出模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
197.通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信。
198.总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
199.需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
200.上述实施例的电子设备用于实现前述任一实施例中相应的用户活跃度指标的获取方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
201.基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的用户活跃度指标的获取方法。
202.上述非暂态计算机可读存储介质可以是计算机能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(mo)等)、光学存储器(例如cd、dvd、bd、hvd等)、以及半导体存储器(例如rom、eprom、eeprom、非易失性存储器(nand flash)、固态硬盘(ssd))等。
203.上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的用户活跃度指标的获取方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
204.本领域技术技术人员知道,本发明的实施方式可以实现为一种系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
205.可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举示例)例如可以包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
206.计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
207.计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、rf等等,或者上述的任意合适的组合。
208.可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络(包括局域网(lan)或广域网(wan))连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来
通过因特网连接)。
209.应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
210.也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置的产品。
211.也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
212.此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
213.申请文件中提及的动词“包括”、“包含”及其词形变化的使用不排除除了申请文件中记载的那些元素或步骤之外的元素或步骤的存在。元素前的冠词“一”或“一个”不排除多个这种元素的存在。
214.虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。所附权利要求的范围符合最宽泛的解释,从而包含所有这样的修改及等同结构和功能。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1