掌桥专利:专业的专利平台
掌桥专利
首页

推广数据实时处理方法、装置、服务器及存储介质

文献发布时间:2024-04-18 19:59:31


推广数据实时处理方法、装置、服务器及存储介质

技术领域

本申请涉及数据处理技术领域,尤其是涉及一种在智能营销中活动中用于实现推广数据实时处理方法、装置、服务器及存储介质。

背景技术

随着互联网的快速发展,各种在线业务不断涌现,而在这些业务中,推广奖励系统是一种常见且有效的商业模式。推广奖励系统通过对大量活动数据进行计算,来进行推广奖励,例如,优惠券等的推送。

传统的推广奖励系统大多采用批处理、规则引擎和数据仓库来进行推广活动数据的处理,然而,批处理与数据仓库延迟较高,无法进行实时响应,且二者均不适合处理流式数据,规则引擎则虽能够快速进行响应,但不适合处理大规模数据集。

发明内容

有鉴于此,本申请提供推广数据实时处理方法、装置、服务器及存储介质,用于解决推广数据实时处理的技术问题。

本申请的第一方面提供一种推广数据实时处理方法,所述方法包括:

根据推广平台中的推广数据生成事件系序列库;

确定需要监测的目标事件流;

对所述目标事件流与所述事件系序列库中的事件流进行模式匹配,得到匹配结果;

基于所述匹配结果进行推广奖励计算。

在一种可能的实施方式中,根据推广平台中的推广数据生成事件系序列库包括:

定义所述推广平台中的推广数据的类型及属性;

根据所述类型及属性生成事件系序列库,其中,所述事件系序列库中的每个事件对应所述推广平台中的一条推广数据。

在一种可能的实施方式中,所述对所述目标事件流与所述事件系序列库中的事件流进行模式匹配,得到匹配结果包括:

使用复杂事件处理技术对所述目标事件流与所述事件系序列库中的事件流进行模式匹配,得到匹配结果。

在一种可能的实施方式中,所述使用复杂事件处理技术对所述目标事件流与所述事件系序列库中的事件流进行模式匹配,得到匹配结果包括:

基于所述目标事件流创建用来进行匹配的目标模式;

使用所述复杂事件处理技术基于所述目标模式生成不确定的有限状态机;

从所述事件系序列库中的第一个事件开始进行遍历,并将遍历到的事件与所述不确定的有限状态机进行匹配,得到所述匹配结果。

在一种可能的实施方式中,所述使用所述复杂事件处理技术基于所述目标模式生成不确定的有限状态机包括:

定义所述目标模式中的最后一个节点不为所述预设指定函数;

校验所述目标模式的名称是否唯一;

当所述目标模式唯一时,创建所述目标模式的聚合节点及创建所述聚合节点的起始节点;

创建所述不确定的有限状态机的起始节点及中间节点,所述中间节点能够获知所述起始节点的模式;

基于所述所述起始节点、所述中间节点及预设窗口生成所述不确定的有限状态机。

在一种可能的实施方式中,所述方法还包括:

当在所述预设时间段内没有接收到所述客户端发送的基于所述第二加密字符串的解密结果时,再次将所述第二加密字符串返回所述客户端。

在一种可能的实施方式中,所述所述基于所述匹配结果进行推广奖励计算包括包括:

确定所述匹配结果对应的目标推广者;

基于所述目标推广者的推广行为计算得到所述推广奖励。

在一种可能的实施方式中,所述方法还包括:

确定所述匹配结果对应的推广发起者;

将所述推广奖励分配至所述推广发起者的账户。

本申请的第二方面提供一种推广数据实时处理装置,所述装置包括:

生成模快,用于根据推广平台中的推广数据生成事件系序列库;

监测模块,用于确定需要监测的目标事件流;

匹配模块,用于对所述目标事件流与所述事件系序列库中的事件流进行模式匹配,得到匹配结果;

处理模块,用于基于所述匹配结果进行推广奖励计算;

分配模块,用于确定所述匹配结果对应的推广发起者,并将所述推广奖励分配至所述推广发起者的账户。

本申请的第三方面提供一种服务器,包括存储器、处理器以及存储在所诉存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述的推广数据实时处理方法的步骤。

本申请的第四方面提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被执行时实现所述的推广数据实时处理方法的步骤。

本申请提供的推广数据实时处理方法、装置、服务器及存储介质,基于推广平台中的推广数据生成事件系序列库,在确定需要监测的目标事件流之后,通过对目标事件流与事件系序列库中的事件流进行模式匹配,得到匹配结果,从而基于匹配结果进行推广奖励计算。本申请通过生成事件系序列库及模式匹配的方式,可以关联来自不同来源的多个事件,并识别多个事件之间的模式,从而能够实时处理数据流中的复杂模式和关系,提高了对大规模数据集、流式数据实时处理的能力,解决了传统的推广奖励系统延迟较高、无法进行实时响应、不适合处理流式数据与大规模数据集的问题。

附图说明

图1是本申请实施例示出的推广数据实时处理方法的流程图;

图2是本申请实施例示出的推广数据实时处理装置的功能模块图;

图3是本申请实施例示出的服务器的结构图。

具体实施方式

本申请以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本申请的限制。如在本申请的说明书中所使用的那样,单数表达形式“一个”、“一种”、“所述”、“上述”、“该”和“这一”旨在也包括复数表达形式,除非其上下文中明确地有相反指示。还应当理解,本申请中使用的术语“和/或”是指包含一个或多个所列出项目的任何或所有可能组合。

以下,术语“第一”、“第二”仅用于描述目的,而不能理解为暗示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征,在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。

为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。

图1是本申请实施例一提供的推广数据实时处理方法的流程图。所述推广数据实时处理方法由服务器执行,具体包括以下步骤。

S11,根据推广平台中的推广数据生成事件系序列库。

在推广平台中,先由推广发起者发起推广活动并设置对应的推广规则,推广平台上架推广活动,并将推广活动分发给推广者,由推广者触发推广规则。在推广者推广活动的过程中,会产生大量的推广数据。

推广活动的对象可以为文章、视频、音频、商品等,推广规则可以包括奖励的比率、推广规则、有效时间、推广形式等,推广者执行了点击、浏览、下载、购买、转发、分享等行为即可触发推广规则。

推广平台基于推广数据生成事件系序列库,事件系序列库中的每个事件对应推广平台中的一条推广数据,一条推广数据对应一个推广行为。所述事件系序列库是一个数据存储系统,用于存储和管理事件序列,其中,每个事件序列代表一系列按时间顺序发生的事件。

在一个可选的实施方式中,所述根据推广平台中的推广数据生成事件系序列库包括:

定义所述推广平台中的推广数据的类型及属性;

根据所述类型及属性生成事件系序列库。

其中,所述事件系序列库中的每个事件对应所述推广平台中的一条推广数据。

不同类型的推广数据对应不同的属性,推广数据的类型及属性通常用于监测、分析和优化推广活动。按照时间顺序将每条推广数据的类型及属性写入事件系序列库。推广数据包括:广告数据、用户数据、点击数据、转化数据、地理数据、时间数据、设备数据、渠道数据、成本和收益数据等。其中,广告数据包括广告标识、广告类型、广告内容、广告位、广告成本以及广告投放的成本等属性。用户数据:包括用户标识、用户属性、用户行为以及用户来源等属性。点击数据:包括点击时间、点击位置、点击设备等属性。转化数据:包括转化类型、转化时间、转化价值等属性。地理数据:包括地理位置、地理定位等属性。时间数据:包括日期和时间、季节性数据等属性。设备数据:包括设备类型、操作系统、浏览器等属性。渠道数据:包括搜索引擎、社交媒体平台、电子邮件等属性。成本和收益数据:包括广告成本、广告收益等属性。

S12,确定需要监测的目标事件流。

所述需要监测的目标事件流是指系统或应用程序中明确定义的一系列事件或操作,通常是为了实现特定的业务目标或监控系统性能而收集的事件。在本申请实施例中,所述目标事件流是指在推广平台中,通过在大量的事件数据流之中指定的事件流。所述事件流可以是单个或者多个简单事件,也可以是通过分析多个简单事件之间的关系而产生的高级事件。

例如,在整个推广平台中,推广平台需要对推广者进行奖励计算,计算方案则是推广者制作的推广页面在活动期间被有效点击的次数。则可以确定目标事件流为推广者的推广页面在活动期间被有效点击的次数。其中活动期间是一个简单事件,有效点击是一个简单事件,点击的次数也是一个简单事件,通过对三个简单事件的关系连接产生了所述目标事件流这个高级事件。在平台中需要确定检测的目标事件流基本上以高级事件为主。

S13,通过对所述目标事件流与所述事件系序列库中的事件流进行模式匹配,得到匹配结果。

所述模式匹配是一个算法或过程,用于比较目标事件流与事件系列库中的事件流之间的模式,以找到目标事件流匹配或者相似的事件流。

在一个可选的实施方式中,可以通过使用复杂事件处理技术对所述目标事件流与所述事件系序列库中的事件流进行模式匹配,得到匹配结果。

所述复杂事件处理技术指引入Flink CEP(Complex Event Processing,复杂事件处理框架)引擎,所述CEP是 Apache Flink 的一个子项目,用于处理和分析复杂事件流。所述 Flink CEP 需要定义事件模式和相应的操作,然后将数据流送入 Flink CEP 引擎进行处理。所述引擎会实时监控数据流,一旦匹配到定义的事件模式,就会触发相关操作。通过所述 Flink CEP 能够实时处理数据流中的复杂事件。

在一个可选的实施方式中,所述使用复杂事件处理技术对所述目标事件流与所述事件系序列库中的事件流进行模式匹配,得到匹配结果包括:

基于所述目标事件流创建用来进行匹配的目标模式;

使用所述复杂事件处理技术基于所述目标模式生成不确定的有限状态机;

从所述事件系序列库中的第一个事件开始进行遍历,并将遍历到的事件与所述不确定的有限状态机进行匹配,得到所述匹配结果。

所述模式匹配是所述CEP中的模式规则,是指根据所述目标事件流用来创建用来匹配的模式。

所述不确定的有限状态机(Non-determined Finite Automaton,NFA)是所述Flink CEP的核心,所述NFA由状态(State)还有状态与状态之间的连线(StateTransition)组成。状态(State)是根据flink脚本里面的代码来决定的,并产生一个最终状态,例如,以$end$表示。状态的转换条件包括 take/proceed/ignore,三者各代表不同的含义。take:满足条件,获取当前元素,进入下一状态。proceed:不论是否满足条件,不获取当前元素,直接进入下一状态(如optional)并进行判断是否满足条件。Ignore:不满足条件,忽略,进入下一状态。

所述NFA的形式是一个有向图,在所述NFA中,节点表示状态,边表示状态转换,每个状态可以有多个转换选项(非确定性),状态转换代表从一个状态到另一个状态的转移,这是根据事件序列的输入进行的。转换可以根据事件的属性、顺序和时间间隔等条件进行。输入事件序列按顺序送入所述NFA。根据所述事件序列的输入,所述NFA中的状态进行相应的转换。

在处理完整个事件序列后,检查所述NFA的状态。如果所述NFA的状态达到了定义的最终状态,则表示所述事件序列匹配到了定义的模式。

这种转化涉及将高级事件模式描述转换为状态转换图,然后通过输入事件序列在状态转换图上进行移动,以检查序列是否匹配所需模式。

通过以下举例进行描述,假设目标模式为:“A后紧跟B”,根据所述目标模式构建的NFA有以下状态:

初始状态(Initial State):这是NFA的起始状态;

A接收状态(State after receiving A):在接收到事件A后,NFA转移到这个状态。

A接收后的B状态(State after receiving B following A):在接收到B事件后,如果之前已经接收到了A事件,NFA转移到这个状态;

最终状态(Final State):这是表示事件模式匹配成功的状态。

所述NFA的状态转移如下:

从初始状态,当接收到事件A时,转移到“A接收状态”。

从“A接收状态”,当接收到事件B时,转移到“A接收后的B状态”。

在“A接收后的B状态”,如果接收到任何事件,NFA保持在“A接收后的B状态”。

从“A接收状态”或“A接收后的B状态”,如果接收到事件A,NFA可以回到“初始状态”以重新开始模式匹配。

处理所述目标事件,例如[A,B],从初始状态,输入事件A,NFA转移到“A接收状态”。接着,输入事件B,NFA从“A接收状态”转移“A接收后的B状态”,处理完整个事件序列[A, B]后,检查NFA的状态。如果NFA处于最终状态,这意味着输入事件序列满足了事件模式“A后紧跟B”。则说明NFA完成了匹配一个简单的事件模式,并在目标事件系序列库上进行状态转换以检查模式是否匹配。

示例性的,假设所述目标事件流为“需要匹配用户查看3次商品详情页”,而用户查看1次商品详情页为一个简单事件,需要将所述简单事件重复匹配3次从而得到目标事件流。首先根据目标事件流创建目标模式,然后通过CEP将目标模式转化NFA,所述NFA事件系序列库中从头开始遍历循环进行事件匹配,匹配3次完成简单事件后得到匹配结果,并通过CEP的选择(select)接口可以查询匹配结果。

在一个可选的实施方式中,所述使用所述复杂事件处理技术基于所述目标模式生成不确定的有限状态机包括:

定义所述目标模式中的最后一个节点不为所述预设指定函数;

校验所述目标模式的名称是否唯一;

当所述目标模式唯一时,创建所述目标模式的聚合节点及创建所述聚合节点的起始节点;

创建所述不确定的有限状态机的起始节点及中间节点,所述中间节点能够获知所述起始节点的模式;

基于所述起始节点、所述中间节点及预设窗口生成所述不确定的有限状态机。

将目标模式转化成NFA是指通过CEP.pattern()函数将目标模式转化成所述NFA。

所述预设指定函数可以为NotFollowedBy(不跟随),所述NotFollowedBy是函数中一种特殊的断言模式,表示在当前位置后面不应该存在特定的模式。而NFA图的最后一个节点通常用于表示终止状态,即输入符号序列已被完全接受,因此,所述最后一个Pattern节点不允许是NotFollowedBy。如果将最后一个Pattern节点设置为NotFollowedBy,则意味着在NFA图的最后一个状态之后不能再有特定的模式,这与通常的终止状态的含义相悖。因此,为了保持一致性和合理性,最后一个Pattern节点通常不使用"NotFollowedBy"模式。

目标模式的名称必须唯一,确保不会存在重复的模式名称。若出现相同的目标模式名称,就会出现以下三种问题:

第一种问题,混淆和不明确:如果多个模式具有相同的名称,代码和配置会变得混乱和不明确,在阅读和维护代码时,人们可能会误解某个模式被引用,从而引发错误。

第二种问题,错误或不一致的行为:如果多个模式具有相同的名称,系统可能无法确定要应用哪个模式,这可能导致不一致的行为或错误。

第三种问题,维护困难:随着时间的推移,维护和扩展具有重复名称的模式会变得更加困难。

所述聚合节点是指在一个流程图、有向图或数据流图中,多个节点汇聚成一个单一的节点。这个单一的节点通常代表了多个输入或分支的汇总或合并。所述起始节点通常是指与聚合节点相对应的多个节点中的一个,是多个分支或流程中的起始点。

示例性的,假设一个NFA识别“cat” 的字符串,所述NFA有三个状态:State A、State B和State C,将State A设计为起始节点,State B是NFA的中间节点,而State C为终止节点,用来表示成功匹配“cat” 字符串,当State A输入是“c”时,可以从State A进行一条转移,跳到State B,还可以从State A以“c”为输入,进一步分支到State C,表示同时有两个可能性。当输入是“a”时,可以从State B 进行一条转移,跳到 State C。此外,从StateB还可以继续输入“c”,从而再次回到 State C。

在本申请中,生成中间节点会循环获知初始节点的模式,State C是 NFA 的终止节点,表示成功匹配 “a”子串。

将各个节点的不同状态组合起来,可以得到一个状态列表,基于状态列表及预设窗口可以生成不确定的有限状态机。其中,预设窗口是指在当前情景中预先设置的用来跟踪目标状态的转变的窗口。

示例性的,假设存在三个状态:State1:低温状态 (温度<= 30°C)、State2:高温状态 (温度>30°C)、State3:高温持续状态(在过去的三小时内温度一直高于30°C),当温度在低温状态(State1)下,如果温度升高到高温状态(State2),则进行状态转移。当温度在高温状态(State2)下,如果温度继续保持高温状态,继续保持在State 2。当温度在高温状态(State2)下,如果温度下降到低温状态(State1),则进行状态转移到高温持续状态(State3)。在这个情景中,使用一个预设的窗口时间,例如3小时,来跟踪温度的历史。当NFA进入高温持续状态(State 3)时,表示已经检测到温度连续三小时高于30°C的情况,可以触发警报并将NFA重置为初始状态。

所述NFA允许检测连续三小时内温度高于30°C然后降至30°C以下的情况,并在该情况下触发警报。NFA使用状态列表、状态之间的转移规则和一个3小时的时间窗口来捕获温度的事件序列模式,最后生成所述NFA。

S14,基于所述匹配结果进行推广奖励计算。

推广平台基于述匹配结果计算推广奖励,比如,计算推广佣金,计算推广积分等。

在一个可选的实施方式中,所述基于所述匹配结果进行推广奖励计算包括:

确定所述匹配结果对应的目标推广者;

基于所述目标推广者的推广行为计算得到所述推广奖励。

当推广发起者发起了推广活动后,推广平台会生成所述推广活动的推广连接,并将所述推广连接分发至多个推广者。所述生成推广链接是一种将特定匹配结果转化为一个链接或URL的过程,以便在互联网上传播、分享或进行营销推广。通常将匹配结果与某种目标链接或资源相关联,以便用户可以点击链接并访问相关资源,使营销人员能够将特定内容或产品推广给潜在客户,以促进销售、传播信息或实现其他营销目标。

本申请实施例,可以通过推广平台对推广者进行画像匹配,例如,将经常性度假、高端旅行的人群作为第一梯队推广者,将偶尔出行游玩度假的人群作为第二梯队推广者,通过画像匹配能够提高推广的准确度。

每个推广发起者对应一个或者多个推广活动,每个推广活动对应一条或者多条推广数据,每条推广数据对应一个匹配结果,根据匹配结果确定对应的推广发起者及目标推广者之后,再获取目标推广者的推广行为,从而基于目标推广者的推广行为计算得到推广奖励。

在一个可选的实施方式中,不同的推广行为对应不同的推广奖励,例如,浏览行为对应预设第一推广奖励,点击行为对应预设第二推广奖励,转发行为对应预设第三推广奖励。将目标推广者的推广行为进行加和计算,即可得到推广奖励,最后将所述推广奖励分配至所述推广发起者的推广账户。

在一个可选的实施方式中,所述方法还包括:

确定所述匹配结果对应的推广发起者;

将所述推广奖励分配至所述推广发起者的账户。

匹配推广发起者与推广者之间的推广关系,以及推广发起者向推广者推广了哪些业务,推广者又进行了推广业务中的哪几项,来计算推广发起者可以得到的推广奖励。

本申请实施例基于推广平台中的推广数据生成事件系序列库,在确定需要监测的目标事件流之后,通过对目标事件流与事件系序列库中的事件流进行模式匹配,得到匹配结果,从而基于匹配结果进行推广奖励计算。本申请通过生成事件系序列库及模式匹配的方式,可以关联来自不同来源的多个事件,并识别多个事件之间的模式,从而能够实时处理数据流中的复杂模式和关系,提高了对大规模数据集、流式数据实时处理的能力,解决了传统的推广奖励系统延迟较高、无法进行实时响应、不适合处理流式数据与大规模数据集的问题。

图2是本申请实施例示出的推广数据实时处理装置的功能模块图。

在一些实施例中,所述推广数据实时处理装置20可以包括多个由计算机程序段所组成的功能模块。所述推广数据实时处理装置20中的各个程序段的计算机程序可以存储于存储器中,并由至少一个处理器所执行,以执行(详见图1描述)推广数据实时处理的功能。

本实施例中,所述推广数据实时处理装置20根据其所执行的功能,可以被划分为多个功能模块。所述功能模块可以包括:生成模块201、监测模块202、匹配模块203、处理模块204及分配模块205。本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。在本实施例中,关于各模块的功能将在后续的实施例中详述。

所述生成模块201,用于根据推广平台中的推广数据生成事件系序列库。

在推广平台中,先由推广发起者发起推广活动并设置对应的推广规则,推广平台上架推广活动,并将推广活动分发给推广者,由推广者触发推广规则。在推广者推广活动的过程中,会产生大量的推广数据。

推广活动的对象可以为文章、视频、音频、商品等,推广规则可以包括奖励的比率、推广规则、有效时间、推广形式等,推广者执行了点击、浏览、下载、购买、转发、分享等行为即可触发推广规则。

推广平台基于推广数据生成事件系序列库,事件系序列库中的每个事件对应推广平台中的一条推广数据,一条推广数据对应一个推广行为。所述事件系序列库是一个数据存储系统,用于存储和管理事件序列,其中,每个事件序列代表一系列按时间顺序发生的事件。

在一个可选的实施方式中,所述根据推广平台中的推广数据生成事件系序列库包括:

定义所述推广平台中的推广数据的类型及属性;

根据所述类型及属性生成事件系序列库,其中,所述事件系序列库中的每个事件对应所述推广平台中的一条推广数据。

不同类型的推广数据对应不同的属性,推广数据的类型及属性通常用于监测、分析和优化推广活动。按照时间顺序将每条推广数据的类型及属性写入事件系序列库。推广数据包括:广告数据、用户数据、点击数据、转化数据、地理数据、时间数据、设备数据、渠道数据、成本和收益数据等。其中,广告数据包括广告标识、广告类型、广告内容、广告位、广告成本以及广告投放的成本等属性。用户数据:包括用户标识、用户属性、用户行为以及用户来源等属性。点击数据:包括点击时间、点击位置、点击设备等属性。转化数据:包括转化类型、转化时间、转化价值等属性。地理数据:包括地理位置、地理定位等属性。时间数据:包括日期和时间、季节性数据等属性。设备数据:包括设备类型、操作系统、浏览器等属性。渠道数据:包括搜索引擎、社交媒体平台、电子邮件等属性。成本和收益数据:包括广告成本、广告收益等属性。

所述监测模块202,用于确定需要监测的目标事件流。

所述需要监测的目标事件流是指系统或应用程序中明确定义的一系列事件或操作,通常是为了实现特定的业务目标或监控系统性能而收集的事件。在本申请实施例中,所述目标事件流是指在推广平台中,通过在大量的事件数据流之中指定的事件流。所述事件流可以是单个或者多个简单事件,也可以是通过分析多个简单事件之间的关系而产生的高级事件。

例如,在整个推广平台中,推广平台需要对推广者进行奖励计算,计算方案则是推广者制作的推广页面在活动期间被有效点击的次数。则可以确定目标事件流为推广者的推广页面在活动期间被有效点击的次数。其中活动期间是一个简单事件,有效点击是一个简单事件,点击的次数也是一个简单事件,通过对三个简单事件的关系连接产生了所述目标事件流这个高级事件。在平台中需要确定检测的目标事件流基本上以高级事件为主。

所述匹配模块203,用于通过对所述目标事件流与所述事件系序列库中的事件流进行模式匹配,得到匹配结果。

所述模式匹配是一个算法或过程,用于比较目标事件流与事件系列库中的事件流之间的模式,以找到目标事件流匹配或者相似的事件流。

在一个可选的实施方式中,可以通过使用复杂事件处理技术对所述目标事件流与所述事件系序列库中的事件流进行模式匹配,得到匹配结果。

所述复杂事件处理技术指引入Flink CEP(Complex Event Processing,复杂事件处理框架)引擎,所述CEP是 Apache Flink 的一个子项目,用于处理和分析复杂事件流。所述 Flink CEP 需要定义事件模式和相应的操作,然后将数据流送入 Flink CEP 引擎进行处理。所述引擎会实时监控数据流,一旦匹配到定义的事件模式,就会触发相关操作。通过所述 Flink CEP 能够实时处理数据流中的复杂事件。

在一个可选的实施方式中,所述使用复杂事件处理技术对所述目标事件流与所述事件系序列库中的事件流进行模式匹配,得到匹配结果包括:

基于所述目标事件流创建用来进行匹配的目标模式;

使用所述复杂事件处理技术基于所述目标模式生成不确定的有限状态机;

从所述事件系序列库中的第一个事件开始进行遍历,并将遍历到的事件与所述不确定的有限状态机进行匹配,得到所述匹配结果。

所述模式匹配是所述CEP中的模式规则,是指根据所述目标事件流用来创建用来匹配的模式。

所述不确定的有限状态机(Non-determined Finite Automaton,NFA)是所述Flink CEP的核心,所述NFA由状态(State)还有状态与状态之间的连线(StateTransition)组成。状态(State)是根据flink脚本里面的代码来决定的,并产生一个最终状态,例如,以$end$表示。状态的转换条件包括 take/proceed/ignore,三者各代表不同的含义。take:满足条件,获取当前元素,进入下一状态。proceed:不论是否满足条件,不获取当前元素,直接进入下一状态(如optional)并进行判断是否满足条件。Ignore:不满足条件,忽略,进入下一状态。

所述NFA的形式是一个有向图,在所述NFA中,节点表示状态,边表示状态转换,每个状态可以有多个转换选项(非确定性),状态转换代表从一个状态到另一个状态的转移,这是根据事件序列的输入进行的。转换可以根据事件的属性、顺序和时间间隔等条件进行。输入事件序列按顺序送入所述NFA。根据所述事件序列的输入,所述NFA中的状态进行相应的转换。

在处理完整个事件序列后,检查所述NFA的状态。如果所述NFA的状态达到了定义的最终状态,则表示所述事件序列匹配到了定义的模式。

这种转化涉及将高级事件模式描述转换为状态转换图,然后通过输入事件序列在状态转换图上进行移动,以检查序列是否匹配所需模式。

通过以下举例进行描述,假设目标模式为:“A后紧跟B”,根据所述目标模式构建的NFA有以下状态:

初始状态(Initial State):这是NFA的起始状态;

A接收状态(State after receiving A):在接收到事件A后,NFA转移到这个状态。

A接收后的B状态(State after receiving B following A):在接收到B事件后,如果之前已经接收到了A事件,NFA转移到这个状态;

最终状态(Final State):这是表示事件模式匹配成功的状态。

所述NFA的状态转移如下:

从初始状态,当接收到事件A时,转移到“A接收状态”。

从“A接收状态”,当接收到事件B时,转移到“A接收后的B状态”。

在“A接收后的B状态”,如果接收到任何事件,NFA保持在“A接收后的B状态”。

从“A接收状态”或“A接收后的B状态”,如果接收到事件A,NFA可以回到“初始状态”以重新开始模式匹配。

处理所述目标事件,例如[A,B],从初始状态,输入事件A,NFA转移到“A接收状态”。接着,输入事件B,NFA从“A接收状态”转移“A接收后的B状态”,处理完整个事件序列[A, B]后,检查NFA的状态。如果NFA处于最终状态,这意味着输入事件序列满足了事件模式“A后紧跟B”。则说明NFA完成了匹配一个简单的事件模式,并在目标事件系序列库上进行状态转换以检查模式是否匹配。

示例性的,假设所述目标事件流为“需要匹配用户查看3次商品详情页”,而用户查看1次商品详情页为一个简单事件,需要将所述简单事件重复匹配3次从而得到目标事件流。首先根据目标事件流创建目标模式,然后通过CEP将目标模式转化NFA,所述NFA事件系序列库中从头开始遍历循环进行事件匹配,匹配3次完成简单事件后得到匹配结果,并通过CEP的选择(select)接口可以查询匹配结果。

在一个可选的实施方式中,所述使用所述复杂事件处理技术基于所述目标模式生成不确定的有限状态机包括:

定义所述目标模式中的最后一个节点不为所述预设指定函数;

校验所述目标模式的名称是否唯一;

当所述目标模式唯一时,创建所述目标模式的聚合节点及创建所述聚合节点的起始节点;

创建所述不确定的有限状态机的起始节点及中间节点,所述中间节点能够获知所述起始节点的模式;

基于所述起始节点、所述中间节点及预设窗口生成所述不确定的有限状态机。

将目标模式转化成NFA是指通过CEP.pattern()函数将目标模式转化成所述NFA。

所述预设指定函数可以为NotFollowedBy(不跟随),所述NotFollowedBy是函数中一种特殊的断言模式,表示在当前位置后面不应该存在特定的模式。而NFA图的最后一个节点通常用于表示终止状态,即输入符号序列已被完全接受,因此,所述最后一个Pattern节点不允许是NotFollowedBy。如果将最后一个Pattern节点设置为NotFollowedBy,则意味着在NFA图的最后一个状态之后不能再有特定的模式,这与通常的终止状态的含义相悖。因此,为了保持一致性和合理性,最后一个Pattern节点通常不使用"NotFollowedBy"模式。

目标模式的名称必须唯一,确保不会存在重复的模式名称。若出现相同的目标模式名称,就会出现以下三种问题:

第一种问题,混淆和不明确:如果多个模式具有相同的名称,代码和配置会变得混乱和不明确,在阅读和维护代码时,人们可能会误解某个模式被引用,从而引发错误。

第二种问题,错误或不一致的行为:如果多个模式具有相同的名称,系统可能无法确定要应用哪个模式,这可能导致不一致的行为或错误。

第三种问题,维护困难:随着时间的推移,维护和扩展具有重复名称的模式会变得更加困难。

所述聚合节点是指在一个流程图、有向图或数据流图中,多个节点汇聚成一个单一的节点。这个单一的节点通常代表了多个输入或分支的汇总或合并。所述起始节点通常是指与聚合节点相对应的多个节点中的一个,是多个分支或流程中的起始点。

示例性的,假设一个NFA识别“cat” 的字符串,所述NFA有三个状态:State A、State B和State C,将State A设计为起始节点,State B是NFA的中间节点,而State C为终止节点,用来表示成功匹配“cat” 字符串,当State A输入是“c”时,可以从State A进行一条转移,跳到State B,还可以从State A以“c”为输入,进一步分支到State C,表示同时有两个可能性。当输入是“a”时,可以从State B 进行一条转移,跳到 State C。此外,从StateB还可以继续输入“c”,从而再次回到 State C。

在本申请中,生成中间节点会循环获知初始节点的模式,State C是 NFA 的终止节点,表示成功匹配 “a”子串。

将各个节点的不同状态组合起来,可以得到一个状态列表,基于状态列表及预设窗口可以生成不确定的有限状态机。其中,预设窗口是指在当前情景中预先设置的用来跟踪目标状态的转变的窗口。

示例性的,假设存在三个状态:State1:低温状态 (温度<= 30°C)、State2:高温状态 (温度>30°C)、State3:高温持续状态(在过去的三小时内温度一直高于30°C),当温度在低温状态(State1)下,如果温度升高到高温状态(State2),则进行状态转移。当温度在高温状态(State2)下,如果温度继续保持高温状态,继续保持在State 2。当温度在高温状态(State2)下,如果温度下降到低温状态(State1),则进行状态转移到高温持续状态(State3)。在这个情景中,使用一个预设的窗口时间,例如3小时,来跟踪温度的历史。当NFA进入高温持续状态(State 3)时,表示已经检测到温度连续三小时高于30°C的情况,可以触发警报并将NFA重置为初始状态。

所述NFA允许检测连续三小时内温度高于30°C然后降至30°C以下的情况,并在该情况下触发警报。NFA使用状态列表、状态之间的转移规则和一个3小时的时间窗口来捕获温度的事件序列模式,最后生成所述NFA。

所述处理模块204,用于基于所述匹配结果进行推广奖励计算。

推广平台基于述匹配结果计算推广奖励,比如,计算推广佣金,计算推广积分等。

在一个可选的实施方式中,所述基于所述匹配结果进行推广奖励计算包括:

确定所述匹配结果对应的目标推广者;

基于所述目标推广者的推广行为计算得到所述推广奖励。

当推广发起者发起了推广活动后,推广平台会生成所述推广活动的推广连接,并将所述推广连接分发至多个推广者。所述生成推广链接是一种将特定匹配结果转化为一个链接或URL的过程,以便在互联网上传播、分享或进行营销推广。通常将匹配结果与某种目标链接或资源相关联,以便用户可以点击链接并访问相关资源,使营销人员能够将特定内容或产品推广给潜在客户,以促进销售、传播信息或实现其他营销目标。

本申请实施例,可以通过推广平台对推广者进行画像匹配,例如,将经常性度假、高端旅行的人群作为第一梯队推广者,将偶尔出行游玩度假的人群作为第二梯队推广者,通过画像匹配能够提高推广的准确度。

每个推广发起者对应一个或者多个推广活动,每个推广活动对应一条或者多条推广数据,每条推广数据对应一个匹配结果,根据匹配结果确定对应的推广发起者及目标推广者之后,再获取目标推广者的推广行为,从而基于目标推广者的推广行为计算得到推广奖励。

在一个可选的实施方式中,不同的推广行为对应不同的推广奖励,例如,浏览行为对应预设第一推广奖励,点击行为对应预设第二推广奖励,转发行为对应预设第三推广奖励。将目标推广者的推广行为进行加和计算,即可得到推广奖励,最后将所述推广奖励分配至所述推广发起者的推广账户。

所述分配模块205,用于确定所述匹配结果对应的推广发起者,并将所述推广奖励分配至所述推广发起者的账户。

匹配推广发起者与推广者之间的推广关系,以及推广发起者向推广者推广了哪些业务,推广者又进行了推广业务中的哪几项,来计算推广发起者可以得到的推广奖励。

本申请实施例基于推广平台中的推广数据生成事件系序列库,在确定需要监测的目标事件流之后,通过对目标事件流与事件系序列库中的事件流进行模式匹配,得到匹配结果,从而基于匹配结果进行推广奖励计算。本申请通过生成事件系序列库及模式匹配的方式,可以关联来自不同来源的多个事件,并识别多个事件之间的模式,从而能够实时处理数据流中的复杂模式和关系,提高了对大规模数据集、流式数据实时处理的能力,解决了传统的推广奖励系统延迟较高、无法进行实时响应、不适合处理流式数据与大规模数据集的问题。

参阅图3所示,服务器为本申请实施例三提供的服务器的结构示意图。在本申请较佳实施例中,所述服务器包括存储器31、至少一个处理器32、至少一条通信总线33。

本领域技术人员应该了解,图3示出的服务器的结构并不构成本申请实施例的限定,既可以是总线型结构,也可以是星形结构,所述服务器3还可以包括比图示更多或更少的其他硬件或者软件,或者不同的部件布置。

在一些实施例中,所述服务器3是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路、可编程门阵列、数字处理器及嵌入式设备等。所述服务器3还可包括客户设备,所述客户设备包括但不限于任何一种可与客户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、数码相机等。

需要说明的是,所述服务器3仅为举例,其他现有的或今后可能出现的电子产品如可适应于本申请,也应包含在本申请的保护范围以内,并以引用方式包含于此。

在一些实施例中,所述存储器31中存储有计算机程序,所述计算机程序被所述至少一个处理器32执行时实现如所述的推广数据实时处理方法中的全部或者部分步骤。所述存储器31包括只读存储器(Read-Only Memory,ROM)、可编程只读存储器(ProgrammableRead-Only Memory,PROM)、可擦除可编程只读存储器(Erasable Programmable Read-OnlyMemory,EPROM)、一次可编程只读存储器(One-time Programmable Read-Ony Memory,OTPROM)、电子擦除式可复写只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。进一步地,所述计算机可读存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等。

在一些实施例中,所述至少一个处理器32是所述服务器3的控制核心(ControlUnit),利用各种接口和线路连接整个服务器3的各个部件,通过运行或执行存储在所述存储器31内的程序或者模块,以及调用存储在所述存储器31内的数据,以执行服务器3的各种功能和处理数据。例如,所述至少一个处理器32执行所述存储器中存储的计算机程序时实现本申请实施例中所述的推广数据实时处理方法的全部或者部分步骤;或者实现推广数据实时处理装置的全部或者部分功能。所述至少一个处理器32可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能 或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(Central Processing Unit,CPU)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。

在一些实施例中,所述至少一条通信总线33被设置为实现所述存储器31以及所述至少一个处理器32等之间的连接通信。尽管未示出,所述服务器3还可以包括给各个部件供电的电源(比如电池),优选的,电源可以通过电源管理装置与所述至少一个处理器32逻辑相连,从而通过电源管理装置实现管理充电、放电、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述服务器3还可以包括多种传感器、蓝牙模块、Wi-Fi模块等,在此不再赘述。

上述以软件功能模块的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台服务器或处理器(processor)执行本申请各个实施例所述方法的部分。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,既可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。

技术分类

06120116524421