一种实时用户行为的数据处理方法、装置及电子设备与流程

文档序号:13425350阅读:145来源:国知局
一种实时用户行为的数据处理方法、装置及电子设备与流程

本发明涉及数据处理技术领域,特别是涉及一种实时用户行为的数据处理方法、装置及电子设备。



背景技术:

基于实时用户行为的数据处理,是近年来逐渐流行的一项技术,广泛应用于大型互联网公司的各类产品中。通过后台采集到的用户实时行为,对用户的产品体验进行实时的调整和反馈,不仅能优化产品,而且能针对性的对用户推荐信息。其中,比较典型的基于实时用户行为的产品有实时推荐、实时资讯推送等。

现有的基于实时用户行为的数据处理方法如图1所示,将实时用户的各种行为分开投递,并将实时用户的各种行为存放在该用户行为所对应的采集后台中,例如用户行为1采集后台、用户行为2采集后台……用户行为y采集后台等,当需要处理该实时用户的各种行为中的某种行为时,则只需找到该行为对应的采集后台,然后对该采集后台中的所有用户行为的数据进行响应,从而快速的向不同的用户推送相关的消息。

然而,发明人在实现本发明的过程中发现,现有技术至少存在如下问题:在现有的用户行为的数据处理方法中,虽然通过对实时用户行为的数据进行响应处理,能快速的向不同的用户推送相关的消息,但是某种实时用户行为的采集后台中的数据量比较大时,例如当实时用户行为为视频播放操作时,由于同时进行该播放操作的用户非常多,如果同时处理该播放操作的数据,就会使得cpu(centralprocessingunit,中央处理器)消耗过高,且处理过程耗时长,从而导致实时用户行为不能得到及时的反馈,降低用户体验。



技术实现要素:

本发明实施例的目的在于提供一种实时用户行为的数据处理方法、装置及电子设备,以实现及时的反馈实时用户行为,从而提高用户体验。具体技术方案如下:

本发明实施例公开了一种实时用户行为的数据处理方法,所述方法包括:

获取实时用户行为的数据;

根据预设分流规则,将所述数据进行分流,得到第一分流数据和第二分流数据;

通过所述第一分流数据对应的第一数据过滤引擎,对所述第一分流数据进行过滤,得到包含各类别第一数据的第一过滤数据集合,并通过所述第二分流数据对应的第二数据过滤引擎,对所述第二分流数据进行过滤,得到包含各类别第二数据的第二过滤数据集合;

对所述第一过滤数据集合中的所有数据和所述第二过滤数据集合中的所有数据进行响应,确定各类别第一数据对应的各第一待推送消息,以及各类别第二数据对应的各第二待推送消息,并将所述各第一待推送消息和所述各第二待推送消息推送给对应的用户。

可选的,所述通过所述第一分流数据对应的第一数据过滤引擎,对所述第一分流数据进行过滤,得到包含各类别第一数据的第一过滤数据集合,并通过所述第二分流数据对应的第二数据过滤引擎,对所述第二分流数据进行过滤,得到包含各类别第二数据的第二过滤数据集合之后,所述方法还包括:

将所述第一过滤数据集合中的所有数据和所述第二过滤数据集合中的所有数据存储到消息队列系统中;

相应的,对所述第一过滤数据集合中的所有数据和所述第二过滤数据集合中的所有数据进行响应,确定各类别第一数据对应的各第一待推送消息,以及各类别第二数据对应的各第二待推送消息,并将所述各第一待推送消息和所述各第二待推送消息推送给对应的用户,包括:

从所述消息队列系统中获取所述第一过滤数据集合中的所有数据和所述第二过滤数据集合中的所有数据,并对所述第一过滤数据集合中的所有数据和所述第二过滤数据集合中的所有数据进行响应,确定各类别第一数据对应的各第一待推送消息,以及各类别第二数据对应的各第二待推送消息,并将所述各第一待推送消息和所述各第二待推送消息推送给对应的用户。

可选的,所述根据预设分流规则,将所述数据进行分流,得到第一分流数据和第二分流数据,包括:

获取所述数据中各数据的优先级、延迟、以及流量;

将所述数据中优先级高于预设优先级、且延迟低于预设延迟的数据进行分流,得到所述第一分流数据;

将所述数据中流量大于预设阈值的数据进行分流,得到所述第二分流数据。

可选的,所述通过所述第一分流数据对应的第一数据过滤引擎,对所述第一分流数据进行过滤,得到包含各类别第一数据的第一过滤数据集合,并通过所述第二分流数据对应的第二数据过滤引擎,对所述第二分流数据进行过滤,得到包含各类别第二数据的第二过滤数据集合,包括:

获取包含所述第一数据过滤引擎中所有过滤逻辑的第一过滤逻辑集合和包含所述第二数据过滤引擎中所有过滤逻辑的第二过滤逻辑集合;

通过所述第一过滤逻辑集合中的每一个过滤逻辑,依次对所述第一分流数据进行过滤,得到包含各类别第一数据的所述第一过滤数据集合;

通过所述第二过滤逻辑集合中的每一个过滤逻辑,依次对所述第二分流数据进行过滤,得到包含各类别第二数据的所述第二过滤数据集合。

可选的,所述通过所述第一过滤逻辑集合中的每一个过滤逻辑,依次对所述第一分流数据进行过滤,得到包含各类别第一数据的所述第一过滤数据集合,包括:

将所述第一分流数据发送到不同的线程组;

通过各线程组在所述第一过滤逻辑集合中对应的过滤逻辑,分别对不同的线程组中包括的数据进行过滤,得到包含每个线程组对应的过滤数据的所述第一过滤数据集合。

可选的,所述根据预设分流规则,将所述数据进行分流,得到第一分流数据和第二分流数据之后,所述方法还包括:

将所述第一分流数据和第二分流数据存储在nginx日志中;

相应的,所述通过所述第一分流数据对应的第一数据过滤引擎,对所述第一分流数据进行过滤,得到包含各类别第一数据的第一过滤数据集合,并通过所述第二分流数据对应的第二数据过滤引擎,对所述第二分流数据进行过滤,得到包含各类别第二数据的第二过滤数据集合,包括:

通过所述第一分流数据对应的第一数据过滤引擎,对所述nginx日志中的所述第一分流数据进行过滤,得到包含各类别第一数据的第一过滤数据集合,并通过所述第二分流数据对应的第二数据过滤引擎,对所述nginx日志中的所述第二分流数据进行过滤,得到包含各类别第二数据的第二过滤数据集合。

本发明实施例还公开了一种实时用户行为的数据处理装置,所述装置包括:

获取模块,用于获取实时用户行为的数据;

分流模块,用于根据预设分流规则,将所述数据进行分流,得到第一分流数据和第二分流数据;

过滤模块,用于通过所述第一分流数据对应的第一数据过滤引擎,对所述第一分流数据进行过滤,得到包含各类别第一数据的第一过滤数据集合,并通过所述第二分流数据对应的第二数据过滤引擎,对所述第二分流数据进行过滤,得到包含各类别第二数据的第二过滤数据集合;

处理模块,用于对所述第一过滤数据集合中的所有数据和所述第二过滤数据集合中的所有数据进行响应,确定各类别第一数据对应的各第一待推送消息,以及各类别第二数据对应的各第二待推送消息,并将所述各第一待推送消息和所述各第二待推送消息推送给对应的用户。

可选的,所述装置还包括:

第一存储模块,用于将所述第一过滤数据集合中的所有数据和所述第二过滤数据集合中的所有数据存储到消息队列系统中;

相应的,所述处理模块,具体用于从所述消息队列系统中获取所述第一过滤数据集合中的所有数据和所述第二过滤数据集合中的所有数据,并对所述第一过滤数据集合中的所有数据和所述第二过滤数据集合中的所有数据进行响应,确定各类别第一数据对应的各第一待推送消息,以及各类别第二数据对应的各第二待推送消息,并将所述各第一待推送消息和所述各第二待推送消息推送给对应的用户。

可选的,所述分流模块,包括:

第一获取子模块,用于获取所述数据中各数据的优先级、延迟、以及流量;

第一分流子模块,用于将所述数据中优先级高于预设优先级、且延迟低于预设延迟的数据进行分流,得到包含各类别第一数据的所述第一分流数据;

第二分流子模块,用于将所述数据中流量大于预设阈值的数据进行分流,得到包含各类别第二数据的所述第二分流数据。

可选的,所述过滤模块,包括:

第二获取子模块,用于获取包含所述第一数据过滤引擎中所有过滤逻辑的第一过滤逻辑集合和包含所述第二数据过滤引擎中所有过滤逻辑的第二过滤逻辑集合;

第一过滤子模块,用于通过所述第一过滤逻辑集合中的每一个过滤逻辑,依次对所述第一分流数据进行过滤,得到包含各类别第一数据的所述第一过滤数据集合;

第二过滤子模块,用于通过所述第二过滤逻辑集合中的每一个过滤逻辑,依次对所述第二分流数据进行过滤,得到包含各类别第二数据的所述第二过滤数据集合。

可选的,所述第一过滤子模块,包括:

发送单元,用于将所述第一分流数据发送到不同的线程组;

过滤单元,用于通过各线程组在所述第一过滤逻辑集合中对应的过滤逻辑,分别对不同的线程组中包括的数据进行过滤,得到包含每个线程组对应的过滤数据的所述第一过滤数据集合。

可选的,所述装置还包括:

第二存储模块,用于将所述第一分流数据和第二分流数据存储在nginx日志中;

相应的,所述过滤模块,具体用于通过所述第一分流数据对应的第一数据过滤引擎,对所述nginx日志中的所述第一分流数据进行过滤,得到包含各类别第一数据的第一过滤数据集合,并通过所述第二分流数据对应的第二数据过滤引擎,对所述nginx日志中的所述第二分流数据进行过滤,得到包含各类别第二数据的第二过滤数据集合。

本发明实施例还公开了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,所述处理器、所述通信接口、所述存储器通过通信总线完成相互间的通信;

所述存储器,用于存放计算机程序;

所述处理器,用于执行所述存储器上所存放的程序时,实现上述一种实时用户行为的数据处理方法步骤。

在本发明实施的又一方面,还公开了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述任一所述的一种实时用户行为的数据处理方法。

在本发明实施的又一方面,本发明实施例还公开了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的一种实时用户行为的数据处理方法。

本发明实施例提供的一种实时用户行为的数据处理方法、装置及电子设备,先通过获取实时用户行为的数据;然后根据预设分流规则,将所述数据进行分流,得到第一分流数据和第二分流数据;再通过所述第一分流数据对应的第一数据过滤引擎,对所述第一分流数据进行过滤,得到包含各类别第一数据的第一过滤数据集合,并通过所述第二分流数据对应的第二数据过滤引擎,对所述第二分流数据进行过滤,得到包含各类别第二数据的第二过滤数据集合;最后对所述第一过滤数据集合中的所有数据和所述第二过滤数据集合中的所有数据进行响应,确定各类别第一数据对应的各第一待推送消息,以及各类别第二数据对应的各第二待推送消息,并将各第一待推送消息和各第二待推送消息推送给对应的用户。先通过将所有实时用户行为的数据进行分流,然后分别对分流后的实时用户行为的数据进行过滤,这样满足了实时推荐系统变更的灵活性,实现了快速的反馈实时用户行为,从而提高了用户体验。当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。

图1为现有的实时用户行为的数据处理方法示意图;

图2为本发明实施例提供的一种实时用户行为的数据处理方法的一种流程示意图;

图3为本发明实施例提供的一种实时用户行为的数据处理方法示意图;

图4为本发明实施例提供的一种实时用户行为的数据处理方法的一种系统架构图;

图5为本发明实施例提供的一种实时用户行为的数据处理方法的另一种流程示意图;

图6为本发明实施例提供的一种数据过滤方法的框架示意图;

图7为本发明实施例提供的另一种数据过滤方法的框架示意图;

图8为本发明实施例提供的一种实时用户行为的数据处理装置的结构示意图;

图9为本发明实施例提供的一种电子设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。

近年来,实时用户行为的数据处理方法已经广泛应用于大型互联网公司的各类产品中,尤其是对于比较依赖实时推荐和实时反馈型产品的公司,如各新闻资讯类app、短视频app、电商app等,实时用户行为的数据处理方法显得尤为重要。但是,由于现有的实时用户行为的数据处理方法,先将不同的实时用户行为收集在对应的后台中,然后对每个后台的数据进行处理,这样无法满足产品上需求变更的灵活性。

因此,本发明提出了一种实时用户行为的数据处理方法,先通过将所有实时用户行为的数据进行分流,分成两种类型的数据,然后分别对分流后的实时用户行为的数据进行过滤,即对分流后的两种类型的数据分别进行过滤,得到过滤后细分的数据,再分别对这些细分数据进行处理(计算、分析、统计等),这样能够针对不同数据量级的、不同数据延迟的、不同数据响应的等数据需求进行不同的处理,既满足了实时推荐系统变更的灵活性,又实现了快速的反馈实时用户行为,从而提高了用户体验。具体实施方法如下:

参见图2,图2为本发明实施例提供的一种实时用户行为的数据处理方法的一种流程示意图,包括如下步骤:

s201,获取实时用户行为的数据。

具体的,在实时推荐系统中,系统可以根据实时用户行为来的数据为用户推荐和用户相关的信息,而推荐的前提是先通过系统获取该实时用户行为的数据。这里,该实时用户行为的数据指的是用户在该实时推荐系统中当下时刻的一个操作行为,例如,在一个新闻资讯类的应用程序中用户点击其中某一条新闻的浏览操作、在一个短视频的应用程序中用户观看某一类型的视频的一个操作等等。

s202,根据预设分流规则,将所述数据进行分流,得到第一分流数据和第二分流数据。

具体的,对于一个实时推荐系统来说,该系统中的实时用户行为的数据是非常多的,而且各种实时用户行为的数据所具有的特征不同。例如,数据的优先级不同、数据的延迟不同、数据的流量不同、数据的格式不同等等。

在本发明实施例中,为了满足各类实时产品灵活的需求变更,可以对用户的各种行为做统一的收集,即上述所获取到的实时用户行为的数据,然后在后台按照产品的需求进行精细化拆分。因此,本发明可以先将所获取到的所有用户实时行为的数据进行分流,也就是将所有实时用户行为的数据进行分类,这样才能对不同的数据进行不同的处理,从而满足不同产品的数据需求和实时性需求。

s203,通过所述第一分流数据对应的第一数据过滤引擎,对所述第一分流数据进行过滤,得到包含各类别第一数据的第一过滤数据集合,并通过所述第二分流数据对应的第二数据过滤引擎,对所述第二分流数据进行过滤,得到包含各类别第二数据的第二过滤数据集合。

具体的,将所有的实时用户行为的数据进行分流后,得到两种类型的数据,分别是第一分流数据和第二分流数据,而第一分流数据和第二分流数据中又包含各种用户行为数据,因此有必要将第一分流数据和第二分流数据在进行过滤,这样就可以得到过滤后的细分数据,因为对过滤后的细分数据进行处理比直接对第一分流数据或第二分流数据,更能提高数据的处理速度,从而更能快速的将处理结果推送给用户。

这里,具体的过滤方式可以是通过第一数据过滤引擎对第一分流数据进行过滤,得到过滤后的所有细分数据的集合,即包含各类别第一数据的第一过滤数据集合。例如,第一过滤数据集合中包含的各类别第一数据可以是同一时刻用户浏览热点视频的数据、用户点击实时推荐的数据等。

同样,通过第二数据过滤引擎对第二分流数据进行过滤,得到过滤后的所有细分数据的集合,即包含各类别第二数据的第二过滤数据集合。例如,第二过滤数据集合中包含的含各类别第二数据可以是同一时刻搜索同一部热播电视剧的数据、选择同一综艺节目的数据、同一时刻点击播放同一视频的数据、同一时刻进行账户登录的数据等。

需要说明的是,上述各类别第一数据与各类别第二数据主要是为了区分第一过滤数据集合和第二过滤数据集合中的各种不同类别的数据。其中,第一数据过滤引擎只能过滤第一分流数据,第二数据过滤引擎只能过滤第二分流数据。第一数据过滤引擎和第二数据过滤引擎可以为处理不同数据的过滤引擎,例如,第一数据过滤引擎可以是高速过滤引擎,用以处理所有高优先级、低延迟的数据,第二数据过滤引擎可以是高性能过滤引擎,用以处理所有流量大的数据等。

s204,对所述第一过滤数据集合中的所有数据和所述第二过滤数据集合中的所有数据进行响应,确定各类别第一数据对应的各第一待推送消息,以及各类别第二数据对应的各第二待推送消息,并将所述各第一待推送消息和所述各第二待推送消息推送给对应的用户。

具体的,将数据进行过滤后,得到不同特征类型的数据,将这些不同特征类型的数据分别进行响应处理,确定各类别第一数据对应的各第一待推送消息,以及各类别第二数据对应的各第二待推送消息,并将各第一待推送消息和各第二待推送消息推送给对应的用户。例如,可以确定获取任一类别第一数据时所涉及到的所有用户,也即该类别第一数据的来源用户,进而可以将该类别第一数据对应的第一待推送消息推送给所确定的所有用户。这样,对不同的数据进行不同的处理,更能提高实时用户行为的数据的处理速度,从而可以更快的为用户推送相关消息。

由此可见,通过本发明实施例提供的一种实时用户行为的数据处理方法,先通过获取实时用户行为的数据;然后根据预设分流规则,将数据进行分流,得到第一分流数据和第二分流数据;再通过第一分流数据对应的第一数据过滤引擎,对第一分流数据进行过滤,得到包含各类别第一数据的第一过滤数据集合,并通过第二分流数据对应的第二数据过滤引擎,对第二分流数据进行过滤,得到包含各类别第二数据的第二过滤数据集合;最后对第一过滤数据集合中的所有数据和第二过滤数据集合中的所有数据进行响应,确定各类别第一数据对应的各第一待推送消息,以及各类别第二数据对应的各第二待推送消息,并将各第一待推送消息和各第二待推送消息推送给对应的用户。先通过将所有实时用户行为的数据进行分流,然后分别对分流后的实时用户行为的数据进行过滤,这样满足了实时推荐系统变更的灵活性,实现了快速的反馈实时用户行为,从而提高了用户体验。

对于本发明实施例提供的实时用户行为的数据处理方法示意图,如图3所示,在实时推荐系统中,先通过实时用户行为数据收集后台收集所有的将用户行为进行统一投递的数据,然后再按照需求将实时用户行为数据进行拆分,得到所需的各种用户行为,如用户行为1、用户行为2、用户行为3……用户行为x、用户行为y等。最后通过分别对这些用户行为进行处理,从而向用户推荐与该用户行为相关的信息。

在本发明一个可选的实施例中,得到包含各类别第一数据的第一过滤数据集合,以及包含各类别第二数据的第二过滤数据集合之后,还可以将第一过滤数据集合中的所有数据和第二过滤数据集合中的所有数据存储到消息队列系统中。

具体的,消息队列是microsoft的消息处理技术,它在任何安装microsoftwindows的计算机组合中,为任何应用程序提供消息处理和消息队列功能,无论这些计算机是否在同一个网络上或者是否同时联机。也可以说,消息队列系统是在消息的传输过程中保存消息的容器。其中,队列的主要目的是提供路由并保证消息的传递,如果发送消息时接收者不可用,消息队列将保留消息,直到可以成功地传递它。在本发明将第一过滤数据集合中的所有数据和第二过滤数据集合中的所有数据存储到消息队列系统中,保证了消息的快速准确传递,同时供后端统计团队或者计算团队,从这个消息队列系统中获取实时用户行为的数据来进行计算处理。

相应的,对第一过滤数据集合中的所有数据和第二过滤数据集合中的所有数据进行响应,确定各类别第一数据对应的各第一待推送消息,以及各类别第二数据对应的各第二待推送消息,并将各第一待推送消息和各第二待推送消息推送给对应的用户时,可以从消息队列系统中获取第一过滤数据集合中的所有数据和第二过滤数据集合中的所有数据,并对第一过滤数据集合中的所有数据和第二过滤数据集合中的所有数据进行响应,确定各类别第一数据对应的各第一待推送消息,以及各类别第二数据对应的各第二待推送消息,并将各第一待推送消息和各第二待推送消息推送给对应的用户。

具体的,先将第一过滤数据集合中的所有数据和第二过滤数据集合中的所有数据存储到消息队列系统中,这样,对这些数据进行处理时,直接从消息队列系统中调用这些数据,保证了数据传递过程中不会造成丢失的情况,从而提高了数据处理的准确性。

在本发明一个可选的实施例中,根据预设分流规则,将数据进行分流,得到第一分流数据和第二分流数据时,具体可以为:

第一步,获取数据中各数据的优先级、延迟、以及流量。

具体的,对数据进行分流是根据预设的分流规则来实现的。在本实施例中,预设的分流规则可以为:通过每个数据的优先级信息、数据的延迟信息、以及处理数据的流量信息,对数据进行分流,并将数据分为两种,分别是第一分流数据和第二分流数据。需要说明的是,这里通过数据的优先级、延迟、以及流量这三个信息来对数据进行分流,仅仅只是本发明提供的一个可选的实施例,对于所有满足预设分流规则的方法,都属于本发明保护的范围。

第二步,将数据中优先级高于预设优先级、且延迟低于预设延迟的数据进行分流,得到第一分流数据。

具体的,将所获取到的所有实时用户行为的数据中优先级高于预设优先级、且延迟低于预设延迟的数据分流到第一分流数据中。这里,预设优先级的大小和预设延迟的大小都可以通过实际情况来设定。

第三步,将数据中流量大于预设阈值的数据进行分流,得到第二分流数据。

具体的,将所获取到的所有实时用户行为的数据中流量大于预设阈值的数据的数据分流到第二分流数据中。同样,预设阈值的大小也是通过实际情况来设定的。例如,客户端同一时间进行同一个视频播放操作的用户非常多,那么该视频播放的操作的数据的流量也是非常大的,如果该数据的流量大于预设阈值时,那么将该视频播放的操作的数据划分到第二分流数据中。

在本发明实施例中,通过第一分流数据对应的第一数据过滤引擎,对第一分流数据进行过滤,得到包含各类别第一数据的第一过滤数据集合,并通过第二分流数据对应的第二数据过滤引擎,对第二分流数据进行过滤,得到包含各类别第二数据的第二过滤数据集合,包括:

第一步,获取包含第一数据过滤引擎中所有过滤逻辑的第一过滤逻辑集合和包含第二数据过滤引擎中所有过滤逻辑的第二过滤逻辑集合。

具体的,数据的过滤是通过对应的过滤逻辑进行过滤的,例如,对于一个和视频播放相关的数据,如果预设的过滤逻辑为:所有含有动漫的关键字的视频的数据,则就可以根据该过滤逻辑过滤出所有相关的动漫视频的数据。本发明中的过滤逻辑是可以在后台中添加和修改的,由于不同的实时推荐系统向用户所推送的内容不同,而且对于同一实时推荐系统来说,不同时期所推荐的内容也不同,例如视频推荐系统,最近一个月播放的比较火的视频为a,可能在下一个月又会变为b等。因此,每个数据过滤引擎都可以有很多不同过滤逻辑,来满足各类实时推荐系统灵活的需求变更。

第二步,通过第一过滤逻辑集合中的每一个过滤逻辑,依次对第一分流数据进行过滤,得到包含各类别第一数据的第一过滤数据集合;通过第二过滤逻辑集合中的每一个过滤逻辑,依次对第二分流数据进行过滤,得到包含各类别第二数据的第二过滤数据集合。

具体的,第一过滤逻辑集合和第二过滤逻辑集合中都包含很多个过滤逻辑,通过第一过滤逻辑集合中的每一个过滤逻辑,依次根据这些过滤逻辑对第一分流数据进行过滤,得到包含各类别第一数据的第一过滤数据集合。同样,通过第二过滤逻辑集合中的每一个过滤逻辑,依次对第二分流数据进行过滤,得到包含各类别第二数据的第二过滤数据集合。这里,通过不同的过滤逻辑得到的过滤后的数据都是不同的,由于过滤逻辑是根据产品的需求来设定的,因此过滤后的数据也满足产品灵活的需求变更。

关于本发明提供的数据处理方法的一种系统架构图,参见图4,图4为本发明实施例提供的一种实时用户行为的数据处理方法的一种系统架构图,该系统包括:实时用户行为的数据接收模块401、高速过滤引擎402、高性能过滤引擎403、后台管理系统404、以及消息队列系统405。

通常,实时用户行为是通过后http请求发送的,实时推荐系统中的实时用户行为的数据接收模块401接收该请求中的实时用户行为的数据。用户行为的数据接收模块401将接收的实时用户行为的数据,即原始数据传输给高速过滤引擎402和高性能过滤引擎403。

这里,将高速过滤引擎402作为本发明所提出的第一数据过滤引擎或者第二数据过滤引擎中的一种,本发明中命名为第一数据过滤引擎和第二数据过滤引擎是为了区分两种不同的数据过滤引擎,在本实施例中,可以将其中的一种作为高速过滤引擎402,将其中的另一种作为高性能过滤引擎403。由于高速过滤引擎402只能过滤符合该高速过滤引擎402的所有数据,因此,将接收的实时用户行为的数据分流为满足该高速过滤引擎402所要过滤的数据。其中,高速过滤引擎402是基于正则表达式和字符串文本匹配的高速实时数据过滤引擎,通过用户配置的过滤逻辑,快速过滤出符合要求的数据。这里,高速过滤引擎402处理所有高优先级、低延迟的数据。

与高速过滤引擎402一样,将高性能过滤引擎403作为本发明所提出的第一数据过滤引擎或者第二数据过滤引擎中的一种,由于高性能过滤引擎403只能过滤符合该高性能过滤引擎403的所有数据,因此,将接收的实时用户行为的数据分流为满足该高性能过滤引擎403所要过滤的数据。其中,高性能过滤引擎403是基于大数据实时计算系统的过滤引擎,通过分布式计算框架,实现对超大流量数据按照指定规则的过滤拆分,支持数量处理能力的水平扩展。这里,高性能过滤引擎403处理所有流量大的数据。例如,当高性能过滤引擎403的其中一个过滤逻辑为与某一视频相关的弹幕的数据,这样过滤出的数据都是与该视频的弹幕相关,如果产品经理需要查看该视频的弹幕数据的报表,则可以直接从该高性能过滤引擎中过滤得到的数据中查看。

具体的,要通过高速过滤引擎402和高性能过滤引擎403对数据进行过滤,则可以通过从后台管理系统404中获取数据过滤逻辑。其中,后台管理系统404中的数据过滤逻辑也可以根据实际需要进行添加和修改。

通过高速过滤引擎402和高性能过滤引擎403对数据进行过滤后,得到过滤后的细分数据,通过传输这些细分数据到消息队列系统405,保证了消息的快速准确传递,同时供后端统计团队、分析团队或者计算团队,从这个消息队列系统中获取实时用户行为的数据来进行计算、分析、统计等处理。

本发明实施例还提供了一种处理方法的具体过程,参见图5,图5为本发明实施例提供的一种实时用户行为的数据处理方法的另一种流程示意图,包括如下过程:

先将用户操作行为的数据投递到nginx中,然后对nginx中的所有数据进行分流,该分流的过程即数据采集装置1采集nginx中的高优先级、低延迟的数据,数据采集装置2采集nginx中的流量大的数据,这样就将数据成功的进行了分流。再通过高速过滤装置(即本发明中的高速过滤引擎)对数据采集装置1中的数据进行过滤,并通过数据传输装置1将过滤后的数据传输给消息队列系统。对应数据采集装置2中的数据,先通过数据传输装置2将数据传输给高性能过滤装置(即本发明中的高性能过滤引擎),通过该高性能过滤装置对数据采集装置2中的数据进行过滤,并通过数据传输装置3将过滤后的数据传输给消息队列系统。最后,通过对消息队列系统中的数据进行处理,为实时产品、实时报表、实时监控等不同场景需求下的用户行为的数据提供实时推荐及实时反馈。

在本发明一个可选的实施例中,通过第一过滤逻辑集合中的每一个过滤逻辑,依次对第一分流数据进行过滤,得到包含各类别第一数据的第一过滤数据集合,可以包括:

将第一分流数据发送到不同的线程组;

通过各线程组在第一过滤逻辑集合中对应的过滤逻辑,分别对不同的线程组中包括的数据进行过滤,得到包含每个线程组对应的过滤数据的第一过滤数据集合。

具体的,参见图6,图6为本发明实施例提供的一种数据过滤方法的框架示意图,具体过程如下:

先获取nginx日志源中的所有高优先级、低延迟的数据,然后对这些数据采用不同的线程组进行过滤,最后将每个线程组(线程组1、线程组2、线程组3……线程组n)过滤的数据发送给消息队列系统。这里,高速过滤引擎使用多个线程组,分别对每个线程组使用不同的过滤逻辑,每个线程组各组完成“采集+过滤+发送”的过程,多个线程组之间互不干扰。

另外,数据的过滤逻辑由后台管理系统统一管理,本装置高速过滤引擎通过访问后台管理系统的接口,获取各个线程的数据过滤逻辑。数据的过滤逻辑可以在后台动态修改,通过心跳传递到位于nginx机器上的数据分离进程中,满足数据过滤逻辑的实时更新需求。虽然这个高速过滤引擎能灵活的提供高优先级、低延迟的细分实时用户行为的数据,供后续团队使用。

本装置还引入了一个后置的高性能过滤引擎。参见图7,图7为本发明实施例提供的另一种数据过滤方法的框架示意图,先通过接收模块获取nginx日志源中的所有流量大的数据,然后通过过滤和计算模块对这些数据进行过滤和计算,最后通过发送模块将过滤后的数据发送给消息队列系统。

在图7中,这个高性能过滤引擎的本质是一个分布式的实时计算任务,运行在大规模集群的资源池上。这个后置的高性能过滤引擎,使用分布式的实际计算框架开发,由于所处的位置在nginx之外,所以可以水平扩展机器资源的使用。

通过该高性能过滤引擎能够过滤大数据量的实时用户行为的数据,能够使用复杂的过滤逻辑,同样,该高性能数据分离引擎中的过滤逻辑也可以在后台动态修改。

在本发明一个可选的实施例中,根据预设分流规则,将数据进行分流,得到第一分流数据和第二分流数据之后,还可以将第一分流数据和第二分流数据存储在nginx日志中。

具体的,ngnix是一种高性能的http(hypertexttransferprotocol,超文本传输协议)和反向代理程序,可运行在windows和linux操作系统下,具有资源占用低、性能稳定、扩展性强的特点,通常作为运行在http服务器使用。另外,ngnix程序在运行的过程中,可以根据配置记录运行日志,在运行日志中包含http请求、http响应信息等。由于实时用户行为发生在各个用户端上,并由各个用户端基于http请求把实时用户行为传递到后端,因此,使用nginx接收这些http请求,并将用户行为数据记录在nginx日志中,不仅占有内存少,而且并发能力强。

相应的,通过第一分流数据对应的第一数据过滤引擎,对第一分流数据进行过滤,得到包含各类别第一数据的第一过滤数据集合,并通过第二分流数据对应的第二数据过滤引擎,对第二分流数据进行过滤,得到包含各类别第二数据的第二过滤数据集合,包括:

通过第一分流数据对应的第一数据过滤引擎,对nginx日志中的第一分流数据进行过滤,得到包含各类别第一数据的第一过滤数据集合,并通过第二分流数据对应的第二数据过滤引擎,对nginx日志中的第二分流数据进行过滤,得到包含各类别第二数据的第二过滤数据集合。

通常,当服务器运行一段时间后,日志中存储的数据量会变得很大,不容易查找和分析。而nginx服务器带有日志切割的功能,将当前的日志更名保存,然后服务器重载配置文件,重新生成日志文件。这样,将第一分流数据和第二分流数据分别存储在nginx日志中之后,再分别对nginx日志中的第一分流数据和第二分流数据进行过滤,提高了数据过滤的准确性。

参见图8,图8为本发明实施例提供的一种实时用户行为的数据处理装置的结构示意图,包括如下模块:

获取模块801,用于获取实时用户行为的数据;

分流模块802,用于根据预设分流规则,将所述数据进行分流,得到第一分流数据和第二分流数据;

过滤模块803,用于通过所述第一分流数据对应的第一数据过滤引擎,对所述第一分流数据进行过滤,得到包含各类别第一数据的第一过滤数据集合,并通过所述第二分流数据对应的第二数据过滤引擎,对所述第二分流数据进行过滤,得到包含各类别第二数据的第二过滤数据集合;

处理模块804,用于对所述第一过滤数据集合中的所有数据和所述第二过滤数据集合中的所有数据进行响应,确定各类别第一数据对应的各第一待推送消息,以及各类别第二数据对应的各第二待推送消息,并将所述各第一待推送消息和所述各第二待推送消息推送给对应的用户。

由此可见,通过本发明实施例提供的一种实时用户行为的数据处理装置,先通过获取模块获取实时用户行为的数据;然后分流模块根据预设分流规则,将数据进行分流,得到第一分流数据和第二分流数据;过滤模块通过第一分流数据对应的第一数据过滤引擎,对第一分流数据进行过滤,得到包含各类别第一数据的第一过滤数据集合,并通过第二分流数据对应的第二数据过滤引擎,对第二分流数据进行过滤,得到包含各类别第二数据的第二过滤数据集合;最后通过处理模块对第一过滤数据集合中的所有数据和第二过滤数据集合中的所有数据进行响应,确定各类别第一数据对应的各第一待推送消息,以及各类别第二数据对应的各第二待推送消息,并将各第一待推送消息和各第二待推送消息推送给对应的用户。先通过将所有实时用户行为的数据进行分流,然后分别对分流后的实时用户行为的数据进行过滤,这样满足了实时推荐系统变更的灵活性,实现了快速的反馈实时用户行为,从而提高了用户体验。

进一步的,所述装置还包括:

第一存储模块,用于将第一过滤数据集合中的所有数据和第二过滤数据集合中的所有数据存储到消息队列系统中;

相应的,处理模块804,具体用于:

从消息队列系统中获取第一过滤数据集合中的所有数据和第二过滤数据集合中的所有数据,并对第一过滤数据集合中的所有数据和第二过滤数据集合中的所有数据进行响应,确定各类别第一数据对应的各第一待推送消息,以及各类别第二数据对应的各第二待推送消息,并将各第一待推送消息和各第二待推送消息推送给对应的用户。

进一步的,分流模块802,包括:

第一获取子模块,用于获取数据中各数据的优先级、延迟、以及流量;

第一分流子模块,用于将数据中优先级高于预设优先级、且延迟低于预设延迟的数据进行分流,得到包含各类别第一数据的第一分流数据;

第二分流子模块,用于将数据中流量大于预设阈值的数据进行分流,得到包含各类别第二数据的第二分流数据。

进一步的,过滤模块803,包括:

第二获取子模块,用于获取包含第一数据过滤引擎中所有过滤逻辑的第一过滤逻辑集合和包含第二数据过滤引擎中所有过滤逻辑的第二过滤逻辑集合;

第一过滤子模块,用于通过第一过滤逻辑集合中的每一个过滤逻辑,依次对第一分流数据进行过滤,得到包含各类别第一数据的第一过滤数据集合;

第二过滤子模块,用于通过第二过滤逻辑集合中的每一个过滤逻辑,依次对第二分流数据进行过滤,得到包含各类别第二数据的第二过滤数据集合。

进一步的,第一过滤子模块,包括:

发送单元,用于将第一分流数据发送到不同的线程组;

过滤单元,用于通过各线程组在第一过滤逻辑集合中对应的过滤逻辑,分别对不同的线程组中包括的数据进行过滤,得到包含每个线程组对应的过滤数据的第一过滤数据集合。

进一步的,所述装置还包括:

第二存储模块,用于将第一分流数据和第二分流数据存储在nginx日志中;

相应的,过滤模块803,具体用于:

通过第一分流数据对应的第一数据过滤引擎,对nginx日志中的第一分流数据进行过滤,得到包含各类别第一数据的第一过滤数据集合,并通过第二分流数据对应的第二数据过滤引擎,对nginx日志中的第二分流数据进行过滤,得到包含各类别第二数据的第二过滤数据集合。

本发明实施例还提供了一种电子设备,如图9所示,包括处理器901、通信接口902、存储器903和通信总线904,其中,处理器901,通信接口902,存储器903通过通信总线904完成相互间的通信。

存储器903,用于存放计算机程序;

处理器901,用于执行存储器903上所存放的程序时,实现上述实施例中任一所述的一种实时用户行为的数据处理方法。

上述电子设备提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述电子设备与其他设备之间的通信。

存储器可以包括随机存取存储器(randomaccessmemory,简称ram),也可以包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digitalsignalprocessing,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现场可编程门阵列(field-programmablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

由此可见,通过本发明实施例提供的一种电子设备,先通过获取模块获取实时用户行为的数据;然后分流模块根据预设分流规则,将数据进行分流,得到第一分流数据和第二分流数据;过滤模块通过第一分流数据对应的第一数据过滤引擎,对第一分流数据进行过滤,得到包含各类别第一数据的第一过滤数据集合,并通过第二分流数据对应的第二数据过滤引擎,对第二分流数据进行过滤,得到包含各类别第二数据的第二过滤数据集合;最后通过处理模块对第一过滤数据集合中的所有数据和第二过滤数据集合中的所有数据进行响应,确定各类别第一数据对应的各第一待推送消息,以及各类别第二数据对应的各第二待推送消息,并将各第一待推送消息和各第二待推送消息推送给对应的用户。先通过将所有实时用户行为的数据进行分流,然后分别对分流后的实时用户行为的数据进行过滤,这样满足了实时推荐系统变更的灵活性,实现了快速的反馈实时用户行为,从而提高了用户体验。

在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的一种实时用户行为的数据处理方法。

由此可见,通过本发明实施例提供的一种计算机可读存储介质,先通过获取模块获取实时用户行为的数据;然后分流模块根据预设分流规则,将数据进行分流,得到第一分流数据和第二分流数据;过滤模块通过第一分流数据对应的第一数据过滤引擎,对第一分流数据进行过滤,得到包含各类别第一数据的第一过滤数据集合,并通过第二分流数据对应的第二数据过滤引擎,对第二分流数据进行过滤,得到包含各类别第二数据的第二过滤数据集合;最后通过处理模块对第一过滤数据集合中的所有数据和第二过滤数据集合中的所有数据进行响应,确定各类别第一数据对应的各第一待推送消息,以及各类别第二数据对应的各第二待推送消息,并将各第一待推送消息和各第二待推送消息推送给对应的用户。先通过将所有实时用户行为的数据进行分流,然后分别对分流后的实时用户行为的数据进行过滤,这样满足了实时推荐系统变更的灵活性,实现了快速的反馈实时用户行为,从而提高了用户体验。

在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的一种实时用户行为的数据处理方法。

由此可见,通过本发明实施例提供的一种计算机程序产品,先通过获取模块获取实时用户行为的数据;然后分流模块根据预设分流规则,将数据进行分流,得到第一分流数据和第二分流数据;过滤模块通过第一分流数据对应的第一数据过滤引擎,对第一分流数据进行过滤,得到包含各类别第一数据的第一过滤数据集合,并通过第二分流数据对应的第二数据过滤引擎,对第二分流数据进行过滤,得到包含各类别第二数据的第二过滤数据集合;最后通过处理模块对第一过滤数据集合中的所有数据和第二过滤数据集合中的所有数据进行响应,确定各类别第一数据对应的各第一待推送消息,以及各类别第二数据对应的各第二待推送消息,并将各第一待推送消息和各第二待推送消息推送给对应的用户。先通过将所有实时用户行为的数据进行分流,然后分别对分流后的实时用户行为的数据进行过滤,这样满足了实时推荐系统变更的灵活性,实现了快速的反馈实时用户行为,从而提高了用户体验。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

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