基于flink框架的ETL流程组件多个不同输出的处理方法与装置与流程

文档序号:29792783发布日期:2022-04-23 18:04阅读:来源:国知局

技术特征:
1.基于flink框架的etl流程组件多个不同输出的处理方法,其特征在于,流程方法包括:遍历etl的有向无环图dag,识别出一个或者多个splitting属性的节点;其中,所述splitting属性节点包括数据源节点、flink_message_shared_node属性的节点与需要转化为flink算子的节点中的一个或者多个;当etl流程中存在输出节点为flink_message_shared_node属性的节点时,则所述输出节点与所述输出节点上游的splitting属性的节点之间的一个或者多个etl节点以及节点之间的连接线构成etl流程子集;所述输出节点的两个或者两个以上数量的分支的输出的下游组件分别构造对应的两个或者两个以上数目的etl流程子集;当etl流程中存在输出节点为非splitting属性的节点时,所述输出节点上游的splitting属性的节点与所述输出节点下游的splitting属性的节点之间的一个或者多个etl节点以及节点之间的连接线构成etl流程子集;所有所述etl流程子集构造对应的flink api语句并进行运行处理。2.根据权利要求1所述的基于flink框架的etl流程组件多个不同输出的处理方法,其特征在于,当etl流程中存在输出节点为flink_message_shared_node属性的节点时,则设置所述输出节点属性flink_splitting_node为true;当etl流程中存在输出节点为非splitting属性的节点时,则设置所述输出节点属性flink_splitting_node为false。3.根据权利要求2所述的基于flink框架的etl流程组件多个不同输出的处理方法,其特征在于,当所述输出节点属性flink_splitting_node为true时,所述输出节点上游的splitting属性的节点与所述输出节点之间一个或者多个etl节点并且包括所述输出节点自身以及节点之间的连接线构造etl流程子集,所述输出节点的各个输出以及输出的下游组件截止到splitting属性的节点之间所有的节点以及节点之间的连接线构成一个etl流程子集;所有所述etl流程子集均在flinkapi算子processfunction中运行;其中所述输出节点对应的etl流程子集的flink算子的输出为所述输出线对应的下游的etl流程子集的flink算子的输入;当输出节点属性flink_splitting_node为false时,所述输出节点上游的splitting属性的节点与所述输出节点下游组件的splitting属性的节点之间所有的节点以及节点之间的连接线构成一个etl流程子集,在flinkapi算子processfunction中运行。4.根据权利要求2所述的基于flink框架的etl流程组件多个不同输出的处理方法,其特征在于,节点属性flink_splitting_node为true时,所述节点根据不同的输出配置,对输入的数据进行处理并标记发送给下游算子,所述下游算子将带标记的数据还原为节点处理后的数据,将数据发送给对应的输出线并传递给下游节点。5.根据权利要求2所述的基于flink框架的etl流程组件多个不同输出的处理方法,其特征在于,节点属性flink_splitting_node为false时,所述节点对输入数据进行处理,并且根据输出线的数据类型配置,直接将数据发送到各自对应的下游节点的输出线上。6.根据权利要求1所述的基于flink框架的etl流程组件多个不同输出的处理方法,其特征在于,所述的需要转化为flink算子的节点具体包括flink_reduce_node属性的节点与flink_connector_node属性的节点;
搜索出etl流程中所有的需要转化为flink算子的节点,所述节点的上游一直到数据源节点的路由线设置为flink_message_shared_router属性。7.根据权利要求6所述的基于flink框架的etl流程组件多个不同输出的处理方法,其特征在于,数据源节点开始,如果节点存在至少两个分支路由线,并且有至少两个分支路由线被设置为flink_message_shared_router属性,则所述节点为flink_message_shared_node属性的节点,设置flink_message_shared_node属性;其中需要转化为flink算子的节点不设置为flink_message_shared_node节点。8.根据权利要求1所述的基于flink框架的etl流程组件多个不同输出的处理方法,其特征在于,遍历etl的有向无环图dag,识别出数据源节点、flink_reduce_node属性的节点与flink_connector_node属性的节点,并根据所述flink_reduce_node属性的节点与flink_connector_node属性的节点识别出所有flink_message_shared_node属性的节点,将所述数据源节点、flink_reduce_node属性的节点、flink_connector_node属性的节点与flink_message_shared_node属性的节点设置为splitting属性的节点;以相邻的两个所述splitting属性的节点作为依据,生成由相邻的两个所述splitting属性的节点之间的一个或者多个etl节点构成的子集。9.根据权利要求1所述的基于flink框架的etl流程组件多个不同输出的处理方法,其特征在于,所述flink算子被调用时,构造所述etl流程子集的dag并运行;所述相邻splitting属性的节点之间构造一条flink api操作算子链,所述相邻splitting属性的节点中的前一个splitting属性的节点对应的flink算子的输出数据流或数据集作为所述flink api操作算子链的输入,所述flink api操作算子链的输入后续构造一个使用所述etl流程子集的flink算子。10.基于flink框架的etl流程组件多个不同输出的处理装置,其特征在于,基于flink框架的etl流程组件多个不同输出的处理装置包括至少一个处理器,以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述处理器执行,用于执行权利要求1-9任一所述的基于flink框架的etl流程组件多个不同输出的处理方法。

技术总结
本发明涉及数据处理技术领域,本发明提供基于flink框架的ETL流程组件多个不同输出的处理方法与装置,将ETL流程组件经过拆分重组,然后翻译转换成Flink的操作算子,在Flink操作算子方法中运行重组的ETL子流程,避免重复编写Flink算子中数据处理逻辑代码,避免重复实现数据拆分的逻辑代码;根据组件在流程中的特点,尽量在一个操作算子ProcessFunction运行重组后的组件集合,避免数据在多个操作算子拆分流转,从而减少线程切换、减少延迟并提高吞吐能力。吐能力。吐能力。


技术研发人员:高东升 梅纲 吴鑫 胡高坤 付晨玺
受保护的技术使用者:武汉达梦数据库股份有限公司
技术研发日:2021.12.29
技术公布日:2022/4/22
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1