一种创建Flink作业的方法及装置制造方法及图纸

技术编号:28035095 阅读:39 留言:0更新日期:2021-04-09 23:17
本申请公开了一种创建Flink作业的方法及装置,该方法包括:从算子库中选择备用算子,备用算子用于Flink作业的编排。按照算子规范、备用算子的输入类型和备用算子的输出类型对备用算子建立上下游连线关系,设置备用算子的配置参数值,生成算子拓扑图。基于算子拓扑图,生成对应的有向无环图数据结构。将有向无环图数据结构发送至后端模块,以使后端模块对有向无环图数据结构进行解析生成流式图,进而将流式图提交到Flink集群执行。通过创建算子,利用不同的算子构成不同的可视化算子拓扑图,可以编排不同的Flink作业,开发效率高、可修改性、灵活性强。

【技术实现步骤摘要】
一种创建Flink作业的方法及装置
本申请涉及计算机
,尤其涉及一种创建Flink作业的方法及装置。
技术介绍
目前,通过结构化查询语言(StructuredQueryLanguage,SQL)开发Flink作业。但是当有新的Flink作业配置需求或者现有Flink作业配置方式变化时,需要对SQL语法定义进行调整,相应的SQL解析程序也要修改,可维护性差、灵活性差。
技术实现思路
为了解决上述技术问题,本申请提供了一种创建Flink作业的方法及装置,用于可视化编排Flink作业,灵活性强,可维护性强。为了实现上述目的,本申请实施例提供的技术方案如下:本申请实施例提供了一种创建Flink作业的方法,该方法包括:从算子库中选择备用算子;所述备用算子用于所述Flink作业的编排;按照所述算子规范、所述备用算子的输入类型和所述备用算子的输出类型对所述备用算子建立上下游连线关系,设置所述备用算子的配置参数值,生成算子拓扑图;基于所述算子拓扑图,生成对应的有向无环图数据结构;将所述有向无环图数据结构发送至后端模块,以使所述后端模块对所述有向无环图数据结构进行解析生成流式图,进而将所述流式图提交到Flink集群执行。可选的,在所述从算子库中选择备用算子之前,所述方法还包括:获取算子规范,所述算子规范至少包括算子的输入类型、输出类型、输入数量、输出数量、配置参数、参数取值范围和参数受上下游影响因素;按照所述算子规范创建算子;将所述算子放置于算子库。本申请实施例还提供了一种创建Flink作业的方法,该方法包括:接收前端模块发送的Flink作业对应的有向无环图数据结构;所述有向无环图数据结构是基于算子拓扑图得到的;所述算子拓扑图是通过在算子库中选择和所述Flink作业对应的备用算子,并根据算子规范、所述备用算子的输入类型和所述备用算子的输出类型对所述备用算子建立上下游连线关系,设置所述备用算子的配置参数值得到的;将所述有向无环图数据结构中的算子放置未处理算子队列;遍历所述未处理算子队列中的任一算子;当正在遍历的当前算子符合预设条件时,对所述当前算子进行解析,获得所述当前算子的配置参数、算子上下游关系和算子逻辑;所述当前算子为所述未处理算子队列中的任一算子;将解析完成的所述当前算子从所述未处理算子队列中取出,放置到已处理算子队列;基于所述当前算子的配置参数、算子上下游关系和算子逻辑拼装流式图;重新执行所述遍历所述未处理算子队列中的任一算子及后续步骤直至所述未处理算子队列中的算子均被解析;将所述流式图提交到Flink集群执行。可选的,所述当正在遍历的当前算子符合预设条件时,对所述当前算子进行解析,获得所述当前算子的配置参数、算子上下游关系和算子逻辑,包括:对正在遍历的当前算子进行算子资源调度;判断基于所述算子资源调度能否获得所述当前算子的输入资源;若能获得所述当前算子的输入资源,对所述当前算子进行解析,获得所述当前算子的配置参数、算子上下游关系和算子逻辑。可选的,所述方法还包括:将所述当前算子的输出资源追加到对应的输出资源队列中。本申请实施例还提供了一种创建Flink作业的装置,该装置包括:选择单元,用于从算子库中选择备用算子;所述备用算子用于所述Flink作业的编排;第一生成单元,用于按照所述算子规范、所述备用算子的输入类型和所述备用算子的输出类型对所述备用算子建立上下游连线关系,设置所述备用算子的配置参数值,生成算子拓扑图;第二生成单元,用于基于所述算子拓扑图,生成对应的有向无环图数据结构;发送单元,用于将所述有向无环图数据结构发送至后端模块,以使所述后端模块对所述有向无环图数据结构进行解析生成流式图,进而将所述流式图提交到Flink集群执行。可选的,所述装置还包括:获取单元,用于在所述从算子库中选择备用算子之前获取算子规范,所述算子规范至少包括算子的输入类型、输出类型、输入数量、输出数量、配置参数、参数取值范围和参数受上下游影响因素;创建单元,用于按照所述算子规范创建算子;放置单元,用于将所述算子放置于算子库。本申请实施例还提供了另一种创建Flink作业的装置,该装置包括:接收单元,用于接收前端模块发送的Flink作业对应的有向无环图数据结构;所述有向无环图数据结构是基于算子拓扑图得到的;所述算子拓扑图是通过在算子库中选择和所述Flink作业对应的备用算子,并根据算子规范、所述备用算子的输入类型和所述备用算子的输出类型对所述备用算子建立上下游连线关系,设置所述备用算子的配置参数值得到的;第一放置单元,用于将所述有向无环图数据结构中的算子放置未处理算子队列;遍历单元,用于遍历所述未处理算子队列中的任一算子;解析单元,用于当正在遍历的当前算子符合预设条件时,对所述当前算子进行解析,获得所述当前算子的配置参数、算子上下游关系和算子逻辑;所述当前算子为所述未处理算子队列中的任一算子;第二放置单元,用于将解析完成的所述当前算子从所述未处理算子队列中取出,放置到已处理算子队列;拼装单元,用于基于所述当前算子的配置参数、算子上下游关系和算子逻辑拼装流式图;循环单元,用于重新执行所述遍历所述未处理算子队列中的任一算子及后续步骤直至所述未处理算子队列中的算子均被解析;提交单元,用于将所述流式图提交到Flink集群执行。可选的,所述解析单元包括:资源调度子单元,用于对正在遍历的当前算子进行算子资源调度;判断子单元,用于判断基于所述算子资源调度能否获得所述当前算子的输入资源;解析子单元,用于若能获得所述当前算子的输入资源,对所述当前算子进行解析,获得所述当前算子的配置参数、算子上下游关系和算子逻辑。本申请实施例还提供了一种创建Flink作业的系统,该系统包括:前端模块和后端模块;所述前端模块包括所述的一种创建Flink作业的装置;所述后端模块包括所述的另一种创建Flink作业的装置。通过上述技术方案可知,本申请具有以下有益效果:本申请实施例提供了一种创建Flink作业的方法,该方法包括:从算子库中选择备用算子;备用算子用于Flink作业的编排。按照算子规范、备用算子的输入类型和备用算子的输出类型对备用算子建立上下游连线关系,设置备用算子的配置参数值,生成算子拓扑图。基于算子拓扑图,生成对应的有向无环图数据结构。将有向无环图数据结构发送至后端模块,以使后端模块对有向无环图数据结构进行解析生成流式图,进而将流式图提交到Flink集群执行。通过创建算子,利用备用算子对Flink作业进行编排,并利用算子规范和备用算子的输入、输出类型来建立备用算子之间的上下游连线关系,设置备用算子的配置参数值,生成Flink作业对应的算子拓扑图。基于算子拓扑图,生成Flink作业本文档来自技高网...

【技术保护点】
1.一种创建Flink作业的方法,其特征在于,所述方法包括:/n从算子库中选择备用算子;所述备用算子用于所述Flink作业的编排;/n按照所述算子规范、所述备用算子的输入类型和所述备用算子的输出类型对所述备用算子建立上下游连线关系,设置所述备用算子的配置参数值,生成算子拓扑图;/n基于所述算子拓扑图,生成对应的有向无环图数据结构;/n将所述有向无环图数据结构发送至后端模块,以使所述后端模块对所述有向无环图数据结构进行解析生成流式图,进而将所述流式图提交到Flink集群执行。/n

【技术特征摘要】
1.一种创建Flink作业的方法,其特征在于,所述方法包括:
从算子库中选择备用算子;所述备用算子用于所述Flink作业的编排;
按照所述算子规范、所述备用算子的输入类型和所述备用算子的输出类型对所述备用算子建立上下游连线关系,设置所述备用算子的配置参数值,生成算子拓扑图;
基于所述算子拓扑图,生成对应的有向无环图数据结构;
将所述有向无环图数据结构发送至后端模块,以使所述后端模块对所述有向无环图数据结构进行解析生成流式图,进而将所述流式图提交到Flink集群执行。


2.根据权利要求1所述的方法,其特征在于,在所述从算子库中选择备用算子之前,所述方法还包括:
获取算子规范,所述算子规范至少包括算子的输入类型、输出类型、输入数量、输出数量、配置参数、参数取值范围和参数受上下游影响因素;
按照所述算子规范创建算子;
将所述算子放置于算子库。


3.一种创建Flink作业的方法,其特征在于,所述方法包括:
接收前端模块发送的Flink作业对应的有向无环图数据结构;所述有向无环图数据结构是基于算子拓扑图得到的;所述算子拓扑图是通过在算子库中选择和所述Flink作业对应的备用算子,并根据算子规范、所述备用算子的输入类型和所述备用算子的输出类型对所述备用算子建立上下游连线关系,设置所述备用算子的配置参数值得到的;
将所述有向无环图数据结构中的算子放置未处理算子队列;
遍历所述未处理算子队列中的任一算子;
当正在遍历的当前算子符合预设条件时,对所述当前算子进行解析,获得所述当前算子的配置参数、算子上下游关系和算子逻辑;所述当前算子为所述未处理算子队列中的任一算子;
将解析完成的所述当前算子从所述未处理算子队列中取出,放置到已处理算子队列;
基于所述当前算子的配置参数、算子上下游关系和算子逻辑拼装流式图;
重新执行所述遍历所述未处理算子队列中的任一算子及后续步骤直至所述未处理算子队列中的算子均被解析;
将所述流式图提交到Flink集群执行。


4.根据权利要求3所述的方法,其特征在于,所述当正在遍历的当前算子符合预设条件时,对所述当前算子进行解析,获得所述当前算子的配置参数、算子上下游关系和算子逻辑,包括:
对正在遍历的当前算子进行算子资源调度;
判断基于所述算子资源调度能否获得所述当前算子的输入资源;
若能获得所述当前算子的输入资源,对所述当前算子进行解析,获得所述当前算子的配置参数、算子上下游关系和算子逻辑。


5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
将所述当前算子的输出资源追加到对应的输出资源队列中。


6.一种创建Flink作业的装置,其特征在于,所述装置包括:
选择单元,用于从算子库中选择备用算子;所述备用算子用于所述Fl...

【专利技术属性】
技术研发人员:徐圣杰
申请(专利权)人:中国农业银行股份有限公司
类型:发明
国别省市:北京;11

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

1