CN104216766B - 对流数据进行处理的方法及装置 - Google Patents
对流数据进行处理的方法及装置 Download PDFInfo
- Publication number
- CN104216766B CN104216766B CN201410427013.7A CN201410427013A CN104216766B CN 104216766 B CN104216766 B CN 104216766B CN 201410427013 A CN201410427013 A CN 201410427013A CN 104216766 B CN104216766 B CN 104216766B
- Authority
- CN
- China
- Prior art keywords
- model
- stream
- stream process
- process model
- pooled
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 409
- 230000008569 process Effects 0.000 claims abstract description 382
- 235000013399 edible fruits Nutrition 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 11
- 238000004364 calculation method Methods 0.000 description 7
- 241001269238 Data Species 0.000 description 6
- 238000013499 data model Methods 0.000 description 5
- 230000006399 behavior Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000032258 transport Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明公开了一种对流数据进行处理的方法及装置,属于数据处理领域。该方法包括:当对业务产生的流数据进行第一处理操作时,接收第一流处理模型,第一流处理模型包括第一处理操作对应的流算子;根据第二流处理模型,对第一流处理模型进行修改,得到第三流处理模型,第二流处理模型为流处理平台中正在运行的对流数据进行处理流处理模型;当接收到停止指令时,停止第一流合并模型;对第一流合并模型进行修改,得到第二流合并模型;当接收到启动指令时,启动第二流合并模型,通过第二流处理模型、第三流处理模型和第二流合并模块对该流数据进行处理。本发明可以在不影响原有处理操作的结果下增加流算子,并且不会造成对流数据进行处理的延迟。
Description
技术领域
本发明涉及数据处理领域,特别涉及一种对流数据进行处理的方法及装置。
背景技术
流处理技术是采用分布式计算架构,并通过预设的流处理模型来实时地对业务产生的流数据进行处理。并且,流处理技术一般承载于流处理平台中,该流处理平台可以基于预设的流处理模型包括的多个流算子对流数据进行处理。其中,流处理模型用于对流数据进行各种加工、分析和处理,流算子用于完成对流数据的一类处理操作,当需要对流数据进行额外的分析处理时,需要在不影响原有流算子处理结果的前提下,向该流处理模型中增加流算子,通过增加的流算子和原有流算子对流数据进行处理。
目前,向该流处理模型中增加流算子,通过增加的流算子和原有流算子对流数据进行处理的过程为:开发人员向第一流处理模型中添加新的流算子,得到第二流处理模型,第一流处理模型为流处理平台中正在运行的流处理模型。当开发人员向流处理平台提交第二流处理模型时,首先停止正在运行的第一流处理模型,然后,将第二流处理模型提交给流处理平台。当流处理平台接收到第二流处理模型时,该流处理平台根据最近一次保存的第一流处理模型包括的每个流算子的状态、每个流算子对应的流窗口中缓存的数据和该保存时间与上述停止时间之间的流数据,对每个流算子进行数据回滚,得到当前时刻每个流算子的状态和每个流算子对应的流窗口中缓存的数据。之后,该流处理平台启动第二流处理模型,以继续对流数据进行处理。
上述方法中,停止第一流处理模型与启动第二流处理模型之间存在一定的 时间间隔,在该时间间隔内流处理平台无法对流数据进行实时处理。另外,如果第一流处理模型包括的流算子较多,且流算子对应的流窗口中缓存的数据也较多,此时,根据上述方法计算当前时刻每个流算子的状态和每个流算子对应的流窗口中缓存的数据时需要较长的时间,进而造成对流数据进行处理的延迟。
发明内容
为了在增加流算子的过程中,避免流数据处理的延迟,本发明实施例提供了一种对流数据进行处理的方法及装置。所述技术方案如下:
第一方面,提供了一种对流数据进行处理的方法,所述方法包括:
当对业务产生的流数据进行第一处理操作时,接收第一流处理模型,所述第一流处理模型包括所述第一处理操作对应的流算子,所述第一处理操作为在所述流数据的原有处理操作之外新增的处理操作;
根据第二流处理模型,对所述第一流处理模型进行修改,得到第三流处理模型,所述第二流处理模型为流处理平台中正在运行的对所述流数据进行处理的流处理模型,且所述第二流处理模型包括所述原有处理操作;
当接收到停止指令时,停止第一流合并模型,所述第一流合并模型与所述第二流处理模型对应,且所述第一流合并模型用于对所述第二流处理模型输出的中间结果进行合并;
对所述第一流合并模型进行修改,得到第二流合并模型,所述第二流合并模型用于对所述第三流处理模型输出的中间处理结果和所述第二流处理模型输出的中间处理结果进行合并;
当接收到启动指令时,启动所述第二流合并模型,通过所述第二流处理模型、所述第三流处理模型和所述第二流合并模型对所述业务产生的流数据进行处理。
结合第一方面,在上述第一方面的第一种可能的实现方式中,所述根据第二流处理模型,对所述第一流处理模型进行修改,得到第三流处理模型,包括:
如果所述第一流处理模型包括原始输入算子,则将所述原始输入算子替换为第一输入算子,所述第一输入算子为第二流处理模型包括的输入算子;
向所述第一流处理模型增加预设的内部输出算子,得到第三流处理模型。
结合第一方面或第一方面的第一种可能的实现方式,在上述第一方面的第二种可能的实现方式中,所述停止第一流合并模型,包括:
根据所述第二流处理模型的标识,从存储的流处理模型标识与流合并模型标识之间的对应关系中获取对应的流合并模型标识;
将所述流合并模型标识对应的流合并模型确定为第一流合并模型;
停止所述第一流合并模型。
结合第一方面、第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式,在上述第一方面的第三种可能的实现方式中,所述接收第一流处理模型之前,还包括:
接收第四流处理模型;
将所述第四流处理模型包括的原始输出算子替换为预设的内部输出算子,得到所述第二流处理模型;
基于所述第四流处理模型,生成所述第一流合并模型。
结合第一方面的第三种可能的实现方式,在上述第一方面的第四种可能的实现方式中,所述基于所述第四流处理模型,生成所述第一流合并模型,包括:
生成第二输入算子,所述第二输入算子用于从所述消息中间件中获取所述第二流处理模型输出的中间处理结果;
生成第一合并算子,所述第一合并算子用于将所述第二流处理模型输出的中间处理结果进行合并;
根据所述第二输入算子、所述第一合并算子和所述第四流处理模型包括的原始输出算子,生成所述第一流合并模型。
第二方面,提供了一种对流数据进行处理的装置,所述装置包括:
第一接收模块,用于当对业务产生的流数据进行第一处理操作时,接收第一流处理模型,所述第一流处理模型包括所述第一处理操作对应的流算子,所述第一处理操作为在所述流数据的原有处理操作之外新增的处理操作;
第一修改模块,用于根据第二流处理模型,对所述第一流处理模型进行修改,得到第三流处理模型,所述第二流处理模型为流处理平台中正在运行的对所述流数据进行处理的流处理模型,且所述第二流处理模型包括所述原有处理操作;
停止模块,用于当接收到停止指令时,停止第一流合并模型,所述第一流合并模型与所述第二流处理模型对应,且所述第一流合并模型用于对所述第二流处理模型输出的中间结果进行合并;
第二修改模块,用于对所述第一流合并模型进行修改,得到第二流合并模型,所述第二流合并模型用于对所述第三流处理模型输出的中间处理结果和所述第二流处理模型输出的中间处理结果进行合并;
启动模块,用于当接收到启动指令时,启动所述第二流合并模型,通过所述第二流处理模型、所述第三流处理模型和所述第二流合并模型对所述业务产生的流数据进行处理。
结合第二方面,在上述第二方面的第一种可能的实现方式中,所述第一修改模块包括:
替换单元,用于如果所述第一流处理模型包括原始输入算子,则将所述原始输入算子替换为第一输入算子,所述第一输入算子为第二流处理模型包括的输入算子;
增加单元,用于向所述第一流处理模型增加预设的内部输出算子,得到第三流处理模型。
结合第二方面或第二方面的第一种可能的实现方式,在上述第二方面的第二种可能的实现方式中,所述停止模块包括:
获取单元,用于当接收到停止指令时,根据所述第二流处理模型的标识, 从存储的流处理模型标识与流合并模型标识之间的对应关系中获取对应的流合并模型标识;
确定单元,用于将所述流合并模型标识对应的流合并模型确定为第一流合并模型;
停止单元,用于停止所述第一流合并模型。
结合第二方面、第二方面的第一种可能的实现方式或第二方面的第二种可能的实现方式,在上述第二方面的第三种可能的实现方式中,所述装置还包括:
第二接收模块,用于接收第四流处理模型;
替换模块,用于将所述第四流处理模型包括的原始输出算子替换为预设的内部输出算子,得到所述第二流处理模型;
生成模块,用于基于所述第四流处理模型,生成所述第一流合并模型。
结合第二方面的第三种可能的实现方式,在上述第二方面的第四种可能的实现方式中,所述生成模块包括:
第一生成单元,用于生成第二输入算子,所述第二输入算子用于从所述消息中间件中获取所述第二流处理模型输出的中间处理结果;
第二生成单元,用于生成第一合并算子,所述第一合并算子用于将所述第二流处理模型输出的中间处理结果进行合并;
第三生成单元,用于根据所述第二输入算子、所述第一合并算子和所述第四流处理模型包括的原始输出算子,生成所述第一流合并模型。
第三方面,提供了一种对流数据进行处理的装置,所述装置包括:接收机、存储器和处理器,用于执行所述一种对流数据进行处理的方法。
在本发明实施例中,当流处理平台接收到第一流处理模型时,流处理平台基于第二流处理模型对第一流处理模型进行修改,得到第三流处理模型,使第三流处理模型和第二流处理模型都对流数据进行处理,得到中间处理结果,第一流处理模型包括第一处理操作对应的流算子,且第一处理操作为新增的处理 操作。之后,停止第一流合并模型,将第一流合并模型进行修改,得到第二流合并模型。启动第二流合并模型,进而实现了流算子的增加。由于第一流合并模型只实现数据合并操作,没有任何计算数据需要缓存,所以将第一流合并模型修改为第二流合并模型之后,可以快速地启动第二流合并模型。另外,在增加第一处理操作对应的流算子过程中,由于第二流数据模型没有重启,一直保持运行状态,没有影响原有处理操作对流数据的实时计算,从而确保了增加第一处理操作对应的流算子之后,可以快速、准确地完成流数据的处理,并且不会造成对流数据进行处理的延迟。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的一种对流数据进行处理的方法流程图;
图2是本发明实施例二提供的一种对流数据进行处理的方法流程图;
图3是本发明实施例二提供的一种第四流处理模型的结构示意图;
图4是本发明实施例二提供的一种第二流处理模型的结构示意图;
图5是本发明实施例二提供的一种对流数据进行处理的模型结构示意图;
图6是本发明实施例二提供的一种第一流处理模型的结构示意图;
图7是本发明实施例二提供的一种第三流处理模型的结构示意图;
图8是本发明实施例二提供的另一种对流数据进行处理的模型结构示意图;
图9是本发明实施例三提供的一种对流数据进行处理的装置结构示意图;
图10是本发明实施例四提供的一种对流数据进行处理的装置结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例一
图1是本发明实施例提供的一种对流数据进行处理的方法流程图。参见图1,该方法包括:
步骤101:当需要对业务产生的流数据进行第一处理操作时,接收第一流处理模型,第一流处理模型包括第一处理操作对应的流算子,第一处理操作为在流数据的原有处理操作之外新增的处理操作。
步骤102:根据第二流处理模型,对第一流处理模型进行修改,得到第三流处理模型,第二流处理模型为流处理平台中正在运行的对该流数据进行处理的流处理模型,且第二流处理模型包括原有处理操作。
步骤103:当接收到停止指令时,停止第一流合并模型,第一流合并模型与第二流处理模型对应,且第一流合并模型用于对第二流处理模型输出的中间结果进行合并。
步骤104:对第一流合并模型进行修改,得到第二流合并模型,第二流合并模型用于对第三流处理模型输出的中间处理结果和第二流处理模型输出的中间处理结果进行合并。
步骤105:当接收到启动指令时,启动第二流合并模型,通过第二流处理模型、第三流处理模型和第二流合并模型对该业务产生的流数据进行处理。
在本发明实施例中,当新增第一处理操作对应流算子时,开发人员向流处理平台提交包括该流算子的第一流处理模型。当流处理平台接收到第一流处理模型时,流处理平台基于第二流处理模型对第一流处理模型进行修改,得到第三流处理模型,使第三流处理模型和第二流处理模型都对流数据进行处理,得到中间处理结果。之后,停止第一流合并模型,将第一流合并模型进行修改,得到第二流合并模型。启动第二流合并模型,进而实现了流算子的增加。由于第一流合并模型只实现数据合并操作,没有任何计算数据需要缓存,所以将第 一流合并模型修改为第二流合并模型之后,可以快速地启动第二流合并模型。另外,当增加第一处理操作对应流算子过程中,由于第二流数据模型没有重启,一直保持运行状态,没有影响原有处理操作对流数据的实时计算,从而确保了增加第一处理操作对应的流算子之后,可以快速、准确地完成流数据的处理,并且不会造成对流数据进行处理的延迟。
可选地,根据第二流处理模型,对第一流处理模型进行修改,得到第三流处理模型,包括:
如果第一流处理模型包括原始输入算子,则将原始输入算子替换为第一输入算子,第一输入算子为第二流处理模型包括的输入算子;
向第一流处理模型增加预设的内部输出算子,得到第三流处理模型。
可选地,停止第一流合并模型,包括:
根据第二流处理模型的标识,从存储的流处理模型标识与流合并模型标识之间的对应关系中获取对应的流合并模型标识;
将获取的流合并模型标识对应的流合并模型确定为第一流合并模型;
停止第一流合并模型。
可选地,接收第一流处理模型之前,还包括:
接收第四流处理模型;
将第四流处理模型包括的原始输出算子替换为预设的内部输出算子,得到第二流处理模型;
基于第四流处理模型,生成第一流合并模型。
可选地,基于第四流处理模型,生成第一流合并模型,包括:
生成第二输入算子,第二输入算子用于从消息中间件中获取第二流处理模型输出的中间处理结果;
生成第一合并算子,第一合并算子用于将第二流处理模型输出的中间处理结果进行合并;
根据第二输入算子、第一合并算子和第四流处理模型包括的原始输出算子, 生成第一流合并模型。
上述所有可选技术方案,均可按照任意结合形成本发明的可选实施例,本发明对此不再一一赘述。
实施例二
图2是本发明实施例提供的一种对流数据进行处理的方法流程图。参见图2,该方法包括:
步骤201:接收第四流处理模型。
具体地,动态调度模块接收第四流处理模型。其中,动态调度模块可以为流处理平台中的模块,也可以为单独的其他装置中的模块,优选地,动态调度模块为流处理平台中的模块。本发明实施例对此不做具体限定。
其中,当对业务产生的流数据进行处理时,开发人员可以根据需要的处理结果开发第四流处理模型,第四流处理模型用于对该业务的流数据进行处理,且第四流处理模型中包括多个流算子,每个流算子用于对流数据完成一类处理操作。例如,如图3所示的第四流处理模型P1的结构示意图。在图3所示的第四流处理模型P1中包括第一输入算子、第一流算子、第二流算子、第三合并算子和原始输出算子PE1。第一输入算子用于从原始数据源中获取该业务产生的流数据,并输出至第一流算子和第二流算子中。第一流算子对应第一流窗口,第二流算子对应第二流窗口,第一流窗口的时间长度为20分钟,第二流窗口的时间长度为30分钟。第一流算子用于计算20分钟内的流数据的最大值Max、最小值Min和平均值Avg,第二流算子用于计算30分钟内的流数据的最大值Max、最小值Min和平均值Avg。第三合并算子用于将第一流算子输出的计算结果和第二流算子输出的计算结果进行合并,并通过原始输出算子PE1输出。
需要补充说明的是,在本发明实施例中,仅以图3中的第四流处理模型P1进行举例说明,实际应用中,第四流处理模型中的流算子的个数是根据实际情况变化的,且当流算子个数为1时,第三合并算子也可以不用,所以,本发明 实施例对第四流处理模型不做具体限定。
步骤202:将第四流处理模型包括的原始输出算子替换为预设的内部输出算子,得到第二流处理模型。
具体地,动态调度模块将第四流处理模型包括的原始输出算子替换为预设的内部输出算子,得到第二流处理模型。
其中,第四流处理模型包括的原始输出算子用于将第四流处理模型包括的流算子处理得到的计算结果直接输出至输出数据源中,而预设的内部输出算子用于将第二流处理模型包括的流算子处理得到的中间处理结果输出至消息中间件中。所以,在本发明实施例中,将第四流处理模型包括的原始输出算子替换为预设的内部输出算子,这样,第二流处理模型中输出的中间处理结果可以直接输出至消息中间件中。
其中,输出数据源可以为统计处理结果的终端,或者服务器,本发明实施例对此不做具体限定。消息中间件可以是流处理平台中的一个模块,还可以是一个单独的装置,本发明实施例对此同样不做具体限定。另外,消息中间件中可以包括多个消息队列,且每个消息队列对应一个流数据,消息队列用于存储第二流处理模型输出的中间处理结果。
基于步骤201中的例子,将第四流处理模型P1包括的原始输出算子PE1替换为预设的内部输出算子PE2,得到图4所示的第二流处理模型P2。
另外,当第二流处理模型包括的流算子对流数据进行处理,得到中间处理结果之后,第二流处理模型包括的预设的内部输出算子根据该流数据标识,从存储的流数据标识与消息队列标识之间的对应关系中获取对应的消息队列标识。根据获取的消息队列标识,将第二流处理模型输出的中间处理结果输出至消息中间件对应的消息队列中。
其中,流数据标识可以为该流数据所在业务的名称,消息队列标识可以为该消息队列在消息中间件中的编号,本发明实施例对此不做具体限定。
步骤203:基于第四流处理模型,生成第一流合并模型。
具体地,动态调度模块生成第二输入算子,第二输入算子用于获取第二流处理模型输出的中间处理结果。生成第一合并算子,第一合并算子用于将第二流处理模型输出的中间处理结果进行合并。动态调度模块根据第二输入算子、第一合并算子和第四流处理模型包括的原始输出算子,生成第一流合并模型。
其中,第二输入算子是从消息中间件中获取第二流处理模型输出的中间处理结果。
例如,如图5所示的对流数据进行处理的模型结构示意图,在图5中包括第一流合并模型P_C1。第一流合并模型P_C1包括第二输入算子、第一合并算子和第四流处理模型P1包括的原始输出算子PE1。第一流合并模型将消息中间件中该流数据对应的消息队列中的中间处理结果进行合并,并输出至输出数据源中。
其中,当动态调度模块为单独装置中的模块时,当生成第一流合并模型之后,动态调度模块还需要将第二流处理模型和第一流合并模型发送给流处理平台,使流处理平台运行第二流处理模型和第一流合并模块,以对流数据进行处理。
通过上述步骤201至步骤203向流处理平台提交第二流处理模型和第一流合并模型之后,流处理平台可以运行第二流处理模型和第一流合并模型,以对流数据进行处理。当业务需求需要对流数据进行额外的处理操作时,即第一处理操作,可以根据如下的步骤向该流处理平台中增加第一处理操作对应的流算子。
步骤204:当对业务产生的流数据进行第一处理操作时,接收第一流处理模型,第一流处理模型包括第一处理操作对应的流算子,第一处理操作为在该流数据的原有处理操作之外新增的处理操作。
具体地,动态调度模块接收第一流处理模型,第一流处理模型包括第一处理操作对应的流算子。
可选地,第一流处理模型中还可以包括输入算子,也可以包括输出算子。 当然,第一流处理模型中也可以不包括输入算子和输出算子。优选地,第一流处理模型中包括输入算子,但是不包括输出算子。例如,如图6所示的第一流处理模型P_CH1,包括原始输入算子和第一处理操作对应的流算子,该流算子对应一个流窗口。该流窗口的时间长度为1天,且第一处理操作对应的流算子用于计算1天内的流数据的最大值。
步骤205:根据第二流处理模型,对第一流处理模型进行修改,得到第三流处理模型,第二流处理模型为流处理平台中正在运行的对流数据进行处理的流处理模型。
具体地,如果第一流处理模型包括原始输入算子,则动态调度模块将该原始输入算子替换为第一输入算子,第一输入算子为第二流处理模型包括的输入算子。向第一流处理模型增加预设的内部输出算子,得到第三流处理模型。
其中,第三流处理模型用于对流数据进行处理,并将处理得到的中间处理结果输出至消息中间件中。
其中,当第一流处理模型包括的原始输入算子与第一输入算子相同时,动态调度模块也可以不执行将该原始输入算子替换为第一输入算子的步骤。
例如,如图7所示,将第一流处理模型P_CH1包括的原始输入算子替换为第一输入算子,并向第一流处理模型P_CH1增加预设的内部输出算子PE1之后,得到第三流处理模型P_CH2。
其中,当动态调度模块为单独装置中的模块时,当动态调度模块对第一流处理模型进行修改,得到第三流处理模型之后,动态调度模块将第三流处理模型发送给流处理平台,使该流处理平台运行第三流处理模型。
进一步地,当第三流处理模型对流数据进行处理之后,预设的内部输出算子根据该流数据标识,从存储的流数据标识与消息队列标识之间的对应关系中获取对应的消息队列标识。根据获取的消息队列标识,将第三流处理模型处理得到的中间处理结果输出至对应的消息队列中。
步骤206:当接收到停止指令时,停止第一流合并模型,第一流合并模型与 第二流处理模型对应,且第一流合并模型用于对第二流处理模型输出的中间处理结果进行合并。
具体地,当流处理平台接收到停止指令时,根据第二流处理模型的标识,从存储的流处理模型标识与流合并模型标识之间的对应关系中获取对应的流合并模型标识。将获取的流合并模型标识对应的流合并模型确定为第一流合并模型。流处理平台停止第一流合并模型。
由于第一流合并模型包括的第一合并算子是对消息中间件中第二流处理模型输出的中间处理结果进行合并,此时,当通过上述步骤204和步骤205增加了新的流算子之后,触发停止指令。当流处理平台接收到该停止指令时,停止第一流合并模型。之后,对第一流合并模型包括的第一合并算子进行修改,使修改后的合并算子对消息中间件中的第二流处理模型输出的中间处理结果和第三流处理模型输出的中间处理结果进行合并。
需要说明的是,该停止指令可以是开发人员向流处理平台提交的,还可以是流处理平台根据第二流处理模型对第一流处理模型进行修改,得到第三流处理模型之后自动触发的,本发明实施例对此不做具体限定。
步骤207:将第一流合并模型进行修改,得到第二流合并模型,第二流合并模型用于对第三流处理模型输出的中间处理结果和第二流处理模型输出的中间处理结果进行合并。
具体地,流处理平台将第一流合并模型包括的第一合并算子修改为第二合并算子,得到第二流合并模型。
其中,流处理平台将第一流合并模型包括的第一合并算子修改为第二合并算子时,实际上,是将第一合并算子的功能进行修改,得到第二合并算子。例如,如图8所示的对流数据进行处理的模型,在该模型中将第一流合并模型P_C1替换为第二流合并模型P_C2。
步骤208:当接收到启动指令时,启动第二流合并模型,通过第二流处理模型、第三流处理模型和第二流合并模块对该业务产生的流数据进行处理。
当启动第二流合并模型之后,第二流合并模型包括的第二输入算子可以根据流数据标识,从存储的流数据标识与消息队列标识之间的对应关系中获取对应的消息队列标识。根据获取的消息队列标识,从对应的消息队列中获取第二流处理模型输出的中间处理结果和第三流处理模型输出的中间处理结果,并通过第二合并算子将获取的中间处理结果进行合并,最后,通过第四流处理模型包括的原始输出算子将合并后的结果输出至输出数据源中。
进一步地,当第二输入算子在预设时间内从对应的消息队列中没有获取到中间处理结果,或者只是获取到部分处理结果,此时,第二流合并模型不对获取的中间处理结果进行合并,并清除获取的中间处理结果。
需要说明的是,该启动指令可以是开发人员向流处理平台提交的,还可以是流处理平台对第一流合并模型进行修改,得到第二流合并模型之后自动触发的,本发明实施例对此不做具体限定。
在本发明实施例中,当增加第一处理操作对应的流算子时,开发人员向流处理平台提交包括该流算子的第一流处理模型。当流处理平台接收到第一流处理模型时,流处理平台基于第二流处理模型对第一流处理模型进行修改,得到第三流处理模型,使第三流处理模型和第二流处理模型都对流数据进行处理,并将处理得到的中间处理结果输出至消息中间件中。之后,停止第一流合并模型,将第一流合并模型包括的第一合并算子修改为第二合并算子,得到第二流合并模型。启动第二流合并模型,进而实现了流算子的增加。由于第一流合并模型只实现数据合并操作,没有任何计算数据需要缓存,所以将第一流合并模型修改为第二流合并模型之后,可以快速地启动第二流合并模型。另外,在增加第一处理操作对应的流算子过程中,由于第二流数据模型没有重启,一直保持运行状态,没有影响原有处理操作对流数据的实时计算,从而确保了增加第一处理操作对应的流算子之后,可以快速、准确地完成流数据的处理,并且不会造成对流数据进行处理的延迟。
实施例三
图9是本发明实施例提供的一种对流数据进行处理的装置结构示意图。参见图9,该装置包括:第一接收模块901、第一修改模块902、停止模块903、第二修改模块904和启动模块905;
第一接收模块901,用于当对业务产生的流数据进行第一处理操作时,接收第一流处理模型,第一流处理模型包括第一处理操作对应的流算子,第一处理操作为在该流数据的原有处理操作之外新增的处理操作;
第一修改模块902,用于根据第二流处理模型,对第一流处理模型进行修改,得到第三流处理模型,第二流处理模型为流处理平台中正在运行的对该流数据进行处理的流处理模型,且第二流处理模型包括原有处理操作;
停止模块903,用于当接收到停止指令时,停止第一流合并模型,第一流合并模型与第二流处理模型对应,且第一流合并模型用于对第二流处理模型输出的中间结果进行合并;
第二修改模块904,用于对第一流合并模型进行修改,得到第二流合并模型,第二流合并模型用于对第三流处理模型输出的中间处理结果和第二流处理模型输出的中间处理结果进行合并;
启动模块905,用于当接收到启动指令时,启动第二流合并模型,通过第二流处理模型、第三流处理模型和第二流合并模型对该业务产生的流数据进行处理。
可选地,第一修改模块902包括:
替换单元,用于如果第一流处理模型包括原始输入算子,则将原始输入算子替换为第一输入算子,第一输入算子为第二流处理模型包括的输入算子;
增加单元,用于向第一流处理模型增加预设的内部输出算子,得到第三流处理模型。
可选地,停止模块903包括:
获取单元,用于当接收到停止指令时,根据第二流处理模型的标识,从存 储的流处理模型标识与流合并模型标识之间的对应关系中获取对应的流合并模型标识;
确定单元,用于将获取的流合并模型标识对应的流合并模型确定为第一流合并模型;
停止单元,用于停止第一流合并模型。
可选地,该装置还包括:
第二接收模块,用于接收第四流处理模型;
替换模块,用于将第四流处理模型包括的原始输出算子替换为预设的内部输出算子,得到第二流处理模型;
生成模块,用于基于第四流处理模型,生成第一流合并模型。
可选地,生成模块包括:
第一生成单元,用于生成第二输入算子,第二输入算子用于从消息中间件中获取第二流处理模型输出的中间处理结果;
第二生成单元,用于生成第一合并算子,第一合并算子用于将第二流处理模型输出的中间处理结果进行合并;
第三生成单元,用于根据第二输入算子、第一合并算子和第四流处理模型包括的原始输出算子,生成第一流合并模型。
在本发明实施例中,当增加第一处理操作对应的流算子时,开发人员向流处理平台提交包括该流算子的第一流处理模型。当流处理平台接收到第一流处理模型时,流处理平台基于第二流处理模型对第一流处理模型进行修改,得到第三流处理模型,使第三流处理模型和第二流处理模型都对流数据进行处理,得到中间处理结果。之后,停止第一流合并模型,将第一流合并模型包括的第一合并算子修改为第二合并算子,得到第二流合并模型。启动第二流合并模型,进而实现了流算子的增加。由于第一流合并模型只实现数据合并操作,没有任何计算数据需要缓存,所以将第一流合并模型修改为第二流合并模型之后,可以快速地启动第二流合并模型。另外,在增加第一处理操作对应的流算子过程 中,由于第二流数据模型没有重启,一直保持运行状态,没有影响原有处理操作对流数据的实时计算,从而确保了增加第一处理操作对应的流算子之后,可以快速、准确地完成流数据的处理,并且不会造成对流数据进行处理的延迟。
实施例四
图10是本发明实施例提供的一种对流数据进行处理的装置结构示意图。参见图10,该装置包括:接收机1001、存储器1002和处理器1003,用于执行如下所述的一种对流数据进行处理的方法,包括:
当对业务产生的流数据进行第一处理操作时,接收第一流处理模型,第一流处理模型包括第一处理操作对应的流算子,第一处理操作为在该流数据的原有处理操作之外新增的处理操作。
根据第二流处理模型,对第一流处理模型进行修改,得到第三流处理模型,第二流处理模型为流处理平台中正在运行的对该流数据进行处理的流处理模型,且第二流处理模型包括原有处理操作。
当接收到停止指令时,停止第一流合并模型,第一流合并模型与第二流处理模型对应,且第一流合并模型用于对第二流处理模型输出的中间结果进行合并。
对第一流合并模型进行修改,得到第二流合并模型,第二流合并模型用于对第三流处理模型输出的中间处理结果和第二流处理模型输出的中间处理结果进行合并。
当接收到启动指令时,启动第二流合并模型,通过第二流处理模型、第三流处理模型和第二流合并模型对该业务产生的流数据进行处理。
可选地,根据第二流处理模型,对第一流处理模型进行修改,得到第三流处理模型,包括:
如果第一流处理模型包括原始输入算子,则将原始输入算子替换为第一输入算子,第一输入算子为第二流处理模型包括的输入算子;
向第一流处理模型增加预设的内部输出算子,得到第三流处理模型。
可选地,停止第一流合并模型,包括:
根据第二流处理模型的标识,从存储的流处理模型标识与流合并模型标识之间的对应关系中获取对应的流合并模型标识;
将获取的流合并模型标识对应的流合并模型确定为第一流合并模型;
停止第一流合并模型。
可选地,接收第一流处理模型之前,还包括:
接收第四流处理模型;
将第四流处理模型包括的原始输出算子替换为预设的内部输出算子,得到第二流处理模型;
基于第四流处理模型,生成第一流合并模型。
可选地,基于第四流处理模型,生成第一流合并模型,包括:
生成第二输入算子,第二输入算子用于从消息中间件中获取第二流处理模型输出的中间处理结果;
生成第一合并算子,第一合并算子用于将第二流处理模型输出的中间处理结果进行合并;
根据第二输入算子、第一合并算子和第四流处理模型包括的原始输出算子,生成第一流合并模型。
在本发明实施例中,当增加第一处理操作对应的流算子时,开发人员向流处理平台提交包括该流算子的第一流处理模型。当流处理平台接收到第一流处理模型时,流处理平台基于第二流处理模型对第一流处理模型进行修改,得到第三流处理模型,使第三流处理模型和第二流处理模型都对流数据进行处理,并将处理得到的中间处理结果输出至消息中间件中。之后,停止第一流合并模型,将第一流合并模型包括的第一合并算子修改为第二合并算子,得到第二流合并模型。启动第二流合并模型,进而实现了流算子的增加。由于第一流合并模型只实现数据合并操作,没有任何计算数据需要缓存,所以将第一流合并模 型修改为第二流合并模型之后,可以快速地启动第二流合并模型。另外,在增加第一处理操作对应的流算子过程中,由于第二流数据模型没有重启,一直保持运行状态,没有影响原有处理操作对流数据的实时计算,从而确保了增加第一处理操作对应的流算子之后,可以快速、准确地完成流数据的处理,并且不会造成对流数据进行处理的延迟。
需要说明的是:上述实施例提供的对流数据进行处理的装置在对流数据进行处理时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的对流数据进行处理的装置与对流数据进行处理的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (11)
1.一种对流数据进行处理的方法,其特征在于,所述方法包括:
当对业务产生的流数据进行第一处理操作时,接收第一流处理模型,所述第一流处理模型包括所述第一处理操作对应的流算子,所述第一处理操作为在所述流数据的原有处理操作之外新增的处理操作;
根据第二流处理模型,对所述第一流处理模型进行修改,得到第三流处理模型,所述第二流处理模型为流处理平台中正在运行的对所述流数据进行处理的流处理模型,且所述第二流处理模型包括所述原有处理操作;
当接收到停止指令时,停止第一流合并模型,所述第一流合并模型与所述第二流处理模型对应,且所述第一流合并模型用于对所述第二流处理模型输出的中间结果进行合并;
对所述第一流合并模型进行修改,得到第二流合并模型,所述第二流合并模型用于对所述第三流处理模型输出的中间处理结果和所述第二流处理模型输出的中间处理结果进行合并;
当接收到启动指令时,启动所述第二流合并模型,通过所述第二流处理模型、所述第三流处理模型和所述第二流合并模型对所述业务产生的流数据进行处理。
2.如权利要求1所述的方法,其特征在于,所述根据第二流处理模型,对所述第一流处理模型进行修改,得到第三流处理模型,包括:
如果所述第一流处理模型包括原始输入算子,则将所述原始输入算子替换为第一输入算子,所述第一输入算子为第二流处理模型包括的输入算子;
向所述第一流处理模型增加预设的内部输出算子,得到第三流处理模型。
3.如权利要求1所述的方法,其特征在于,所述停止第一流合并模型,包 括:
根据所述第二流处理模型的标识,从存储的流处理模型标识与流合并模型标识之间的对应关系中获取对应的流合并模型标识;
将所述流合并模型标识对应的流合并模型确定为第一流合并模型;
停止所述第一流合并模型。
4.如权利要求1-3任一权利要求所述的方法,其特征在于,所述接收第一流处理模型之前,还包括:
接收第四流处理模型;
将所述第四流处理模型包括的原始输出算子替换为预设的内部输出算子,得到所述第二流处理模型;
基于所述第四流处理模型,生成所述第一流合并模型。
5.如权利要求4所述的方法,其特征在于,所述基于所述第四流处理模型,生成所述第一流合并模型,包括:
生成第二输入算子,所述第二输入算子用于获取所述第二流处理模型输出的中间处理结果;
生成第一合并算子,所述第一合并算子用于将所述第二流处理模型输出的中间处理结果进行合并;
根据所述第二输入算子、所述第一合并算子和所述第四流处理模型包括的原始输出算子,生成所述第一流合并模型。
6.一种对流数据进行处理的装置,其特征在于,所述装置包括:
第一接收模块,用于当对业务产生的流数据进行第一处理操作时,接收第一流处理模型,所述第一流处理模型包括所述第一处理操作对应的流算子,所述第一处理操作为在所述流数据的原有处理操作之外新增的处理操作;
第一修改模块,用于根据第二流处理模型,对所述第一流处理模型进行修改,得到第三流处理模型,所述第二流处理模型为流处理平台中正在运行的对所述流数据进行处理的流处理模型,且所述第二流处理模型包括所述原有处理操作;
停止模块,用于当接收到停止指令时,停止第一流合并模型,所述第一流合并模型与所述第二流处理模型对应,且所述第一流合并模型用于对所述第二流处理模型输出的中间结果进行合并;
第二修改模块,用于对所述第一流合并模型进行修改,得到第二流合并模型,所述第二流合并模型用于对所述第三流处理模型输出的中间处理结果和所述第二流处理模型输出的中间处理结果进行合并;
启动模块,用于当接收到启动指令时,启动所述第二流合并模型,通过所述第二流处理模型、所述第三流处理模型和所述第二流合并模型对所述业务产生的流数据进行处理。
7.如权利要求6所述的装置,其特征在于,所述第一修改模块包括:
替换单元,用于如果所述第一流处理模型包括原始输入算子,则将所述原始输入算子替换为第一输入算子,所述第一输入算子为第二流处理模型包括的输入算子;
增加单元,用于向所述第一流处理模型增加预设的内部输出算子,得到第三流处理模型。
8.如权利要求6所述的装置,其特征在于,所述停止模块包括:
获取单元,用于当接收到停止指令时,根据所述第二流处理模型的标识,从存储的流处理模型标识与流合并模型标识之间的对应关系中获取对应的流合并模型标识;
确定单元,用于将所述流合并模型标识对应的流合并模型确定为第一流合 并模型;
停止单元,用于停止所述第一流合并模型。
9.如权利要求6-8任一权利要求所述的装置,其特征在于,所述装置还包括:
第二接收模块,用于接收第四流处理模型;
替换模块,用于将所述第四流处理模型包括的原始输出算子替换为预设的内部输出算子,得到所述第二流处理模型;
生成模块,用于基于所述第四流处理模型,生成所述第一流合并模型。
10.如权利要求9所述的装置,其特征在于,所述生成模块包括:
第一生成单元,用于生成第二输入算子,所述第二输入算子用于从消息中间件中获取所述第二流处理模型输出的中间处理结果;
第二生成单元,用于生成第一合并算子,所述第一合并算子用于将所述第二流处理模型输出的中间处理结果进行合并;
第三生成单元,用于根据所述第二输入算子、所述第一合并算子和所述第四流处理模型包括的原始输出算子,生成所述第一流合并模型。
11.一种对流数据进行处理的装置,其特征在于,所述装置包括:接收机、存储器和处理器,用于执行上述权利要求1-5中任一权利要求所述的对流数据进行处理的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410427013.7A CN104216766B (zh) | 2014-08-26 | 2014-08-26 | 对流数据进行处理的方法及装置 |
PCT/CN2015/082530 WO2016029738A1 (zh) | 2014-08-26 | 2015-06-26 | 对流数据进行处理的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410427013.7A CN104216766B (zh) | 2014-08-26 | 2014-08-26 | 对流数据进行处理的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104216766A CN104216766A (zh) | 2014-12-17 |
CN104216766B true CN104216766B (zh) | 2017-08-29 |
Family
ID=52098291
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410427013.7A Active CN104216766B (zh) | 2014-08-26 | 2014-08-26 | 对流数据进行处理的方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN104216766B (zh) |
WO (1) | WO2016029738A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104216766B (zh) * | 2014-08-26 | 2017-08-29 | 华为技术有限公司 | 对流数据进行处理的方法及装置 |
CN109690486A (zh) * | 2016-09-09 | 2019-04-26 | 华为技术有限公司 | 用于处理数据流信息的设备和方法 |
CN107885752A (zh) * | 2016-09-30 | 2018-04-06 | 阿里巴巴集团控股有限公司 | 数据处理和查询方法及装置 |
CN108243200B (zh) * | 2016-12-23 | 2022-04-12 | 中科星图股份有限公司 | 一种用于确定流处理请求等级的服务器 |
CN110704551B (zh) * | 2018-06-21 | 2023-02-17 | 中兴通讯股份有限公司 | 数据处理方法、装置、设备及计算机可读存储介质 |
CN110020021B (zh) * | 2018-09-03 | 2023-04-07 | 福建星瑞格软件有限公司 | 基于可视化的数据流处理方法 |
CN111611447B (zh) * | 2019-02-25 | 2022-07-22 | 华为技术有限公司 | 一种计算机及服务器 |
CN117556212A (zh) * | 2023-11-29 | 2024-02-13 | 金网络(北京)数字科技有限公司 | 一种流式大数据的分析方法、装置、***及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102591899A (zh) * | 2010-11-30 | 2012-07-18 | 国际商业机器公司 | 用于基于流的调试的方法和*** |
CN103069385A (zh) * | 2010-06-15 | 2013-04-24 | 起元技术有限责任公司 | 动态加载基于图的计算 |
CN103870340A (zh) * | 2014-03-06 | 2014-06-18 | 华为技术有限公司 | 流计算***中的数据处理方法、控制节点及流计算*** |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10254653B4 (de) * | 2002-11-22 | 2009-05-28 | Infineon Technologies Ag | Vorrichtung zur Steuerung der Verarbeitung von Datenwörtern eines Datenstroms |
US9524184B2 (en) * | 2012-07-31 | 2016-12-20 | Hewlett Packard Enterprise Development Lp | Open station canonical operator for data stream processing |
CN104216766B (zh) * | 2014-08-26 | 2017-08-29 | 华为技术有限公司 | 对流数据进行处理的方法及装置 |
-
2014
- 2014-08-26 CN CN201410427013.7A patent/CN104216766B/zh active Active
-
2015
- 2015-06-26 WO PCT/CN2015/082530 patent/WO2016029738A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103069385A (zh) * | 2010-06-15 | 2013-04-24 | 起元技术有限责任公司 | 动态加载基于图的计算 |
CN102591899A (zh) * | 2010-11-30 | 2012-07-18 | 国际商业机器公司 | 用于基于流的调试的方法和*** |
CN103870340A (zh) * | 2014-03-06 | 2014-06-18 | 华为技术有限公司 | 流计算***中的数据处理方法、控制节点及流计算*** |
Also Published As
Publication number | Publication date |
---|---|
CN104216766A (zh) | 2014-12-17 |
WO2016029738A1 (zh) | 2016-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104216766B (zh) | 对流数据进行处理的方法及装置 | |
CN106529673B (zh) | 基于人工智能的深度学习网络训练方法及装置 | |
CN104424018B (zh) | 分布式计算事务处理方法及装置 | |
WO2018153140A9 (zh) | 一种业务经验包推荐***和方法 | |
CN112001500B (zh) | 基于纵向联邦学习***的模型训练方法、设备及存储介质 | |
US9755942B2 (en) | Method and system for monitoring conditions in a dynamic network environment | |
CN109726004B (zh) | 一种数据处理方法及装置 | |
CN103731377B (zh) | 处理报文的方法与设备 | |
CN107589828A (zh) | 基于知识图谱的人机交互方法及*** | |
US8887160B2 (en) | Mapping tasks to execution threads | |
US20140089352A1 (en) | Handling out-of-sequence data in a streaming environment | |
JP2020027616A (ja) | コマンド実行方法及び装置 | |
CN109144734A (zh) | 一种容器资源配额分配方法和装置 | |
CN107911251A (zh) | 一种网络设备配置方法、装置和介质 | |
US20170344457A1 (en) | System for expression evaluation at debug time | |
CN111198754B (zh) | 一种任务调度方法及装置 | |
CN111104214B (zh) | 一种工作流应用方法及装置 | |
CN107547608A (zh) | 分布式任务处理方法和装置 | |
CN107277100A (zh) | 用于近实时云基础设施策略实现和管理的***和方法 | |
US8600976B2 (en) | Invalidating streams in an operator graph | |
CN106845991A (zh) | 一种规则处理方法和设备 | |
CN107515792A (zh) | 功能类使用Handler进行消息处理的方法和装置 | |
Zschörnig et al. | A cloud-based Analytics-Platform for user-centric Internet of Things domains–Prototype and Performance Evaluation | |
US9910642B2 (en) | Optimal rule generation from a digraph representation | |
CN109343856A (zh) | 自定义算法组件的生成方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220222 Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province Patentee after: Huawei Cloud Computing Technologies Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
TR01 | Transfer of patent right |