CN107315834A - 一种基于广度优先搜索算法的etl作业流程分析方法 - Google Patents
一种基于广度优先搜索算法的etl作业流程分析方法 Download PDFInfo
- Publication number
- CN107315834A CN107315834A CN201710566339.1A CN201710566339A CN107315834A CN 107315834 A CN107315834 A CN 107315834A CN 201710566339 A CN201710566339 A CN 201710566339A CN 107315834 A CN107315834 A CN 107315834A
- Authority
- CN
- China
- Prior art keywords
- node
- etl
- breadth
- search
- work flow
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Abstract
一种基于广度优先搜索算法的ETL作业流程分析方法,采用广度优先搜索算法对ETL作业流程图进行解析,根据各节点的依赖关系,计算各节点所处的层数,并将各作业节点按层数进行分层;ETL作业流程引擎按照由低层到高层的执行路径依次运行各层的ETL作业,最终完成ETL作业流程图中所有ETL作业的执行。
Description
技术领域
本申请一般涉及ETL作业流程分析方法,特别地,本申请涉及一种基于广度优先搜索算法的ETL作业流程分析方法。
背景技术
大数据的爆发性增长,给大数据应用带来了挑战和新的机遇。大数据应用离不开海量数据加工,在有限的时间窗口内,将数据来源多、数据量大、数据到达时点不一、数据之间存在加工逻辑关系的数据加工到目标应用库,是一个巨大的挑战。
在大数据加工过程中,为了满足复杂、灵活多变的ETL作业流程,我们借助ETL工具软件或开发专门的ETL调度软件,来定义ETL作业流程,并解析ETL作业流程、调度和执行各ETL作业。通常情况下,ETL工具软件或者ETL调度软件具有ETL作业流程引擎,该引擎构建的方法使用传统方法,包含两部分内容:1、流程模型,满足复杂、灵活多变的流程定制,用来定义有多个ETL作业节点的ETL作业流程,或者一个ETL作业内部的数据加工流程;流程模型保存整个流程的属性,包括节点、节点类型(开始节点、ETL作业节点、分支节点、聚合节点、结束节点等)、流向、节点之间的依赖关系等,以模型化、参数化来体现数据加工逻辑和数据处理流程。2、调度和执行功能模块,根据流程模型解析ETL作业流程,运用状态机原理来调度和执行流程节点上的作业,并根据节点之间的依赖关系和节点状态来流转并决定下一个节点的运行。
图1是基于传统方法的ETL流程引擎示意图。左边是ETL作业流程定义图;中间是基于传统方法的ETL作业流程引擎,该引擎通过流程模型定义作业流程,通过运用“状态机”原理的作业调度模块进行ETL作业流程图的解析、作业的调度和执行;右图是ETL作业流程执行示意图,0、1、2、3、4、5、6为作业节点执行的顺序号,同一个顺序号的作业节点表示可以并行运行。
传统方法需要规范且完善的流程模型,以满足复杂、灵活多变的流程定制;需要强大的“状态机”对节点依赖关系和节点状态做出准确的判断,以调度和执行流程节点上的作业和进行流程的流转。基于传统方法的ETL作业流程引擎是一个庞大且复杂的系统,系统响应速度低、开发工作量大、维护成本高。
发明内容
本发明是为了克服传统方法的技术缺陷,一种基于广度优先搜索算法的ETL作业流程分析方法,以探索广度优先遍历算法在ETL作业流程图解析过程中的运用。广度优先搜索算法是最简单的图形搜索算法之一,也是很多重要的图形算法的原型;本方法原理简明、容易实现,适用于各种有向无环图的ETL作业流程,通用性、易用性和可维护性方面较传统方法优胜。
一种基于广度优先搜索算法的ETL作业流程分析方法,采用广度优先搜索算法对ETL作业流程图进行解析,根据各节点的依赖关系,计算各节点所处的层数,并将各作业节点按层数进行分层;ETL作业流程引擎按照由低层到高层的执行路径依次运行各层的ETL作业,最终完成ETL作业流程图中所有ETL作业的执行。
本发明适合各行业在ETL作业流程引擎中引用。基于流程模型和状态机原理等传统方法的ETL作业流程引擎是一个庞大且复杂的系统,系统响应速度低、开发工作量大、维护成本高。本发明是为了克服传统方法的技术缺陷,使用的广度优先搜索算法是最简单的图形搜索算法之一,也是很多重要的图形算法的原型;本方法原理简明、容易实现,适用于各种有向无环图的ETL作业流程,通用性、易用性和可维护性方面较传统方法优胜。
附图说明
图1为基于传统方法的ETL作业流程引擎示意图。
图2为基于广度优先搜索算法的ETL作业流程引擎示意图。
图3为ETL作业流程示意图。
图4为ETL作业流程图节点层数计算示意图。
图5为ETL作业流程图节点分层示意图。
图6为ETL作业流程图分层执行示意图。
具体实施方式
一种基于广度优先搜索算法的ETL作业流程分析方法,采用广度优先搜索算法对ETL作业流程图进行解析,根据各节点的依赖关系,计算各节点所处的层数,并将各作业节点按层数进行分层;ETL作业流程引擎按照由低层到高层的执行路径依次运行各层的ETL作业,最终完成ETL作业流程图中所有ETL作业的执行。
无环的有向图称为有向无环图,简称DAG(Directed Acyclic Graph)图,DAG图是一种较有向树更一般的特殊有向图,是一种广泛应用的模型,也适用于有依赖关系和先后执行次序的ETL作业流程图。
广度优先搜索算法(Breadth First Search,BFS)的基本原理是从根节点开始,沿着树的宽度遍历树的节点。如果所有节点均被访问,则算法中止。展开来说,就是从有向无环图中某根节点v出发,在访问了v之后,依次访问v的各个未曾访问过的直接子节点,然后分别从这些子节点出发,依次访问它们的直接子节点,并使得“先被访问的节点的子节点”先于“后被访问的节点的子节点”被访问,直至图中所有已被访问的节点的直接子节点都被访问到为止。如果图中尚有节点未被访问,则需要另选一个未曾被访问的根节点作为新的起始点,重复上述过程,直至图中所有节点都被访问到为止。
针对本发明的广度优先搜索算法,我们使用了一个队列(Queue)来存放未被标记的节点。先将根节点v放入队列(标记为Open),然后从队列中取出第一个节点(标记为Closed);再将与v相邻的所有未被标记的直接子节点加入队列(标记为Open),然后从队列中取出第一个节点(标记为Closed)。重复上述步骤,直至队列为空为止。
一个ETL作业流程,譬如“源数据增量抽取、数据质量检查、数据清理和转换、增量数据到全量数据的整合、结果数据的输出”等一系列加工过程,就是依据各作业之间的先后加工逻辑关系,构造为一个有向无环图。该DAG图由一组节点和一组有方向的边构成,每个节点代表一个ETL作业或者是一个作业中的一步,每一条边代表从一个节点到另一个节点的数据流。
本发明的核心是使用广度优先搜索算法遍历整个ETL作业工作流定义的有向无环图,根据ETL作业节点的依赖关系,对ETL作业节点进行分层,并对每个ETL作业节点进行拓扑排序。同一层中的ETL作业节点可以并行执行,也可以根据拓扑排序的结果串行执行。
针对ETL作业流程图,基于广度优先搜索算法的分析方法可以分成三个步骤:
一、分析计算
根节点的层设置成1,从根节点(A,B)出发,每经过一个节点层数加1,遍历所有路径,保留每个节点的最大层数。如节点F,在路径AFG层数为2,路径ACFG层数为3,路径BEDFG层数为4,则F最大层数为4。根据这个原则计算所有节点的最大层数。
广度优先搜索算法对ETL作业流程图的遍历过程:
第1步:访问根节点A;
第2步:访问根节点B;
第3步:访问A的直接子节点,依次访问C、D;
第4步:访问B的直接子节点,依次访问E;
第5步:在第3步访问完C、D之后,再依次访问它们的直接子节点F;
第6步:在第4步访问完E之后,再依次访问它的直接子节点D;
第7步:在第5步访问完F之后,再依次访问它的邻接点G;
第8步:在第6步访问完D之后,再依次访问它的邻接点F;
第9步:在第8步访问完F之后,再依次访问它的邻接点G。
二、分层
根据各节点的最大层数,将层数相同的节点划到同一层。
三、分层执行
根据分层,高层依赖低层,而相同层级的节点相互独立。ETL作业流程引擎按照由低层到高层的执行路径依次运行各层的ETL作业,并根据具体的运行环境来决定同一层中的ETL作业节点是并行执行还是根据拓扑排序的结果串行执行。
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (6)
1.一种基于广度优先搜索算法的ETL作业流程分析方法,其特征在于:依据各作业之间的先后加工逻辑关系,构造一个有向无环图,该有向无环图由一组节点和一组有方向的边构成,每个节点代表一个ETL作业或者是一个作业中的一步,每一条边代表从一个节点到另一个节点的数据流,使用广度优先搜索算法遍历整个ETL作业工作流定义的有向无环图,根据ETL作业节点的依赖关系,对每个ETL作业节点进行拓扑排序,并对ETL作业节点进行分层,然后根据具体的运行环境来决定同一层中的ETL作业节点是并行执行还是根据拓扑排序的结果串行执行。
2.根据权利要求1所述的基于广度优先搜索算法的ETL作业流程分析方法,其特征在于:基于广度优先搜索算法的分析方法分成三个步骤:
(1)分析计算;
(2)分层;
(3)分层执行。
3.根据权利要求2所述的基于广度优先搜索算法的ETL作业流程分析方法,其特征在于:步骤(1)中的分析计算是将根节点的层设置成1,从根节点出发,每经过一个节点层数加1,遍历所有路径,保留每个节点的最大层数。
4.根据权利要求3所述的基于广度优先搜索算法的ETL作业流程分析方法,其特征在于:步骤(2)中的分层是根据各节点的最大层数,将层数相同的节点划到同一层。
5.根据权利要求4所述的基于广度优先搜索算法的ETL作业流程分析方法,其特征在于:步骤(3)中的分层执行是指:根据分层,ETL作业流程引擎按照由低层到高层的执行路径依次运行各层的ETL作业节点,并根据具体的运行环境来决定同一层级的ETL作业节点是并行还是根据拓扑排序的结果串行执行。
6.根据权利要求1所述的基于广度优先搜索算法的ETL作业流程分析方法,其特征在于:广度优先搜索算法是从根节点开始,沿着树的宽度遍历树的节点,如果所有节点均被访问,则算法中止; 使用一个队列来存放未被访问的节点,先将根节点放入队列,后从队列中取出第一个节点一并将该节点一移出对列,再将与该节点相邻的所有未被访问的直接子节点加入队列,然后从队列中取出第一个节点二并将该节点二移出队列,重复以上步骤,直至队列为空为止。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710566339.1A CN107315834A (zh) | 2017-07-12 | 2017-07-12 | 一种基于广度优先搜索算法的etl作业流程分析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710566339.1A CN107315834A (zh) | 2017-07-12 | 2017-07-12 | 一种基于广度优先搜索算法的etl作业流程分析方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107315834A true CN107315834A (zh) | 2017-11-03 |
Family
ID=60179322
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710566339.1A Pending CN107315834A (zh) | 2017-07-12 | 2017-07-12 | 一种基于广度优先搜索算法的etl作业流程分析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107315834A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108304538A (zh) * | 2018-01-30 | 2018-07-20 | 广东奡风科技股份有限公司 | 一种完全基于分布式内存计算的etl系统及其方法 |
CN109684229A (zh) * | 2019-01-08 | 2019-04-26 | 杭州雅拓信息技术有限公司 | 有向无环图的链式依赖分析方法及系统 |
CN110995688A (zh) * | 2019-11-27 | 2020-04-10 | 王培根 | 一种用于互联网金融平台的个人数据共享方法、装置及终端设备 |
CN112540753A (zh) * | 2020-12-23 | 2021-03-23 | 航天科工智慧产业发展有限公司 | 一种案件特征解析方法 |
WO2023202005A1 (en) * | 2022-04-19 | 2023-10-26 | Zhejiang Dahua Technology Co., Ltd. | Methods and systems for performing data processing tasks |
US12050616B2 (en) | 2019-12-03 | 2024-07-30 | Koninklijke Philips N.V. | System and method for extract, transform, and load (ETL) pipeline processing |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106330559A (zh) * | 2016-08-29 | 2017-01-11 | 安徽奥里奥克科技股份有限公司 | 基于MapReduce的复杂网络拓扑特征参数计算方法和系统 |
CN106339252A (zh) * | 2015-07-08 | 2017-01-18 | 阿里巴巴集团控股有限公司 | 分布式dag系统的自适应优化方法和装置 |
CN106649391A (zh) * | 2015-11-03 | 2017-05-10 | 华为技术有限公司 | 处理图数据的方法和装置 |
-
2017
- 2017-07-12 CN CN201710566339.1A patent/CN107315834A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106339252A (zh) * | 2015-07-08 | 2017-01-18 | 阿里巴巴集团控股有限公司 | 分布式dag系统的自适应优化方法和装置 |
CN106649391A (zh) * | 2015-11-03 | 2017-05-10 | 华为技术有限公司 | 处理图数据的方法和装置 |
CN106330559A (zh) * | 2016-08-29 | 2017-01-11 | 安徽奥里奥克科技股份有限公司 | 基于MapReduce的复杂网络拓扑特征参数计算方法和系统 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108304538A (zh) * | 2018-01-30 | 2018-07-20 | 广东奡风科技股份有限公司 | 一种完全基于分布式内存计算的etl系统及其方法 |
CN109684229A (zh) * | 2019-01-08 | 2019-04-26 | 杭州雅拓信息技术有限公司 | 有向无环图的链式依赖分析方法及系统 |
CN110995688A (zh) * | 2019-11-27 | 2020-04-10 | 王培根 | 一种用于互联网金融平台的个人数据共享方法、装置及终端设备 |
CN110995688B (zh) * | 2019-11-27 | 2021-11-16 | 深圳申朴信息技术有限公司 | 一种用于互联网金融平台的个人数据共享方法、装置及终端设备 |
US12050616B2 (en) | 2019-12-03 | 2024-07-30 | Koninklijke Philips N.V. | System and method for extract, transform, and load (ETL) pipeline processing |
CN112540753A (zh) * | 2020-12-23 | 2021-03-23 | 航天科工智慧产业发展有限公司 | 一种案件特征解析方法 |
WO2023202005A1 (en) * | 2022-04-19 | 2023-10-26 | Zhejiang Dahua Technology Co., Ltd. | Methods and systems for performing data processing tasks |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107315834A (zh) | 一种基于广度优先搜索算法的etl作业流程分析方法 | |
Bodlaender | A partial k-arboretum of graphs with bounded treewidth | |
Józefowska | Just-in-time scheduling: models and algorithms for computer and manufacturing systems | |
Nie et al. | A GEP-based reactive scheduling policies constructing approach for dynamic flexible job shop scheduling problem with job release dates | |
Chabini et al. | Adaptations of the A* algorithm for the computation of fastest paths in deterministic discrete-time dynamic networks | |
Corberáan et al. | A cutting plane algorithm for the general routing problem | |
CN106503333B (zh) | 一种三维片上网络测试规划方法 | |
CN106168797B (zh) | 一种模块化获取核电站故障树顶事项失效概率的方法 | |
Reeja et al. | Dispatching rules for scheduling in assembly jobshops-Part 1 | |
CN114492770B (zh) | 一种面向循环脉冲神经网络的类脑计算芯片映射方法 | |
CN106649391A (zh) | 处理图数据的方法和装置 | |
Greenlaw et al. | A compendium of problems complete for P | |
CN111814981B (zh) | 一种分布式实时规则推理调度方法 | |
Bahalkeh et al. | Efficient system matrix calculation for manufacturing systems | |
CN109063089A (zh) | 一种基于社区结构的子图匹配方法及装置 | |
Milis et al. | A Lagrangian relaxation algorithm for sparse quadratic assignment problems | |
CN107133281A (zh) | 一种基于分组的全局多查询优化方法 | |
Rathi et al. | Applications of depth first search: a survey | |
Grislain et al. | Graphical methods for production control | |
Aso-Mollar et al. | Meta-operators for Enabling Parallel Planning Using Deep Reinforcement Learning | |
Glover et al. | The simplex SON algorithm for LP/embedded network problems | |
Welz | Robot tour planning with high determination costs | |
Tunon et al. | Design and use of the CPAN branch and bound for the solution of the travelling salesman problem (TSP) | |
CN111159523B (zh) | 一种基于Spark的并行蚁群优化社区发现方法 | |
Papamanthou | Depth first search & directed acyclic graphs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20171103 |
|
RJ01 | Rejection of invention patent application after publication |