基于计算程序链的流式数据处理方法、装置及存储介质制造方法及图纸

技术编号:38383544 阅读:9 留言:0更新日期:2023-08-05 17:40
本发明专利技术提供基于计算程序链的流式数据处理方法、装置及存储介质,所述方法包括:接收计算逻辑表达式,其中,计算逻辑表达式表征整个流计算流水线需要完成的总计算任务;解析计算逻辑表达式,以得到目标计算程序链,目标计算程序链包括至少一个计算单元实例,其中,所述至少一个计算单元实例按照计算逻辑表达式确定的逻辑顺序实现数据传递;运行目标计算程序链以接收数据源推送的原始数据,并触发至少一个计算单元实例按照所述逻辑顺序依次执行对应的计算任务;输出目标计算程序链针对所述原始数据得到的目标结果数据。本申请可提高整个流计算流水线在执行过程中的配置灵活性和便捷性。捷性。捷性。

【技术实现步骤摘要】
基于计算程序链的流式数据处理方法、装置及存储介质


[0001]本申请涉及数据处理
,特别涉及基于计算程序链的流式数据处理方法、装置及存储介质。

技术介绍

[0002]在很多业务场景中,比如电商业务、金融业务、物联网业务等等,都需要对动态产生的数据做流计算处理,以便及时获得相应的分析结果。通常情况下会使用开源的计算引擎或者自研的计算引擎,来编写程序代码以获得分析结果。在实际业务场景中对数据的分析需求往往比较复杂,会涉及到多种类型的程序代码,需要将计算程序代码串联起来,组成流计算流水线。原始数据输入给流计算流水线的第一个程序代码,第一个程序代码的输出作为第二个程序代码的输入,经过多个程序代码的串联计算后,流计算流水线的最后一个程序代码输出最终的结果。
[0003]目前,使用计算引擎来构建流计算流水线的程序代码时需要分为以下几个步骤:步骤一,分别编写流计算流水线涉及到的所有程序代码,每个程序代码都有各自的名称,其中,在编写某一个程序代码时,只需要明确当前程序代码处于流计算流水线的哪个步骤。步骤二,使用CI/CD技术,将多个程序代码按照输入的数据格式进行人工编排。步骤三,引入第三方存储件来缓存流计算流水线的中间计算结果,并在不同程序代码之间进行数据传递。
[0004]然而,流计算流水线的每一个步骤都有比较多的限制,比如对输入数据的格式要求,流计算流水线中不同程序代码之间串联起来需要人工干预,来核对数据格式,这样会降低整个流计算流水线在执行过程中的配置灵活性和便捷性。

技术实现思路

[0005]为了提高整个流计算流水线在执行过程中的配置灵活性和便捷性,本申请实施例提供了基于计算程序链的流式数据处理方法、系统及存储介质。
[0006]第一方面,本实施例提供了一种基于计算程序链的流式数据处理方法,所述方法包括:接收计算逻辑表达式,其中,计算逻辑表达式表征整个流计算流水线需要完成的总计算任务;解析所述计算逻辑表达式,以得到目标计算程序链,所述目标计算程序链包括至少一个计算单元实例,其中,所述至少一个计算单元实例按照所述计算逻辑表达式确定的逻辑顺序实现数据传递;运行所述目标计算程序链以接收流式数据源推送的原始数据,并触发所述至少一个计算单元实例按照所述逻辑顺序依次执行对应的计算任务;输出所述目标计算程序链针对所述原始数据得到的目标结果数据。
[0007]在其中的一些实施例中,所述计算单元实例是一段由对应的函数名称表征的程序代码,所述程序代码包括输入部分、任务实体、以及输出部分,所述输入部分用于接收输入
参数,所述任务实体用于针对所述输入参数执行对应的计算任务以得到计算结果,所述输出部分用于向外传递所述计算结果,其中,所述任务实体是与所述计算单元实例相关联的预设代码段。
[0008]在其中的一些实施例中,不同的函数名称表征执行不同的计算任务的计算单元实例,并且不同的计算单元实例的任务实体对应的预设代码段均不相同。
[0009]在其中的一些实施例中,所述计算逻辑表达式是由多个函数名称构成的多函数嵌套表达式,并且所述解析所述计算逻辑表达式,以得到目标计算程序链包括:根据先外层后内层的原则将所述计算逻辑表达式解析成在逻辑上顺序执行的多个计算任务并为每个计算任务创建对应的计算单元实例,以形成所述目标计算程序链,其中,在每个所述计算单元实例创建完成后,所述计算逻辑表达式中的每个函数名称均与指向对应的计算单元实例的指针相绑定。
[0010]在其中的一些实施例中,所述根据先外层后内层的原则将所述计算逻辑表达式解析成在逻辑上顺序执行的多个计算任务并为每个计算任务创建对应的计算单元实例包括:针对所述多函数嵌套表达式中相邻两层的函数名称,执行如下操作:若外层是所述多函数嵌套表达式的最外层,则将所述外层的函数名称所对应的计算单元实例作为所述目标计算程序链的最后一个计算单元实例,并将该最后一个计算单元实例的输出部分设定为向预设的外部接纳者传递作为所述目标结果数据的计算结果,若外层是所述多函数嵌套表达式的非最外层,则将所述外层的函数名称所对应的计算单元实例的输出部分,设定为向下一级计算单元实例的输入部分传递本级计算单元实例的计算结果;以及将所述内层的函数名称所对应的计算单元实例的输出部分,设定为向外层的函数名称所对应的计算单元实例的输入部分传递所述内层的函数名称所对应的计算单元实例的计算结果。
[0011]在其中的一些实施例中,所述根据先外层后内层的原则将所述计算逻辑表达式解析成在逻辑上顺序执行的多个计算任务并未每个计算任务创建对应的计算单元实例还包括:针对所述多函数嵌套表达式中相邻两层的函数名称,执行如下操作:若内层是所述多函数嵌套表达式的最内层,则将所述内层的函数名称所对应的计算单元实例作为所述目标计算程序链的第一个计算单元实例,并将该第一个计算单元实例的输入部分设定为接收所述流式数据源推送的原始数据,若内层是所述多函数嵌套表达式的非最内层,则将所述内层的函数名称所对应的计算单元实例的输入部分,设定为接收上一级计算单元实例的输出部分传递的该上一级计算单元实例的计算结果;以及将外层的函数名称所对应的计算单元实例的输入部分,设定为接收内层的函数名称所对应的计算单元实例的输出部分传递的该内层的函数名称所对应的计算单元实例的计算结果。
[0012]在其中的一些实施例中,所述根据先外层后内层的原则将所述计算逻辑表达式解析成在逻辑上顺序执行的多个计算任务并为每个计算任务创建对应的计算单元实例还包括:所述目标计算程序链中的每个非最后一个计算单元实例的输出部分均通过调用
下一级计算单元实例的函数名称所表征的函数类型的程序代码的方式,来将本计算单元实例的计算结果作为输入参数传递给下一级计算单元实例的输入部分。
[0013]在其中的一些实施例中,所述原始数据和所述计算结果均是数组,并且所述触发所述至少一个计算单元实例按照所述逻辑顺序依次执行对应的计算程序包括:触发所述至少一个计算单元实例通过使用下标或者偏移量的方式从对应的数组中获取与各自的输入部分相对应的输入参数,以执行对应的任务实体。
[0014]第二方面,本实施例提供了基于计算程序链的流式数据处理装置,所述装置包括:任务接收模块、解析模块、流式数据处理模块和结果输出模块;其中,所述任务接收模块用于接收计算逻辑表达式,其中,计算逻辑表达式表征整个流计算流水线需要完成的总计算任务;所述解析模块用于解析所述计算逻辑表达式,以得到目标计算程序链,所述目标计算程序链包括至少一个计算单元实例,其中,所述至少一个计算单元实例按照所述计算逻辑表达式确定的逻辑顺序实现数据传递;所述流式数据处理模块用于运行所述目标计算程序链以接收流式数据源推送的原始数据,并触发所述至少一个计算单元实例按照所述逻辑顺序依次执行对应的计算任务;所述结果输出模块用于输出所述目标计算程序链针对所述原始数据得到的目标结果数据。
[0015]第三方面,本申请实施例提供了一种存储介质,其上存储有能在处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如第一方面所本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.基于计算程序链的流式数据处理方法,其特征在于,所述方法包括:接收计算逻辑表达式,其中,计算逻辑表达式表征整个流计算流水线需要完成的总计算任务;解析所述计算逻辑表达式,以得到目标计算程序链,所述目标计算程序链包括至少一个计算单元实例,其中,所述至少一个计算单元实例按照所述计算逻辑表达式确定的逻辑顺序实现数据传递;运行所述目标计算程序链以接收流式数据源推送的原始数据,并触发所述至少一个计算单元实例按照所述逻辑顺序依次执行对应的计算任务;输出所述目标计算程序链针对所述原始数据得到的目标结果数据。2.根据权利要求1所述的方法,其特征在于,所述计算单元实例是一段由对应的函数名称表征的程序代码,所述程序代码包括输入部分、任务实体、以及输出部分,所述输入部分用于接收输入参数,所述任务实体用于针对所述输入参数执行对应的计算任务以得到计算结果,所述输出部分用于向外传递所述计算结果,其中,所述任务实体是与所述计算单元实例相关联的预设代码段。3.根据权利要求2所述的方法,其特征在于,不同的函数名称表征执行不同的计算任务的计算单元实例,并且不同的计算单元实例的任务实体对应的预设代码段均不相同。4.根据权利要求3所述的方法,其特征在于,所述计算逻辑表达式是由多个函数名称构成的多函数嵌套表达式,并且所述解析所述计算逻辑表达式,以得到目标计算程序链包括:根据先外层后内层的原则将所述计算逻辑表达式解析成在逻辑上顺序执行的多个计算任务并为每个计算任务创建对应的计算单元实例,以形成所述目标计算程序链,其中,在每个所述计算单元实例创建完成后,所述计算逻辑表达式中的每个函数名称均与指向对应的计算单元实例的指针相绑定。5.根据权利要求4所述的方法,其特征在于,所述根据先外层后内层的原则将所述计算逻辑表达式解析成在逻辑上顺序执行的多个计算任务并为每个计算任务创建对应的计算单元实例包括:针对所述多函数嵌套表达式中相邻两层的函数名称,执行如下操作:若外层是所述多函数嵌套表达式的最外层,则将所述外层的函数名称所对应的计算单元实例作为所述目标计算程序链的最后一个计算单元实例,并将该最后一个计算单元实例的输出部分设定为向预设的外部接纳者传递作为所述目标结果数据的计算结果,若外层是所述多函数嵌套表达式的非最外层,则将所述外层的函数名称所对应的计算单元实例的输出部分,设定为向下一级计算单元实例的输入部分传递本级计算单元实例的计算结果;以及将所述内层的函数名称所对应的计算单元实例的输出部分,设定为向外层的函数名称所对应的计算单元实例的输入部分传递所述内层的函数名称所对应的计算单元实例的计算结果。6.根据权利要求5所述的方法,其特征在于,所述根据先外层后内层的原...

【专利技术属性】
技术研发人员:周小华胡映明
申请(专利权)人:浙江智臾科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1