CN115757442A - 用户列表的更新方法、用户列表的显示方法及程序产品 - Google Patents

用户列表的更新方法、用户列表的显示方法及程序产品 Download PDF

Info

Publication number
CN115757442A
CN115757442A CN202211281458.XA CN202211281458A CN115757442A CN 115757442 A CN115757442 A CN 115757442A CN 202211281458 A CN202211281458 A CN 202211281458A CN 115757442 A CN115757442 A CN 115757442A
Authority
CN
China
Prior art keywords
user
list
data
statistics
time
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.)
Pending
Application number
CN202211281458.XA
Other languages
English (en)
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.)
Tencent Music Entertainment Technology Shenzhen Co Ltd
Original Assignee
Tencent Music Entertainment Technology Shenzhen 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 Tencent Music Entertainment Technology Shenzhen Co Ltd filed Critical Tencent Music Entertainment Technology Shenzhen Co Ltd
Priority to CN202211281458.XA priority Critical patent/CN115757442A/zh
Publication of CN115757442A publication Critical patent/CN115757442A/zh
Pending legal-status Critical Current

Links

Images

Abstract

本申请涉及一种用户列表的更新方法、用户列表的显示方法、装置、计算机设备、存储介质和计算机程序产品。所述更新方法包括:获取直播间中用户的用户信息和流式数据;对流式数据分别进行第一分布式计算处理和第二分布式计算处理,以得到用户的在线行为的第一类统计数值和第二类统计数值;将第一类统计数值累加到第一有序列表和第二有序列表中用户信息对应的统计数值中,以更新第一有序列表和第二有序列表中的用户排序;在更新后的第二有序列表中,还将在预设时间窗内累加的第一类统计数值替换为第二类统计数值,以再次更新第二有序列表中的用户排序。采用本方法能够增强用户行为统计数值的实时性,以及提升用户列表的有效性和准确性。

Description

用户列表的更新方法、用户列表的显示方法及程序产品
技术领域
本申请涉及互联网技术领域,特别是涉及一种用户列表的更新方法、显示方法、计算机设备、存储介质和计算机程序产品。
背景技术
随着互联网技术的发展,直播行业逐渐发展壮大。在直播过程中,主播与观众之间常常通过多种多样的互动方式进行高频次的互动,从而不断提高观众在直播间的参与度,因此需要一种实时排序方法,将直播间内的观众进行排序,以便于主播能够实时了解直播间内观众的动态行为。
在传统的排序方式中,一般是利用如MySQL、Oracle等关系数据库先对在线的观众进行分类,在达到一定的数据量或者到达某一时间节点后,再对分类的观众进行排序。
然而,目前的排序方式中使用的关系数据库不能够在短时间内处理大量的数据流,难以实时地执行大量的操作请求,从而导致排序后的观众列表的实时性和准确性不高。
发明内容
基于此,有必要针对上述技术问题,提供一种能够处理高并发场景和解决排序的实时性和准确性不高的用户列表的更新方法、显示方法、计算机设备、存储介质和计算机程序产品。
第一方面,本申请提供了一种用户列表的更新方法。所述方法包括:
获取直播间中用户的用户信息和流式数据;所述流式数据为监测所述用户在所述直播间的在线行为所产生的实时记录数据;
对所述流式数据分别进行第一分布式计算处理和第二分布式计算处理,得到所述用户的在线行为的第一类统计数值和第二类统计数值;所述第一分布式计算处理不同于所述第二分布式计算处理;所述第一类统计数值表征所述用户的在线行为的实时统计数值,第二类统计数值表征在预设时间窗内所述用户的在线行为的累计统计数值;
将所述第一类统计数值累加到第一有序列表和第二有序列表中所述用户信息对应的统计数值中,以更新所述第一有序列表和所述第二有序列表中的用户排序;
在预设时间窗对应的所述第二类统计数值被计算出之后,在更新后的所述第二有序列表中,将在所述预设时间窗内累加的所述第一类统计数值替换为所述第二类统计数值,以再次更新所述第二有序列表中的用户排序。
在其中一个实施例中,所述对所述流式数据分别进行第一分布式计算处理和第二分布式计算处理,得到所述用户的在线行为的第一类统计数值和第二类统计数值,包括:
将所述流式数据导入消息队列中,暂存所述流式数据;
基于暂存所述流式数据的时间顺序,利用第一分布式计算引擎对所述流式数据进行实时的分布式流计算处理,得到所述第一类统计数值;以及
基于暂存所述流式数据的时间顺序,确定预设时间窗内的流式数据,利用第二分布式计算引擎对所述预设时间窗内的流式数据进行分布式批计算处理,得到所述第二类统计数值。
在其中一个实施例中,所述流式数据至少包括接入数据、断开数据、心跳包数据和消费数据;所述将所述流式数据导入消息队列中,暂存所述流式数据,包括:
按照获取所述流式数据的时间顺序,将每一类型的所述流式数据导入所述消息队列对应的分区队列中,以分区暂存所述流式数据。
在其中一个实施例中,所述利用第一分布式计算引擎对所述流式数据进行分布式流计算处理,得到所述第一类统计数值,包括:
基于暂存所述流式数据的时间顺序,利用所述第一分布式计算引擎依次从对应类型的所述分区队列中读取出所述流式数据;
对读取的所述流式数据进行流式数据转换,得到所述第一类统计数值。
在其中一个实施例中,所述第一类统计数值包括实时在线时长和实时消费数量中至少一项;所述对读取的所述流式数据进行流式数据转换,得到所述第一类统计数值,包括以下至少一项:
利用所述第一分布式计算引擎通过预置的转换操作符对读取的所述接入数据、所述断开数据和所述心跳包数据进行逐条数据转换操作,得到所述用户的实时在线时长;
利用所述第一分布式计算引擎通过所述转换操作符对读取的所述消费数据进行逐条数据转换操作,得到所述用户的实时消费数量。
在其中一个实施例中,所述利用第二分布式计算引擎对所述流式数据进行分布式批计算处理,得到所述第二类统计数值,包括:
从各类型的所述分区队列中提取出所述流式数据,存储在一离线数据库中;
响应于处于预设的时间节点时,利用所述第二分布式计算引擎从所述离线数据库中读取出所述预设时间窗内的流式数据;
对所述预设时间窗内的流式数据进行批式数据转换,得到所述第二类统计数值。
在其中一个实施例中,所述第二类统计数值包括在所述预设时间窗内的累计在线时长和累计消费数量中至少一项;所述对所述预设时间窗内的流式数据进行批式数据转换,得到所述第二类统计数值,包括以下至少一项:
利用所述第二分布式计算引擎按照读取所述流式数据的时间先后顺序,对所述预设时间窗内的接入数据、断开数据和心跳包数据进行分区数据转换操作,得到所述用户在所述预设时间窗内的累计在线时长;
利用所述第二分布式计算引擎按照读取所述流式数据的时间先后顺序,对所述预设时间窗内的消费数据进行分区数据转换操作,得到所述用户在所述预设时间窗内的累计消费数量。
在其中一个实施例中,所述将所述第一类统计数值累加到第一有序列表和第二有序列表中所述用户信息对应的统计数值中,以更新所述第一有序列表和所述第二有序列表中的用户排序,包括:
将所述第一类统计数值实时累加到所述第一有序列表和所述第二有序列表中所述用户信息对应的总统计数值中;
基于所述第一有序列表和所述第二有序列表中各用户信息对应的总统计数值的大小顺序,分别更新所述第一有序列表和所述第二有序列表中的用户排序。
在其中一个实施例中,所述第一有序列表包括当日的实时时长列表和实时消费列表至少一项,所述第二有序列表包括预设天数内的累计时长列表和累计消费列表至少一项,所述第一类统计数值包括当日的实时在线时长和实时消费数量;
所述将所述第一类统计数值实时累加到所述第一有序列表和所述第二有序列表中所述用户信息对应的总统计数值中,包括以下至少一项:
将所述实时在线时长分别累加到所述实时时长列表和所述累计时长列表中所述用户信息对应的总在线时长中;
将所述实时消费数量分别累加到所述实时消费列表和所述累计消费列表中所述用户信息对应的总消费数量中。
在其中一个实施例中,所述第二类统计数值包括在所述预设时间窗内的累计在线时长和累计消费数量;
所述将在所述预设时间窗内累加的所述第一类统计数值替换为所述第二类统计数值,包括以下至少一项:
在更新后的所述累计时长列表中,将在所述预设时间窗内累加的所述实时在线时长替换为所述预设时间窗内的累计在线时长;
在更新后的所述累计消费列表中,将在所述预设时间窗内累加的所述实时消费数量替换为所述预设时间窗内的累计消费数量。
在其中一个实施例中,所述方法还包括:
基于所述用户信息,在存储所述流式数据的离线数据库中确定出在一预设天数内不存在流式数据的用户名单;
将所述用户名单对应在所述第一有序列表和所述第二有序列表中的用户的用户栏删除,以修正所述第一有序列表和所述第二有序列表。
第二方面,本申请提供了一种用户列表的显示方法。所述方法包括:
基于直播间的直播数据查看页面,显示多个直播数据对应的预览选项;
响应于对用于查看目标用户列表的目标预览选项的触发指令,从远程数据库存储的有序列表中获取所述目标用户列表;所述远程数据库保存有多个有序列表;所述有序列表是利用如上所述的用户列表的更新方法得到的;
显示所述目标用户列表。
第三方面,本申请还提供了一种电子设备。所述电子设备包括:
处理器;
用于存储所述处理器的可执行指令的存储器;
其中,所述处理器被配置为执行所述可执行指令,以实现如上所述的用户列表的更新方法和/或所述的用户列表的显示方法。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质中包括程序数据,当所述程序数据由电子设备的处理器执行时,使得所述电子设备能够执行如上所述的用户列表的更新方法和/或所述的用户列表的显示方法。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品中包括程序指令,在所述程序指令被电子设备的处理器执行时,使得所述电子设备能够执行如上所述的用户列表的更新方法和/或所述的用户列表的显示方法。
上述用户列表的更新方法、用户列表的显示方法、装置、计算机设备、存储介质和计算机程序产品,通过先获取直播间中用户的用户信息和流式数据;再对流式数据分别进行第一分布式计算处理和第二分布式计算处理,以得到用户的在线行为的第一类统计数值和第二类统计数值;其中,流式数据为监测用户在直播间的在线行为所产生的实时记录数据;第一分布式计算处理不同于第二分布式计算处理;第一类统计数值表征用户的在线行为的实时统计数值,第二类统计数值表征在预设时间窗内用户的在线行为的累计统计数值;最后,将第一类统计数值累加到第一有序列表和第二有序列表中用户信息对应的统计数值中,以更新第一有序列表和第二有序列表中的用户排序;并且,在更新后的第二有序列表中,还将在预设时间窗内累加的第一类统计数值替换为第二类统计数值,以再次更新第二有序列表中的用户排序。这样,一方面,利用分布式计算的方式来处理用户实时产生的流式数据,以能够在短时间内处理大量的数据流,增强了用户行为统计数值的实时性和提升了处理高并发场景的能力;另一方面,利用计算用户在预设时间窗内的累计统计数值来更新用户列表,以能够在用户列表经过实时的统计数值更新之后而再次更新,从而提升了用户列表的有效性和准确性。
附图说明
图1是根据一示例性实施例示出的一种用户列表的更新方法的应用环境图;
图2是根据一示例性实施例示出的一种用户列表的更新方法的流程示意图;
图3是根据一示例性实施例示出的一种对流式数据进行分布式计算处理的流程示意图;
图4是根据一示例性实施例示出的一种得到第一类统计数值的流程示意图;
图5是根据一示例性实施例示出的一种得到第二类统计数值的流程示意图;
图6是根据一示例性实施例示出的一种更新有序列表中的用户排序的流程示意图;
图7是根据一示例性实施例示出的一种对有序列表进行修正的流程示意图;
图8是根据一示例性实施例示出的一种用户列表的显示方法的流程示意图;
图9是根据一示例性实施例示出的一种显示多个直播数据对应的预览选项的界面示意图;
图10是根据一示例性实施例示出的一种显示目标用户列表的界面示意图;
图11是根据一示例性实施例示出的另一种用户列表的更新方法的流程示意图;
图12是根据一示例性实施例示出的又一种用户列表的更新方法的流程示意图;
图13是根据一示例性实施例示出的一种通过分布式计算处理数据的流程图;
图14是根据一示例性实施例示出的一种用户列表的更新装置框图;
图15是根据一示例性实施例示出的一种用于用户列表的更新装置的电子设备的框图;
图16是根据一示例性实施例示出的一种用于用户列表的更新装置的计算机可读存储介质的框图;
图17是根据一示例性实施例示出的一种用于用户列表的更新装置的计算机程序产品的框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
还需要说明的是,本公开所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和用户数据(包括但不限于用于展示的数据、分析的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
本公开所提供的用户列表的更新方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。其中,数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。
在一实施例中,参考图1,服务器104首先获取终端102中直播间中用户的用户信息和流式数据;流式数据为监测用户在直播间的在线行为所产生的实时记录数据;接着,服务器104对流式数据分别进行第一分布式计算处理和第二分布式计算处理,得到用户的在线行为的第一类统计数值和第二类统计数值;其中,第一分布式计算处理不同于第二分布式计算处理;第一类统计数值表征用户的在线行为的实时统计数值,第二类统计数值表征在预设时间窗内用户的在线行为的累计统计数值;然后,服务器104将第一类统计数值累加到第一有序列表和第二有序列表中用户信息对应的统计数值中,以更新终端102中的第一有序列表和第二有序列表中的用户排序,并且,在更新后的第二有序列表中,服务器104将在预设时间窗内累加的第一类统计数值替换为第二类统计数值,以再次更新终端102中第二有序列表中的用户排序。
在一些实施例中,终端102(如移动终端、固定终端)可以以各种形式来实施。其中,终端102可为包括诸如移动电话、智能电话、笔记本电脑、便携式手持式设备、个人数字助理(PDA,Personal Digital Assistant)、平板电脑(PAD)等等的搭载有一直播平台,以及该直播平台中具有可供主播和用户使用和访问直播间功能的移动终端,终端102也可以是数字广播发送器、数字TV、台式计算机、固式计算机等等的搭载有一直播平台,以及该直播平台中具有可供主播和用户使用和访问直播间功能的固定终端。下面,假设终端102是固定终端。然而,本领域技术人员将理解的是,若有特别用于移动目的的操作或者元件,根据本申请公开的实施方式的构造也能够应用于移动类型的终端102。
在一些实施例中,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。服务器104可以适于运行提供前述公开中描述的终端102的一个或多个应用服务(如,直播间)或应用软件(如,直播平台)。
其中,这些应用服务或应用软件的运行使得服务器104能够使用应用的需求信息在应用中的用户界面部件与数据对象之间自动生成关系或映射。例如,在某些实施例中,服务器104可以接收应用的需求信息,其中需求信息可以包括对应用的期望功能(如,显示应用的直播画面、显示直播间中的用户列表等)的描述,并且还可以包括应用的期望GUI的图像。服务器104然后可以使用需求信息来生成应用的用户界面部件与一个或多个数据对象之间的映射。
在某些实施例中,直播平台包括一个在前台向用户提供一对一特色服务的门户端口和多个位于后台的业务系统,将直播间功能的应用扩展到客户端,以能够让用户在任何时间任何地点进行直播间功能的使用和访问。
在某些实施例中,直播平台运行的操作系统可以包括各种版本的Microsoft
Figure BDA0003898481330000081
Apple
Figure BDA0003898481330000082
和/或Linux操作系统、各种商用或类
Figure BDA0003898481330000083
操作系统(包括但不限于各种GNU/Linux操作系统、Google
Figure BDA0003898481330000084
OS等)和/或移动操作系统,诸如
Figure BDA0003898481330000085
Figure BDA0003898481330000086
Phone、
Figure BDA0003898481330000087
OS、
Figure BDA0003898481330000088
OS、
Figure BDA0003898481330000089
OS操作系统,以及其它操作系统。
在某些实施例中,直播平台中供主播和用户使用和访问的直播间可以包括两部分:图形用户接口(GUI)和引擎(engine),利用这两者能够以用户界面的形式向主播和用户提供多种应用服务的数字化客户系统。
在某些实施例中,直播间运行的应用服务可以加载正在被执行的可以包括各种附加服务器应用和/或中间层应用中的任何一种,如包括HTTP(超文本传输协议)、FTP(文件传输协议)、CGI(通用网关界面)、RDBMS(关系型数据库管理系统)等。
在某些实施例中,直播间应用的GUI可以包括一个或多个GUI屏幕,其中每个屏幕包括一个或多个用户界面(UI)部件,诸如按钮、文本输入框、下拉列表、下拉菜单、图标、表格等。应用的GUI还可以包括描述应用的GUI和/或与各个UI部件的功能和行为相关联或向用户提供其它信息或指令的文本信息。
作为示例,直播间中的每个GUI屏幕可以显示包括一个或多个UI部件,诸如,在直播间中显示有按钮、文本输入框、下拉列表、下拉菜单、复选框、图标、表格、(人或对象)的照片等。
在某些实施例中,直播间中的UI部件可以包括相关联的文本选项。例如,直播间中显示的按钮可以在按钮上进一步显示包括诸如“下一步”、“取消”、“确定”或“确认”之类的单词。其中,直播间中的UI部件还可以具有相关联的属性,诸如大小、位置或相关联的动作或功能。例如,UI部件可以位于直播间屏幕图像中的任何位置。
在一个实施例中,如图2所示,提供了一种用户列表的更新方法,以该方法应用于图1中的服务器104为例进行说明,包括以下步骤:
步骤S11,获取直播间中用户的用户信息和流式数据。
其中,流式数据为监测用户在直播间的在线行为所产生的实时记录数据。
在一些实施例中,流式数据可以通过直播间中的多个数据源以持续的且实时的产生。例如,在某一直播间中包括有数百个用户账户作为直播间的数据源,该数百个用户账户基于用户的在线行为以持续的生成流数据,并将这些流数据同时以数据记录的形式实时传输至服务器,从而服务器能够获得直播间中用户的流式数据。
在一些实施例中,在线行为是指用户在直播间中持续或者瞬间进行的操作或者产生的事件。
作为示例,在线行为可以包括用户进入直播间时瞬间产生的建立连接事件,退出直播间时瞬间产生的断开连接事件,或者用户持续在直播间中无操作时(如超30秒无操作)所产生心跳包事件。在线行为也可以包括用户在直播间中向主播发送直播礼物而产生的操作或者在对话框中输入互动弹幕而产生的操作等等。
在一种具体实现中,在直播间运行之后,服务器利用直播平台直接从直播间中获取在线观看直播的全部用户账号的ID信息以获得用户信息,和实时的采集检测这些用户账号在直播间内所产生的流式数据。
步骤S12,对流式数据分别进行第一分布式计算处理和第二分布式计算处理,以得到用户的在线行为的第一类统计数值和第二类统计数值。
在一些实施例中,分布式计算为服务器利用分布式计算引擎对流式数据进行基于分布式内存计算的处理,以得到流式数据所对应的统计数据的过程。
其中,对流式数据进行的第一分布式计算处理不同于第二分布式计算处理。
在某些实施例中,第一分布式计算处理可以是服务器基于Flink分布式计算框架、Blink分布式计算框架、Spark分布式计算框架或者Storm分布式计算框架中的任意一种进行的分布式内存计算处理,而第二分布式计算处理可以是服务器基于Flink分布式计算框架、Blink分布式计算框架、Spark分布式计算框架或者Storm分布式计算框架中的任意另外一种进行的分布式内存计算处理。其中,由于承载的分布式计算框架不相同,第一分布式计算处理和第二分布式计算处理得到统计数值的准确率和实时性不相同,并且两者同时处理数据容量和计算过程也不相同。
其中,第一类统计数值表征用户的在线行为的实时统计数值,第二类统计数值表征在预设时间窗内用户的在线行为的累计统计数值。
在一些实施例中,第一类统计数值包用户连续产生或者间隔产生的流式数据依次经过第一分布式计算处理而得到的多个实时的统计数值。例如,用户在第一时刻在直播间中消费了数值A,在第一时刻之后的第二时刻在该直播间中消费量数值B,则消费数值A和消费数值B均为该用户的第一类统计数值。
在一些实施例中,第二类统计数值包括用户在某一固定时间窗内累计产生的流式数据经过第二分布式计算处理而得到的单个累计的统计数值。例如,用户在第一时刻至第二时刻之间,在直播间中观看直播的时长为C,则消观看时长C为该用户的第二类统计数值。
步骤S13,将第一类统计数值累加到第一有序列表和第二有序列表中用户信息对应的统计数值中,以更新第一有序列表和第二有序列表中的用户排序。
在一些实施例中,第一有序列表和第二有序列表均为通过设置自动排序的程序或者应用以根据用户的统计数值对用户进行排序的用户列表。
其中,第一有序列表和第二有序列表包括的统计数值的长度可以相同也可以不相同,可以有重叠的统计数值也可以有完全不重叠的统计数值。
作为一示例,服务器在将第一类统计数值P1累加到第一有序列表和第二有序列表中用户信息对应的统计数值中之前,第一有序列表包括的统计数值为无,而此时第二有序列表包括的统计数值为P2,则此时第一有序列表和第二有序列表包括的统计数值的长度不相同。而在将第一类统计数值P1累加到第一有序列表和第二有序列表中用户信息对应的统计数值中之后,第一有序列表包括的统计数值为P1,而此时第二有序列表包括的统计数值为P1+P2,则此时第一有序列表和第二有序列表包括的统计数值有部分的重叠。
步骤S14,在预设时间窗对应的第二类统计数值被计算出之后,在更新后的第二有序列表中,还将在预设时间窗内累加的第一类统计数值替换为第二类统计数值,以再次更新第二有序列表中的用户排序。
在一些实施例中,在更新后的第二有序列表中,在预设时间窗内累加的第一类统计数值和第二类统计数值均为一个相同时间和日期范围内的累计统计数值。
其中,由于第一类统计数值和第二类统计数值经过的分布式计算处理不相同,因此,两者所包括的统计数值也不相同,即将在预设时间窗内累加的第一类统计数值替换为第二类统计数值之后,再次更新的第二有序列表中的用户排序的有效性和准确性与再次更新之前不相同。
上述用户列表的更新方法中,服务器先通过获取直播间中用户的用户信息和流式数据;再对流式数据分别进行第一分布式计算处理和第二分布式计算处理,以得到用户的在线行为的第一类统计数值和第二类统计数值;其中,流式数据为监测用户在直播间的在线行为所产生的实时记录数据;第一分布式计算处理不同于第二分布式计算处理;第一类统计数值表征用户的在线行为的实时统计数值,第二类统计数值表征在预设时间窗内用户的在线行为的累计统计数值;最后,将第一类统计数值累加到第一有序列表和第二有序列表中用户信息对应的统计数值中,以更新第一有序列表和第二有序列表中的用户排序;并且,在更新后的第二有序列表中,还将在预设时间窗内累加的第一类统计数值替换为第二类统计数值,以再次更新第二有序列表中的用户排序。这样,一方面,利用分布式计算的方式来处理用户实时产生的流式数据,以能够在短时间内处理大量的数据流,增强了用户行为统计数值的实时性和提升了处理高并发场景的能力;另一方面,利用计算用户在预设时间窗内的累计统计数值来更新用户列表,以能够在用户列表经过实时的统计数值更新之后而再次更新,从而提升了用户列表的有效性和准确性。
本领域技术人员可以理解地,在具体实施方式的上述方法中,所揭露的方法可以通过更为具体的方式以实现。例如,上述的用户列表的更新的实施方式仅仅是一种示意性的描述。
示例性地,对流式数据分别进行第一分布式计算处理和第二分布式计算处理,得到用户的在线行为的第一类统计数值和第二类统计数值的过程;或者将在预设时间窗内累加的第一类统计数值替换为第二类统计数值的过程等等,其仅仅为一种集合的方式,实际实现时可以有另外的划分方式,例如第一类统计数值和第二类统计数值可以结合或者可以集合到另一个系统中,或一些特征可以忽略,或不执行。
在更具体的实施方式中,在服务器实现对流式数据分别进行第一分布式计算处理和第二分布式计算处理的过程中,还可以包括需要利用各种分布式计算引擎来计算各类统计数值。随后,再基于对应的时间节点对第一有序列表和第二有序列表进行更新和修正的过程。
在一示例性实施例中,参阅图3,图3为本申请中对流式数据进行分布式计算处理一实施例的流程示意图。在步骤S12中,服务器对流式数据分别进行第一分布式计算处理和第二分布式计算处理,得到用户的在线行为的第一类统计数值和第二类统计数值,具体可以通过以下方式实现:
步骤S121,将流式数据导入消息队列中,暂存流式数据。
在一实施例中,服务器获取的流式数据至少包括接入数据、断开数据、心跳包数据和消费数据。
其中,接入数据是指用户进入直播间时与直播间建立连接的数据,断开数据是指用户退出直播间时与直播间断开连接的数据,心跳包数据是指用户在直播间中持续在一个预定时间内无操作时直播间记录的在线数据,消费数据是指用户在直播间中产生消费(如,购买商品、打赏物品、发送红包等等)的数据。
其中,接入数据、断开数据、心跳包数据和消费数据包括有用户产生该数据时的时间信息,消费数据还包括有用户产生该数据时对应的消费数量或者消费数额。
在一实施例中,按照获取流式数据的时间顺序,将每一类型的流式数据导入消息队列对应的分区队列中,以分区暂存流式数据。
在一些实施例中,服务器实时的获取用户产生的流式数据,即用户产生一流水数据,则服务器立即获取该流式数据,并根据获取到流式数据的时间先后顺序,依次将对应类型的流式数据导入对应的分区队列中,以分区暂存流式数据。
其中,消息队列包括多个分区队列,每个分区队列用于存储一种类型的流式数据,并且存储流式数据为按照获取流式数据的时间先后顺序依次存储。
在一些实施例中,消息队列可以为Kafka、Pulsar或者Tube等消息队列。其中,Kafka、Pulsar或者Tube可以运行在队列集群上,该队列集群包含一个或多个服务器,每一个服务器用于管理一个分区队列。例如,kafka将流式数据存在一个topic中,每一条数据均包含键值(key),值(value)和时间戳(timestamp)。
步骤S122,基于暂存流式数据的时间顺序,利用第一分布式计算引擎对流式数据进行实时的分布式流计算处理,得到第一类统计数值。
在一些实施例中,第一类统计数值包括实时在线时长和实时消费数量中至少一项。
在一些实施例中,实时在线时长和实时消费数量为第一分布式计算引擎每隔一预设时间域计算一次。
其中,实时在线时长可以是指用户从当前时刻到之前一段预设时间域内处于直播间中的在线数据。实时消费数量可以是指用户从当前时刻到之前一段预设时间域内处于直播间中的消费数量。
作为示例,服务器预设的时间域为1分钟,则服务器实时地每经过1分钟统计一次该用户是否处于直播间中,若该用户从当前时刻到之前1分钟内始终处于直播间中,则计算出的该用户在当前一个时间域内的在线数据为1分钟,若该用户从当前时刻到之后1分钟内存在不处于直播间中,则计算出的该用户在后面的一个时间域内的在线数据为0分钟。
作为示例,服务器预设的时间域为5分钟,则服务器实时地每经过5分钟统计一次该用户是否在直播间中进行消费,若该用户从当前时刻到之前5分钟内在直播间中消费了数量A,则计算出的该用户在当前一个时间域内的消费数量为数量A,若该用户从当前时刻到之后5分钟内在直播间中消费了数量B,则计算出的该用户在后面的一个时间域内的消费数量为数量B。
在一示例性实施例中,参阅图4,图4为本申请中得到第一类统计数值一实施例的流程示意图。在步骤S122中,服务器利用第一分布式计算引擎对流式数据进行实时的分布式流计算处理,得到第一类统计数值,具体可以通过以下方式实现:
步骤a1,基于暂存流式数据的时间顺序,利用第一分布式计算引擎依次从对应类型的分区队列中读取出流式数据。
在一些实施例中,当服务器检测到消息队列中新存入流式数据时,服务器立即启动第一分布式计算引擎以在对应类型的分区队列中对新存入的流式数据进行实时的读取。
步骤a2:对读取的流式数据进行流式数据转换,得到第一类统计数值。
在一实施例中,服务器利用第一分布式计算引擎通过预置的转换操作符对读取的接入数据、断开数据和心跳包数据进行逐条数据转换操作,得到用户的实时在线时长。
在一实施例中,服务器利用第一分布式计算引擎通过转换操作符对读取的消费数据进行逐条数据转换操作,得到用户的实时消费数量。
在一些实施例中,第一分布式计算引擎可以为Flink分布式计算框架或者Blink分布式计算框架等对数据处理具有实时性和高并发处理要求较高的计算引擎。
在一些实施例中,第一分布式计算引擎为Flink分布式计算框架。Flink分布式计算框架将读取的流式数据转换为数据结构Stream,并采用基于操作符(Operator)的连续流模型对数据结构Stream进行逐条的转换操作(Transformation)。
其中,数据结构Stream包含的数据随着流式数据的增长而增长。即每当有新的数据进来,整个转换操作流程都会被执行并更新结果。
其中,当一个数据结构Stream被执行的时候,会被映射为多个数据结构Dataflow。每个数据结构Dataflow都被依次转换一个输入数据源(Source)和输出数据源(Sink)。其中,输出数据源即为转换得到用户的实时在线时长或者实时消费数量。
步骤S123,基于暂存流式数据的时间顺序,确定预设时间窗内的流式数据,利用第二分布式计算引擎对预设时间窗内的流式数据进行分布式批计算处理,得到第二类统计数值。
在一些实施例中,第二类统计数值包括在预设时间窗内的累计在线时长和累计消费数量中至少一项。
在一些实施例中,累计在线时长和累计消费数量为第二分布式计算引擎在一个预设的滑动时间窗内的累计计算数值。
其中,累计在线时长可以是指用户从一个时刻到另一时刻之间一段时间域内处于直播间中的总在线数据。实时消费数量可以是指用户从一个时刻到另一时刻之间一段时间域内处于直播间中的总消费数量。
作为示例,服务器预设的滑动时间窗为当日的0点至当日的23:59分,则服务器在当日的23:59分之后,开始统计该用户在当日的0点至当日的23:59分之间处于直播间中累计的在线时长C。
作为示例,服务器预设的滑动时间窗为当日的0点至当日的23:59分,则服务器在当日的23:59分之后,开始统计该用户在当日的0点至当日的23:59分之间在直播间中进行消费的累计数量D。
在一示例性实施例中,参阅图5,图5为本申请中得到第二类统计数值一实施例的流程示意图。在步骤S123中,服务器利用第二分布式计算引擎对流式数据进行实时的分布式批计算处理,得到第二类统计数值,具体可以通过以下方式实现:
步骤b1,从各类型的分区队列中提取出流式数据,存储在一离线数据库中。
其中,服务器将提取出的各类型的流式数据基于流式数据获取的时间先后顺序,将流式数据按照对应类型分区存储在一离线数据库中。
在一实施例中,离线数据库可以为MySQL数据库、Oracle数据库等关系型数据库或者Clickhouse数据库等实时数据仓,其能够利用分布式存储规范存储大量的流式数据。
步骤b2,响应于处于预设的时间节点时,利用第二分布式计算引擎从离线数据库中读取出预设时间窗内的流式数据。
在一些实施例中,当服务器响应于到达预设的时间节点时,服务器立即启动第二分布式计算引擎在离线数据库中对应类型的分布式存储介质中对在预设时间窗内存入的流式数据进行读取。
步骤b3:对预设时间窗内的流式数据进行批式数据转换,得到第二类统计数值。
在一实施例中,服务器利用第二分布式计算引擎按照读取流式数据的时间先后顺序,对预设时间窗内的接入数据、断开数据和心跳包数据进行分区数据转换操作,得到用户在预设时间窗内的累计在线时长。
在一实施例中,利用第二分布式计算引擎按照读取流式数据的时间先后顺序,对预设时间窗内的消费数据进行分区数据转换操作,得到用户在预设时间窗内的累计消费数量。
在一些实施例中,第一分布式计算引擎可以为Spark分布式计算框架或者Storm分布式计算框架等对数据处理具有准确性和数据有效性要求较高的计算引擎。
在一些实施例中,第二分布式计算引擎为Spark分布式计算框架。Spark分布式计算框架利用多线程来执行具体的任务,减少任务的启动开销。具体地,当启动一个Spark应用时,首先由任务控制节点(Driver)创建一个SparkContext程序,由SparkContext程序向资源管理器注册并申请运行批式数据转换的流式数据资源;然后,资源管理器为SparkContext程序分配流式数据资源,并启动SparkContext程序进程。其中,SparkContext程序根据Spark分布式计算框架中RDD数据结构的依赖关系将流式数据资源构建为DAG图,并将DAG图提交给DAG调度器(DAGScheduler)进行解析,将DAG图分解成多个“阶段”(每个阶段都是一个任务集),并且计算出各个阶段之间的依赖关系,然后把一个个“任务集”提交给底层的任务调度器(TaskScheduler)进行数据转换处理,最后,任务调度器把执行结果反馈给任务调度器,然后反馈给DAG调度器,运行完毕后写入数据并释放所有资源。其中,DAG调度器释放的资源包括用户在预设时间窗内的累计在线时长和累计消费数量。
在一示例性实施例中,参阅图6,图6为本申请中更新有序列表中的用户排序一实施例的流程示意图。在步骤S13中,服务器将第一类统计数值累加到第一有序列表和第二有序列表中用户信息对应的统计数值中,以更新第一有序列表和第二有序列表中的用户排序,具体可以通过以下方式实现:
步骤S131,将第一类统计数值实时累加到第一有序列表和第二有序列表中用户信息对应的总统计数值中。
在一实施例中,第一有序列表包括当日的实时时长列表和实时消费列表,第二有序列表包括预设天数内的累计时长列表和累计消费列表。
在一些实施例中,当日的实时时长列表用于表征多个用户当日在某一直播间中累计观看直播的总在线时长的排序情况,且总在线时长可以随着用户在当日观看直播的时间的增长而增加。
在一些实施例中,当日的实时消费列表用于表征多个用户当日在某一直播间中累计消费的总消费数量的排序情况,且总消费数量可以随着用户在当日在直播间中消费的增长而增加。
在一些实施例中,预设天数内的累计时长列表用于表征多个用户在一个预设天数内在某一直播间中累计观看直播的总在线时长的排序情况,且总在线时长可以随着用户在预设天数内观看直播的时间的增长而增加。
在一些实施例中,预设天数内的累计消费列表用于表征多个用户在一个预设天数内在某一直播间中累计消费的总消费数量的排序情况,且总消费数量可以随着用户在预设天数内在直播间中消费的增长而增加。
在某些实施例中,预设天数内可以包括当日的天数。即预设天数为T+1形式的时间域,“T”为当日之前已结束的时间域,“1”为当日还在动态增长的时间域。
在一些实施例中,第一有序列表和第二有序列表可以为Redis数据存储结果中的zset有序列表。
在一实施例中,服务器将实时在线时长分别累加到实时时长列表和累计时长列表中用户信息对应的总在线时长中;以及,服务器将实时消费数量分别累加到实时消费列表和累计消费列表中用户信息对应的总消费数量中。
步骤S132,基于第一有序列表和第二有序列表中各用户信息对应的总统计数值的大小顺序,分别更新第一有序列表和第二有序列表中的用户排序。
在一些实施例中,第一有序列表和第二有序列表均为通过设置自动排序的程序或者应用以根据用户的统计数值对用户进行排序的用户列表。
其中,第一有序列表和第二有序列表包括的统计数值的长度可以相同也可以不相同,可以有重叠的统计数值也可以有完全不重叠的统计数值。
作为一示例,服务器在将第一类统计数值P1累加到第一有序列表和第二有序列表中用户信息对应的统计数值中之前,第一有序列表包括的统计数值为无,而此时第二有序列表包括的统计数值为P2,则此时第一有序列表和第二有序列表包括的统计数值的长度不相同。而在将第一类统计数值P1累加到第一有序列表和第二有序列表中用户信息对应的统计数值中之后,第一有序列表包括的统计数值为P1,而此时第二有序列表包括的统计数值为P1+P2,则此时第一有序列表和第二有序列表包括的统计数值有部分的重叠。
在步骤S14中,服务器将在预设时间窗内累加的第一类统计数值替换为第二类统计数值,具体可以通过:在更新后的累计时长列表中,将在预设时间窗内累加的实时在线时长替换为预设时间窗内的累计在线时长;以及在更新后的累计消费列表中,将在预设时间窗内累加的实时消费数量替换为预设时间窗内的累计消费数量。
作为一示例,在通过第一分布式流计算引擎计算的实时在线时长P1更新后的累计时长列表中,服务器将预设时间窗内累加的实时在线时长P1替换为通过第二分布式批计算引擎计算的累计在线时长P2,以再次更新累计时长列表中的用户排序。以及,在通过第一分布式流计算引擎计算的实时消费数量P3更新后的累计消费列表中,服务器将预设时间窗内累加的实时消费数量P3替换为通过第二分布式批计算引擎计算的累计消费数量P4,以再次更新累计消费列表中的用户排序。
在一示例性实施例中,参阅图7,图7为本申请中对有序列表进行修正一实施例的流程示意图。在步骤S13之后,服务器还可以对第一有序列表和第二有序列表中的用户的用户栏进行修正,具体可以通过以下方式实现:
步骤c1,基于用户信息,在存储流式数据的离线数据库中确定出在一预设天数内不存在流式数据的用户名单。
其中,在离线数据库中存储有长时间范围内的流式数据,该长时间范围可以数天、数个月等等。服务器通过直播间中用户的用户信息(包括用户ID信息)在离线数据库中检索出,在最近的预设天数内不存在流式数据的用户名单。
步骤c2,将用户名单对应在第一有序列表和第二有序列表中的用户的用户栏删除,以修正第一有序列表和第二有序列表。
其中,服务器在第一有序列表和第二有序列表中将上述用户名单对应的用户栏删除,以将在最近的预设天数内不存在流式数据(即未观看直播或者未在直播间中进行消费)的用户进行删除,以修正第一有序列表和第二有序列表。
在一个实施例中,如图8所示,提供了一种用户列表的显示方法,以该方法应用于图1中的服务器104为例进行说明,包括以下步骤:
步骤S21:基于直播间的直播数据查看页面,显示多个直播数据对应的预览选项。
在一示例性实施例中,参阅图9,图9为本申请中显示多个直播数据对应的预览选项一实施例的界面示意图。其中,该显示界面为直播间的直播数据查看页面,该直播数据查看页面包括观众管理列表。其中,在观众管理列表中显示有多个直播数据对应的预览选项,包括“按今日消费排序”对应实时消费列表的预览选项,“按今日观看时长排序”对应实时在线时长列表的预览选项,“按近31日消费排序”对应累计消费列表的预览选项,“按近31日时长排序”对应累计时长列表的预览选项。
步骤S22:响应于对用于查看目标用户列表的目标预览选项的触发指令,从远程数据库存储的有序列表中获取目标用户列表。
在一实施例中,远程数据库保存有多个有序列表,该多个有序列表包括上述实施例中的实时消费列表、实时在线时长列表、累计消费列表、累计时长列表。
步骤S23:显示目标用户列表。
在一示例性实施例中,参阅图10,图10为本申请中显示目标用户列表一实施例的界面示意图。其中,该显示界面为观众管理列表中的“按今日消费列表”,即实时消费列表。其中,在实时消费列表中显示有6个用户账号对应的总消费记录。该6个用户账号根据其总消费记录的大小顺序依次排序。
为了更清晰阐明本公开实施例提供的用户列表的更新方法,以下以一个具体的实施例对该用户列表的更新方法进行具体说明。在一示例性实施例中,参考图11和图12,图11为根据另一示例性实施例示出的一种用户列表的更新方法的流程图,图12为根据右一示例性实施例示出的一种用户列表的更新方法的流程图,该用户列表的更新方法用于服务器104中,具体包括如下内容:
步骤S31:当观众在直播平台观看主播的直播或者给主播送礼时,服务器持续的获取大量的直播消息的流水数据。
其中,直播消息的流水数据包括:进出直播间消息、观众的心跳消息、观众送礼消息。
其中,直播平台可以包括平台A1(如,全民K歌)、平台A2(如,QQ音乐)或者平台A3(如,懒人听书)等等。
步骤S32:服务器将流水数据发送到消息队列中,并分别通过Flink程序和Spark程序来负责消费流水数据,以计算得出观众的观看时长和消费金额。
步骤S33:服务器将观看时长和消费金额分别累加到Redis数据结构的zset有序列表中,以使zset有序列表将对应观众的排名自动更新。
其中,消息队列可以包括队列B1(如,Kafka分布式存储队列),队列B2(如,Pulsar分布式存储队列),队列B3(Tube分布式存储队列)等等。
在一示例性实施例中,参考图13,图13为根据另一示例性实施例示出的通过分布式计算处理数据的流程图。其中,第一有序列表包括“今日消费ZSET”和“今日观看ZSET”,第二有序列表为“累计消费ZSET”和“累计观看ZSET”,第三有序列表为“昨日消费ZSET”(图未示出)和“昨日观看ZSET”(图未示出)。
其中,在第T+1天时,即为当日时,第一有序列表A是通过Flink程序对“第T+1天”的流水数据进行第一分布式计算得出的“第T+1天的统计数值”经过累加得到。
其中,在第T+1天时,即为当日时,第二有序列表B是通过Spark程序对“第1天至第T天”的流水数据进行第二分布式计算得出的“第1天至第T天的统计数值”经过累加,以及累加当日的第一有序列表A得到。
其中,在第T+2天时,即为当日结束后的第二日时,第三有序列表C是通过Spark程序对“第T+1天”的流水数据进行第二分布式计算得出的“第T+1天的统计数值”得到。
进一步地,在第T+2天时,即为当日结束后的第二日时,服务器将第二有序列表B中累加的第一有序列表A替换为第三有序列表C,以得到完全经由Spark程序对“第1天至第T+1天”的流水数据进行第二分布式计算得出的“第1天至第T+1天的统计数值”对应的第二有序列表B+C。
其中,Spark程序可以在每天离线运行计算昨日流水数据一次。并也可以处理31日内的流水数据,以识别出已经不在31日内进入直播间的观众,并从Redis的zset有序列表中删除对应的观众
其中,Flink流处理程序消费直播间的观众观看及送礼流水,实时计算观众当前观看时长和送礼金额,并分别累加到redis的4种不同排序规则的zset key上。由于zset是始终有序的,所以应用可以直接从相应的zset中拉取排序好的观众列表。因此,可以充分利用Flink实时流处理能力、redis的zset有序列表数据结构以及redis的高并发高性能特性,解决了实时排序的性能问题。
其中,Flink流处理程序只负责实时累加数据,并不会采用滑动时间窗口来处理近31日的数据。而通过离线数据仓库,并采用T+1的方式计算出来昨天从31日中消失的观众,然后通过spark程序将这些观众从redis的zset中删除这些观众即可。这样就可以巧妙的解决31日滑动窗口的问题,也不影响Flink的流处理性能。
步骤S34:服务器在直播平台的后台从对应的zset有序列表中拉取包括Top N个用户的观众列表,以展示在直播平台的显示界面。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的用户列表的更新方法的用户列表的更新装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个用户列表的更新装置实施例中的具体限定可以参见上文中对于用户列表的更新方法的限定,在此不再赘述。
在一个实施例中,如图14所示,提供了一种用户列表的更新装置10,包括:获取模块11、数据处理模块12、第一更新模块13和第二更新模块14,其中:
获取模块11,用于获取直播间中用户的用户信息和流式数据;所述流式数据为监测所述用户在所述直播间的在线行为所产生的实时记录数据。
数据处理模块12,用于对所述流式数据分别进行第一分布式计算处理和第二分布式计算处理,得到所述用户的在线行为的第一类统计数值和第二类统计数值;所述第一分布式计算处理不同于所述第二分布式计算处理;所述第一类统计数值表征所述用户的在线行为的实时统计数值,第二类统计数值表征在预设时间窗内所述用户的在线行为的累计统计数值。
第一更新模块13,用于将所述第一类统计数值累加到第一有序列表和第二有序列表中所述用户信息对应的统计数值中,以更新所述第一有序列表和所述第二有序列表中的用户排序。
第二更新模块14,用于在更新后的所述第二有序列表中,将在所述预设时间窗内累加的所述第一类统计数值替换为所述第二类统计数值,以再次更新所述第二有序列表中的用户排序。
进一步地,数据处理模块12,还用于将所述流式数据导入消息队列中,暂存所述流式数据;
基于暂存所述流式数据的时间顺序,利用第一分布式计算引擎对所述流式数据进行实时的分布式流计算处理,得到所述第一类统计数值;以及
基于暂存所述流式数据的时间顺序,确定预设时间窗内的流式数据,利用第二分布式计算引擎对所述预设时间窗内的流式数据进行分布式批计算处理,得到所述第二类统计数值。
进一步地,数据处理模块12,还用于按照获取所述流式数据的时间顺序,将每一类型的所述流式数据导入所述消息队列对应的分区队列中,以分区暂存所述流式数据。
进一步地,数据处理模块12,还用于基于暂存所述流式数据的时间顺序,利用所述第一分布式计算引擎依次从对应类型的所述分区队列中读取出所述流式数据;
对读取的所述流式数据进行流式数据转换,得到所述第一类统计数值。
进一步地,数据处理模块12,还用于利用所述第一分布式计算引擎通过预置的转换操作符对读取的所述接入数据、所述断开数据和所述心跳包数据进行逐条数据转换操作,得到所述用户的实时在线时长;和
利用所述第一分布式计算引擎通过所述转换操作符对读取的所述消费数据进行逐条数据转换操作,得到所述用户的实时消费数量。
进一步地,数据处理模块12,还用于从各类型的所述分区队列中提取出所述流式数据,存储在一离线数据库中;
响应于处于所述预设的时间节点时,利用所述第二分布式计算引擎从所述离线数据库中读取出所述预设时间窗内的流式数据;
对所述预设时间窗内的流式数据进行批式数据转换,得到所述第二类统计数值。
进一步地,数据处理模块12,还用于利用所述第二分布式计算引擎按照读取所述流式数据的时间先后顺序,对所述预设时间窗内的接入数据、断开数据和心跳包数据进行分区数据转换操作,得到所述用户在所述预设时间窗内的累计在线时长;和
利用所述第二分布式计算引擎按照读取所述流式数据的时间先后顺序,对所述预设时间窗内的消费数据进行分区数据转换操作,得到所述用户在所述预设时间窗内的累计消费数量。
进一步地,第一更新模块13,还用于将所述第一类统计数值实时累加到所述第一有序列表和所述第二有序列表中所述用户信息对应的总统计数值中;
基于所述第一有序列表和所述第二有序列表中各用户信息对应的总统计数值的大小顺序,分别更新所述第一有序列表和所述第二有序列表中的用户排序。
进一步地,第一更新模块13,还用于将所述实时在线时长分别累加到所述实时时长列表和所述累计时长列表中所述用户信息对应的总在线时长中;和
将所述实时消费数量分别累加到所述实时消费列表和所述累计消费列表中所述用户信息对应的总消费数量中。
进一步地,第二更新模块14,还用于在更新后的所述累计时长列表中,将在所述预设时间窗内累加的所述实时在线时长替换为所述预设时间窗内的累计在线时长;和
在更新后的所述累计消费列表中,将在所述预设时间窗内累加的所述实时消费数量替换为所述预设时间窗内的累计消费数量。
进一步地,第二更新模块14,还用于基于所述用户信息,在存储所述流式数据的离线数据库中确定出在一预设天数内不存在流式数据的用户名单;
将所述用户名单对应在所述第一有序列表和所述第二有序列表中的用户的用户栏删除,以修正所述第一有序列表和所述第二有序列表。
上述用户列表的更新装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图15是根据一示例性实施例示出的一种用于电子资源的发放校验的电子设备20的框图。例如,电子设备20可以为服务器。参照图15,电子设备20包括处理组件21,其进一步包括一个或多个处理器,以及由存储器22所代表的存储器资源,用于存储可由处理组件21的执行的可执行指令,例如应用程序。存储器22中存储的应用程序可以包括一个或一个以上的每一个对应于一组可执行指令的模块。此外,处理组件21被配置为执行可执行指令,以执行上述方法。
在一实施例中,电子设备20为服务器,该服务器中的计算系统可以运行一个或多个操作系统,包括以上讨论的任何操作系统以及任何商用的服务器操作系统。该服务器还可以运行各种附加服务器应用和/或中间层应用中的任何一种,包括HTTP(超文本传输协议)服务器、FTP(文件传输协议)服务器、CGI(通用网关界面)服务器、服务器、数据库服务器等。示例性数据库服务器包括但不限于可从(国际商业机器)等商购获得的数据库服务器。
在一实施例中,处理组件21通常控制电子设备20的整体操作,诸如与显示、数据处理、数据通信和记录操作相关联的操作。处理组件21可以包括一个或多个处理器来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件21可以包括一个或多个模块,便于处理组件21和其他组件之间的交互。例如,处理组件21可以包括多媒体模块,以方便利用多媒体组件控制用户终端和处理组件21之间的交互。
在一实施例中,处理组件21中的处理器还可以称为CPU(Central ProcessingUnit,中央处理单元)。处理器可能是一种电子芯片,具有信号的处理能力。处理器还可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。另外,处理器可以由集成电路芯片共同实现。
在一实施例中,存储器22被配置为存储各种类型的数据以支持在电子设备20的操作。这些数据的示例包括用于在电子设备20上操作的任何应用程序或方法的指令、采集数据、消息、图片、视频等。存储器22可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM)、电可擦除可编程只读存储器(EEPROM)、可擦除可编程只读存储器(EPROM)、可编程只读存储器(PROM)、只读存储器(ROM)、磁存储器、快闪存储器、磁盘、光盘或石墨烯存储器。
在一实施例中,存储器22可以为内存条、TF卡等,可以存储电子设备20中的全部信息,包括输入的原始数据、计算机程序、中间运行结果和最终运行结果都保存在在一实施例中,存储器22中。它根据处理器指定的位置存入和取出信息。有了在一实施例中,存储器22,电子设备20才有记忆功能,才能保证正常工作。电子设备20的在一实施例中,存储器22按用途可分为主存储器(内存)和辅助存储器(外存),也有分为外部存储器和内部存储器的分类方法。外存通常是磁性介质或光盘等,能长期保存信息。内存指主板上的存储部件,用来存放当前正在执行的数据和程序,但仅用于暂时存放程序和数据,关闭电源或断电,数据会丢失。
电子设备20还可以包括:电源组件23被配置为执行电子设备20的电源管理,有线或无线网络接口24被配置为将电子设备20连接到网络,和输入输出(I/O)接口25。电子设备20可以操作基于存储在存储器22的操作系统,例如Windows Server,Mac OS X,Unix,Linux,FreeBSD或类似。
在一实施例中,电源组件23为电子设备20的各种组件提供电力。电源组件23可以包括电源管理系统,一个或多个电源,及其他与为电子设备20生成、管理和分配电力相关联的组件。
在一实施例中,有线或无线网络接口24被配置为便于电子设备20和其他设备之间有线或无线方式的通信。电子设备20可以接入基于通信标准的无线网络,如WiFi,运营商网络(如2G、3G、4G或5G),或它们的组合。
在一个示例性实施例中,有线或无线网络接口24经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,有线或无线网络接口24还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在一实施例中,输入输出(I/O)接口25为处理组件21和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
图16是根据一示例性实施例示出的一种用于电子资源的发放校验的计算机可读存储介质30的框图。该计算机可读存储介质30中存储有能够实现上述用户列表的更新方法,或者上述用户列表的显示方法的程序数据31。
在本申请各个实施例中的各功能单元集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在计算机可读存储介质30中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机可读存储介质30在一个程序数据31中,包括若干指令用以使得一台计算机设备(可以是个人计算机,系统服务器,或者网络设备等)、电子设备(例如MP3、MP4等,也可以是手机、平板电脑、可穿戴设备等智能终端,也可以是台式电脑等)或者处理器(processor)以执行本申请各个实施方式方法的全部或部分步骤。
图17是根据一示例性实施例示出的一种用于电子资源的发放校验的计算机程序产品40的框图。该计算机程序产品40中包括程序指令41,上述程序数据可由电子设备20的处理器执行以完成上述方法。
本领域内的技术人员应明白,本申请的实施例可提供为用户列表的显示方法、用户列表的显示装置10、电子设备20、计算机可读存储介质30或计算机程序产品40。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机程序指令41(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品40的形式。
本申请是参照根据本申请实施例的用户列表的显示方法、用户列表的显示装置10、电子设备20、计算机可读存储介质30或计算机程序产品40的流程图和/或方框图来描述的。应理解可由计算机程序产品40实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序产品40到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的程序指令41产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序产品40也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机程序产品40中的程序指令41产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些程序指令41也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的程序指令41提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
需要说明的,上述的装置、电子设备、计算机可读存储介质、计算机程序产品等根据方法实施例的描述还可以包括其他的实施方式,具体的实现方式可以参照相关方法实施例的描述,在此不作一一赘述。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (13)

1.一种用户列表的更新方法,其特征在于,所述方法包括:
获取直播间中用户的用户信息和流式数据;所述流式数据为监测所述用户在所述直播间的在线行为所产生的实时记录数据;
对所述流式数据分别进行第一分布式计算处理和第二分布式计算处理,得到所述用户的在线行为的第一类统计数值和第二类统计数值;所述第一分布式计算处理不同于所述第二分布式计算处理;所述第一类统计数值表征所述用户的在线行为的实时统计数值,第二类统计数值表征在预设时间窗内所述用户的在线行为的累计统计数值;
将所述第一类统计数值累加到第一有序列表和第二有序列表中所述用户信息对应的统计数值中,以更新所述第一有序列表和所述第二有序列表中的用户排序;
在预设时间窗对应的所述第二类统计数值被计算出之后,在更新后的所述第二有序列表中,将在所述预设时间窗内累加的所述第一类统计数值替换为所述第二类统计数值,以再次更新所述第二有序列表中的用户排序。
2.根据权利要求1所述的方法,其特征在于,所述对所述流式数据分别进行第一分布式计算处理和第二分布式计算处理,得到所述用户的在线行为的第一类统计数值和第二类统计数值,包括:
将所述流式数据导入消息队列中,暂存所述流式数据;
基于暂存所述流式数据的时间顺序,利用第一分布式计算引擎对所述流式数据进行实时的分布式流计算处理,得到所述第一类统计数值;以及
基于暂存所述流式数据的时间顺序,确定预设时间窗内的流式数据,利用第二分布式计算引擎对所述预设时间窗内的流式数据进行分布式批计算处理,得到所述第二类统计数值。
3.根据权利要求2所述的方法,其特征在于,所述流式数据至少包括接入数据、断开数据、心跳包数据和消费数据;所述将所述流式数据导入消息队列中,暂存所述流式数据,包括:
按照获取所述流式数据的时间顺序,将每一类型的所述流式数据导入所述消息队列对应的分区队列中,以分区暂存所述流式数据。
4.根据权利要求3所述的方法,其特征在于,所述利用第一分布式计算引擎对所述流式数据进行分布式流计算处理,得到所述第一类统计数值,包括:
基于暂存所述流式数据的时间顺序,利用所述第一分布式计算引擎依次从对应类型的所述分区队列中读取出所述流式数据;
对读取的所述流式数据进行流式数据转换,得到所述第一类统计数值。
5.根据权利要求4所述的方法,其特征在于,所述第一类统计数值包括实时在线时长和实时消费数量中至少一项;所述对读取的所述流式数据进行流式数据转换,得到所述第一类统计数值,包括以下至少一项:
利用所述第一分布式计算引擎通过预置的转换操作符对读取的所述接入数据、所述断开数据和所述心跳包数据进行逐条数据转换操作,得到所述用户的实时在线时长;
利用所述第一分布式计算引擎通过所述转换操作符对读取的所述消费数据进行逐条数据转换操作,得到所述用户的实时消费数量。
6.根据权利要求3所述的方法,其特征在于,所述利用第二分布式计算引擎对所述流式数据进行分布式批计算处理,得到所述第二类统计数值,包括:
从各类型的所述分区队列中提取出所述流式数据,存储在一离线数据库中;
响应于处于预设的时间节点时,利用所述第二分布式计算引擎从所述离线数据库中读取出所述预设时间窗内的流式数据;
对所述预设时间窗内的流式数据进行批式数据转换,得到所述第二类统计数值。
7.根据权利要求6所述的方法,其特征在于,所述第二类统计数值包括在所述预设时间窗内的累计在线时长和累计消费数量中至少一项;所述对所述预设时间窗内的流式数据进行批式数据转换,得到所述第二类统计数值,包括以下至少一项:
利用所述第二分布式计算引擎按照读取所述流式数据的时间先后顺序,对所述预设时间窗内的接入数据、断开数据和心跳包数据进行分区数据转换操作,得到所述用户在所述预设时间窗内的累计在线时长;
利用所述第二分布式计算引擎按照读取所述流式数据的时间先后顺序,对所述预设时间窗内的消费数据进行分区数据转换操作,得到所述用户在所述预设时间窗内的累计消费数量。
8.根据权利要求1所述的方法,其特征在于,所述将所述第一类统计数值累加到第一有序列表和第二有序列表中所述用户信息对应的统计数值中,以更新所述第一有序列表和所述第二有序列表中的用户排序,包括:
将所述第一类统计数值实时累加到所述第一有序列表和所述第二有序列表中所述用户信息对应的总统计数值中;
基于所述第一有序列表和所述第二有序列表中各用户信息对应的总统计数值的大小顺序,分别更新所述第一有序列表和所述第二有序列表中的用户排序。
9.根据权利要求8所述的方法,其特征在于,所述第一有序列表包括当日的实时时长列表和实时消费列表至少一项,所述第二有序列表包括预设天数内的累计时长列表和累计消费列表至少一项,所述第一类统计数值包括当日的实时在线时长和实时消费数量;
所述将所述第一类统计数值实时累加到所述第一有序列表和所述第二有序列表中所述用户信息对应的总统计数值中,包括以下至少一项:
将所述实时在线时长分别累加到所述实时时长列表和所述累计时长列表中所述用户信息对应的总在线时长中;
将所述实时消费数量分别累加到所述实时消费列表和所述累计消费列表中所述用户信息对应的总消费数量中。
10.根据权利要求9所述的方法,其特征在于,所述第二类统计数值包括在所述预设时间窗内的累计在线时长和累计消费数量;
所述将在所述预设时间窗内累加的所述第一类统计数值替换为所述第二类统计数值,包括以下至少一项:
在更新后的所述累计时长列表中,将在所述预设时间窗内累加的所述实时在线时长替换为所述预设时间窗内的累计在线时长;
在更新后的所述累计消费列表中,将在所述预设时间窗内累加的所述实时消费数量替换为所述预设时间窗内的累计消费数量。
11.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于所述用户信息,在存储所述流式数据的离线数据库中确定出在一预设天数内不存在流式数据的用户名单;
将所述用户名单对应在所述第一有序列表和所述第二有序列表中的用户的用户栏删除,以修正所述第一有序列表和所述第二有序列表。
12.一种用户列表的显示方法,其特征在于,所述方法包括:
基于直播间的直播数据查看页面,显示多个直播数据对应的预览选项;
响应于对用于查看目标用户列表的目标预览选项的触发指令,从远程数据库存储的有序列表中获取所述目标用户列表;所述远程数据库保存有多个有序列表;所述有序列表是利用权利要求1至11中任一项所述的用户列表的更新方法得到的;
显示所述目标用户列表。
13.一种计算机程序产品,所述计算机程序产品中包括程序指令,其特征在于,在所述程序指令被电子设备的处理器执行时,使得所述电子设备能够执行如权利要求1至11中任一项所述的用户列表的更新方法和/或权利要求12所述的用户列表的显示方法。
CN202211281458.XA 2022-10-19 2022-10-19 用户列表的更新方法、用户列表的显示方法及程序产品 Pending CN115757442A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211281458.XA CN115757442A (zh) 2022-10-19 2022-10-19 用户列表的更新方法、用户列表的显示方法及程序产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211281458.XA CN115757442A (zh) 2022-10-19 2022-10-19 用户列表的更新方法、用户列表的显示方法及程序产品

Publications (1)

Publication Number Publication Date
CN115757442A true CN115757442A (zh) 2023-03-07

Family

ID=85353868

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211281458.XA Pending CN115757442A (zh) 2022-10-19 2022-10-19 用户列表的更新方法、用户列表的显示方法及程序产品

Country Status (1)

Country Link
CN (1) CN115757442A (zh)

Similar Documents

Publication Publication Date Title
JP6887544B2 (ja) イベント処理のための動的に型付けされたビッグデータによるイベントの充実化
CN102314488B (zh) 针对特定的人口统计和使用率分布从网络服务器数据获取匿名观众测量数据的方法和装置
US11657425B2 (en) Target user estimation for dynamic assets
US20140089145A1 (en) Image-based product marketing systems and methods
EP3529757A1 (en) Systems and methods for identifying process flows from log files and visualizing the flow
US11455675B2 (en) System and method of providing object for service of service provider
WO2020190649A1 (en) Methods and apparatus to estimate population reach from different marginal rating unions
CN105593854A (zh) 数据流的定制划分
CN110618982B (zh) 一种多源异构数据的处理方法、装置、介质及电子设备
US20140156463A1 (en) Systems and methods for providing music
CN103997662A (zh) 节目推送的方法及系统
CN111709732A (zh) 展示方法、装置和电子设备
CN111246273B (zh) 视频投放方法、装置、电子设备及计算机可读介质
US20140089525A1 (en) Compressed analytics data for multiple recurring time periods
CN115757442A (zh) 用户列表的更新方法、用户列表的显示方法及程序产品
CN115829579A (zh) 资源数据处理方法、装置、服务器及存储介质
US20200034369A1 (en) Active listening to manage adaptive content items
US20130265314A1 (en) Method and apparatus for capturing and analyzing real-time user sentiment for an event
CN109408716B (zh) 用于推送信息的方法和设备
KR102161051B1 (ko) 서비스 제공자의 서비스에 관한 객체를 제공하는 시스템 및 방법
US20200142937A1 (en) Enrichment of User Specific Information
CN111930927A (zh) 评价信息展示方法、装置、电子设备及可读存储介质
CN114820011A (zh) 用户群体聚类方法、装置、计算机设备和存储介质
CN111143740A (zh) 信息处理方法、装置及电子设备
CN112541784B (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