【技术实现步骤摘要】
一种Flink框架运行ETL的流程分解方法和装置
[0001]本专利技术涉及数据处理
,特别是涉及一种Flink框架运行ETL的流程分解方法和装置。
技术介绍
[0002]ETL是数据处理、构建数据仓库的一个重要工具软件,它完成异构数据源的抽取、清洗转换,然后加载的一个过程。传统的ETL一般是把流程发布到一个集中的ETL服务器节点上运行,所有的流程或流程内组件的运行采用多线程机制,再多的流程也只能在一个单一节点运行,并且一个大数据的处理流程,也无法提高数据处理的性能。
[0003]Flink大数据平台在大数据处理中已经取得相当广泛的应用,是一个分布式处理引擎框架,用于对无界和有界数据流进行有状态计算,具备极高的故障恢复性能和容错性能。
[0004]如果ETL流程能够提交到Flink框架运行,可以极大提高流程并发执行能力,并且可以充分利用流式处理的有状态计算来提高流程运行稳定可靠性。
[0005]由于Flink提交任务需要构建一个Source Stream
‑
>transform Stream
‑
>Stream Sink的操作,因此,现有技术中若要将ETL流程直接在Flink的Source Stream
‑
>transform Stream
‑
>Stream Sink的操作中实现,必定会涉及重新实现数据处理逻辑代码,需要破坏ETL流程的完整性。
[ ...
【技术保护点】
【技术特征摘要】
1.一种Flink框架运行ETL的流程分解方法,其特征在于,流程分解方法包括:遍历ETL的有向无环图DAG,识别出一个或者多个Splitting属性的节点;其中,所述Splitting属性节点包括数据源节点、FLINK_MESSAGE_SHARED_NODE属性的节点与需要转化为Flink算子的节点中的一个或者多个;按照ETL流程DAG有向无环图节点先后顺序,从数据源节点开始,以相邻的两个所述Splitting属性的节点作为依据,生成由相邻的两个所述Splitting属性的节点之间的一个或者多个ETL节点以及节点之间的连接线构成的ETL流程子集,在Flink算子中使用;构造所述两个相邻Splitting属性的节点之间所对应的flink API语句操作算子链;其中,在生成所述子集过程中,为每一个所述ETL流程子集分别构建TYPE_FLINK_PROCESS_SOURCE节点用于接收上一个Flink算子输出的数据集或者数据流,以及TYPE_FLINK_PROCESS_SINK节点用于将ETL流程子集转换处理后的数据发送给下一个flink算子;从而将ETL的处理过程承载到Flink框架中完成。2.根据权利要求1所述的Flink框架运行ETL的流程分解方法,其特征在于,所述的需要转化为Flink算子的节点具体包括FLINK_REDUCE_NODE属性的节点与FLINK_CONNECTOR_NODE属性的节点;搜索出ETL流程中所有的需要转化为Flink算子的节点,所述节点的上游一直到数据源节点的路由线设置为FLINK_MESSAGE_SHARED_ROUTER属性。3.根据权利要求2所述的Flink框架运行ETL的流程分解方法,其特征在于,数据源节点开始,如果节点存在至少两个分支路由线,并且有至少两个分支路由线被设置为FLINK_MESSAGE_SHARED_ROUTER属性,则所述节点为FLINK_MESSAGE_SHARED_NODE属性的节点,设置FLINK_MESSAGE_SHARED_NODE属性;其中需要转化为Flink算子的节点不设置为FLINK_MESSAGE_SHARED_NODE节点。4.根据权利要求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节点构成的子集。5.根据权利要求1所述的Flink框架运行ETL的流程分解方法,其特征在于,所述Flink算子被调用时,构造所述ETL流程子集的DAG并运行;所述相邻Splitting属性的节点之间构造一条flink API操作算子链,所述相邻Splitting属性的节点中的前一个Splitting属性的节点对应的flink算子的输出数据流或数据集作为所述flink API操作算子链的输入,所述flink API操作算子链的输入后续构造一个使用所述ETL流程子集的Flink算子。6.根据权利要求1所述的Flink框架运行ETL的流程分解方法,其特征在于,当所述相邻Splitting属性的节点中的后一个Splitting属性的节点...
【专利技术属性】
技术研发人员:高东升,梅纲,吴鑫,胡高坤,付晨玺,
申请(专利权)人:武汉达梦数据库股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。