CN113886111A - 一种基于工作流的数据分析模型计算引擎系统及运行方法 - Google Patents
一种基于工作流的数据分析模型计算引擎系统及运行方法 Download PDFInfo
- Publication number
- CN113886111A CN113886111A CN202111205487.3A CN202111205487A CN113886111A CN 113886111 A CN113886111 A CN 113886111A CN 202111205487 A CN202111205487 A CN 202111205487A CN 113886111 A CN113886111 A CN 113886111A
- Authority
- CN
- China
- Prior art keywords
- model
- task
- component
- components
- log
- 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.)
- Granted
Links
- 238000007405 data analysis Methods 0.000 title claims abstract description 52
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000012821 model calculation Methods 0.000 title claims abstract description 23
- 238000007726 management method Methods 0.000 claims abstract description 59
- 230000004931 aggregating effect Effects 0.000 claims abstract description 4
- 239000002243 precursor Substances 0.000 claims description 10
- 230000008569 process Effects 0.000 claims description 10
- 230000006870 function Effects 0.000 claims description 9
- 238000011084 recovery Methods 0.000 claims description 9
- 239000000725 suspension Substances 0.000 claims description 8
- 230000007246 mechanism Effects 0.000 claims description 7
- 238000004364 calculation method Methods 0.000 claims description 4
- 238000012544 monitoring process Methods 0.000 claims description 2
- 238000005192 partition Methods 0.000 claims description 2
- 238000010187 selection method Methods 0.000 claims description 2
- 238000012163 sequencing technique Methods 0.000 claims description 2
- 238000013024 troubleshooting Methods 0.000 claims description 2
- 238000005457 optimization Methods 0.000 claims 1
- 238000000638 solvent extraction Methods 0.000 claims 1
- 238000004458 analytical method Methods 0.000 abstract description 17
- 238000012545 processing Methods 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 7
- 238000013461 design Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000000007 visual effect Effects 0.000 description 4
- 230000007704 transition Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000005065 mining Methods 0.000 description 2
- 230000002688 persistence Effects 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3017—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is implementing multitasking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3055—Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
- G06F11/3072—Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
- G06F11/3082—Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting the data filtering being achieved by aggregating or compressing the monitored data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
- G06F40/143—Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/482—Application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/484—Precedence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/549—Remote execution
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供了一种基于工作流的数据分析模型计算引擎系统及方法,包括服务接口模块、模型加载解析模块、模型调度模块、模型运行模块和模型运行管理模块。服务接口模块:提供对外服务接口。模型加载解析模块:将模型描述文件中的模型要素转换为对象。模型调度模块:实现模型任务级和内部组件级双层调度管理,基于权重的任务调度方法,将资源、优先级、任务在队列中等待时间及任务处理数据量的大小等因素全部考虑在内。模型运行模块:支持输入类、输出类、数据分析类等多种类型组件的执行。模型运行管理模块:包括日志管理和任务状态管理,利用将日志聚合后按时间分片的方法,可大大提高日志查询效率,快速定位系统产生的BUG。
Description
技术领域
本发明涉及数据分析模型计算引擎领域,提供了一种基于工作流的数据分析模型计算引擎系统及运行方法。
背景技术
随着计算机应用领域的日益扩大和大数据时代的到来,数据挖掘与分析成为了研究热点,大量的可视化数据分析建模平台应用而生,如Pentaho、阿里DataWorks等。其中,模型计算引擎是建模平台最重要的关键技术之一,也是建模平台的核心,主要职责是执行可视化建模设计的模型,获得数据分析的结果。如何根据模型定义标准规范设计一个通用的模型计算引擎成为迫切的需求,目前现有模型计算引擎在以下方面存在限制:
第一、模型调度能力不足,无法高效地利用分布式集群的资源和计算力,导致部分计算节点长时间处于空闲,造成计算资源浪费,比如中国联通、电信的大数据平台在总部和各省份均建有大数据平台,但是工作人员做数据分析时,都只能使用自己本地大数据平台的计算资源,即使其他省份的大数据平台资源空闲,也不能使用。
第二、模型运行管理能力不足,主要体现为状态管理和日志管理两方面。一方面,对于运行状态的刻画不够充分,不能较好的表达模型的运行状态,例如京东云海分布式存储计算平台对运行状态刻画不充分,只关注数据处理的时效性。另一方面,由于大量日志的存在,如何高效查询对应模型的日志,定位问题,尤其重要。
综上,本发明提出一种基于工作流的数据分析模型计算引擎,提供了模型加载解析、模型调度、模型运行和运行管理等功能。把调度、运行等与业务无关的底层技术细节与建模过程隔离开,用户只需聚焦于具体业务的建模,提高大数据分析工作的效率。
发明内容
本发明提供了一种通用的数据分析模型计算引擎系统及运行方法,提供模型加载解析、调度、运行、运行管理等功能。计算引擎可以调度、运行、分析用户在外部系统设计的符合模型标准规范的数据分析模型。通过这种方式,把调度、运行等与业务无关的底层技术细节与模型创建者隔绝,用户只需聚焦具体业务模型的构建,提高了相关数据分析工作的效率。计算引擎主要包括服务接口、模型加载解析、模型调度、模型运行和模型运行管理等模块。
本发明的技术方案为:一种基于工作流的数据分析模型计算引擎系统,包括:
服务接口模块,用于提供对外服务接口,如RESTful形式,供客户端调用,包含任务提交接口、任务管理接口、结果查询接口、状态/日志查询接口;
模型加载解析模块,用于将基于XML的数据分析模型描述语言定义的模型加载解析并实例化,将模型描述文件中的模型要素转换为对象,包含模型元数据、建模数据资产、模型组件及其拓扑结构;
模型调度模块,用于任务调度管理,实现模型任务级和内部组件级双层调度管理;
模型运行模块,用于负责任务内部所有组件的执行,按拓扑结构依次运行组件,若组件之间没有依赖关系,采用并行模式;否则,采用串行模式,当前驱组件运行成功并更新运行结果后,再运行后继组件,获取模型的最终结果;
模型运行管理模块,用于负责模型运行期间日志管理和运行状态管理。
根据本发明的另一方面,提出一种基于工作流的数据分析模型计算引擎系统的运行方法,包括如下步骤:
步骤0、客户端通过任务提交接口,向本引擎系统提交数据分析任务和参数,提交参数中包含基于XML的数据分析模型描述语言定义的模型、客户端IP信息;
步骤1、模型加载解析,将基于XML的数据分析模型描述语言定义的模型加载解析并实例化,将模型描述文件中的模型要素转换为对象,包含模型元数据、建模数据资产、模型组件及其拓扑结构;
步骤2、模型调度,根据模型优先级、集群资源可用情况、模型在队列中等待时间等要素对队列中待运行模型进行调度;
步骤3、模型运行,按照步骤1获取的拓扑结构运行组件,若组件之间没有依赖关系,采用并行模式;否则,采用串行模式,当前驱组件运行成功并更新运行结果后,再运行后继组件,最终获取模型运行结果;
步骤4、模型运行管理,模型调度和运行时,模型运行管理模块记录运行日志、模型运行状态等信息,用于模型运行异常时快速定位错误产生原因;
步骤5、客户端通过任务管理接口,实现任务的暂停和恢复、终止、调整优先级等;
步骤6、客户端通过状态/日志查询接口对任务运行过程实时监控;
步骤7、客户端通过结果查询接口获取任务运行结果。
有益效果:
本发明通过这种方式,把调度、运行等与业务无关的底层技术细节与模型创建者隔绝,用户只需聚焦具体业务模型的构建,提高了相关数据分析工作的效率。本发明设计的一种基于XML的数据分析模型描述语言,对待分析挖掘的数据资产、数据分析挖掘算法组件以及组件之间的逻辑关系等进行形式化定义。模型计算引擎系统提供了丰富的对外服务接口,方便外部系统灵活调用。任何外部系统输出的模型描述文件只要符合本发明定义,均可在本计算引擎系统提交执行。同时,实现模型任务级和内部组件级双层调度管理,最大化利用集群资源;基于有向无环图的并行调度方法可以在最大程度上保证模型中组件并行运行,提高模型运行效率;一种将日志聚合后按时间分片的技术可以大大提高日志的查询效率,方便快捷定位模型运行中出现的问题。
附图说明
图1为本发明模型计算引擎框架;
图2为实施例模型解析流程图;
图3为实施例模型内部组件连接方式示意图;
图4为实施例存储任务的队列树形结构示意图;
图5为实施例队列选择机制示意图;
图6为实施例系统运行状态转移方式示意图;
图7为实施例聚合文件转分片文件过程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅为本发明的一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域的普通技术人员在不付出创造性劳动的前提下所获得的所有其他实施例,都属于本发明的保护范围。
根据本发明的实施例,提出一种通用的数据分析模型计算引擎系统,其架构图如图1所示。具体包括:
(1)服务接口模块
用于提供对外服务接口,如RESTful形式,供客户端调用,包含任务提交接口、任务管理接口、结果查询接口、状态/日志查询接口等。
任务提交接口:客户端通过任务提交接口向本引擎系统提交数据分析任务。提交参数中包含基于XML的数据分析模型描述语言定义的模型、客户端IP等信息。
任务管理接口:客户端通过任务管理接口实现任务的暂停和恢复、终止、调整优先级等。
1)任务暂停:模型计算引擎系统收到带有暂停参数的任务管理接口调用请求,任务在执行完当前组件后,暂停运行。
2)任务恢复:模型计算引擎系统收到带有恢复参数的任务管理接口调用请求,任务从当前暂停位置继续运行。
3)任务终止:模型计算引擎系统收到带有终止参数的任务管理接口调用请求,任务立即停止运行并清理计算资源。
4)调整任务优先级:模型计算引擎系统收到带有优先级调整参数的任务管理接口调用请求,将任务优先级调整为请求参数中更新的优先级。
结果查询接口:客户端通过结果查询接口获取任务运行结果。任务运行结果查询可通过参数配置,只返回结果URI或直接返回结果数据。
状态/日志查询接口:客户端通过状态/日志查询接口对任务运行过程实时监控。
1)状态查询:模型计算引擎系统收到状态查询接口调用请求,返回当前任务总状态(完成、运行中、失败等)及任务包含的各组件的状态。
2)日志查询:模型计算引擎系统收到日志查询接口调用请求,返回当前任务运行日志,实现任务的动态监控和错误排查。
(2)模型加载解析模块
为支持快速正确解析用户构建的数据分析模型,本发明设计了一种基于XML的数据分析模型描述语言,对待分析挖掘的数据资产、数据分析挖掘算法组件以及组件之间的逻辑关系等进行形式化定义。并提出一种加载解析模型XML描述文件并实例化的方法。具体地,加载解析模块提供模型加载、模型元数据解析、建模数据资产解析、模型组件解析、模型拓扑结构解析等能力;实例化模块提供包括输入源实例化、模型组件参数实例化等能力。
模型加载:将模型描述文件加载到模型引擎,将模型XML描述文件中的模型要素转换为对象。
模型元数据解析:对模型描述文件中标签为<MetaData>的部分进行解析,获取版权所有者、模型名称、模型创建部门、模型描述信息、模型版本信息、模型创建时间等属性信息。
建模数据资产解析:对模型描述文件中标签为<DataSourceSet>的部分进行解析,获得数据资产集合,及每个数据资产的ID、数据类型及数据资产URI等信息。
模型组件解析:对模型描述文件中标签为<Operations>的部分进行解析,获得模型组件集合,及每个组件的ID、中英文名称、参数列表等信息。
模型拓扑结构解析:根据模型描述文件中组件、资源间的前后继关系,将模型表示为资源、组件按照特定顺序连接的拓扑结构。
模型实例化:包括模型输入源实例化和模型组件参数实例化,为使得模型可以拼接不同输入源和设置不同组件参数,每个模型在被可视化页面设计完成后,都将再生成一个关于此模型的XML模板文件。此模板文件将模型中的输入源、组件参数抽象化,用形如$1、#1这样的占位符表示。其目的在于在实例化阶段,当需要拼接与原始模型不同的输入源或设置不同组件参数时,可直接利用模板文件,将占位符替换为真实的输入源或组件参数。
(3)模型调度模块
模型调度模块实现模型任务级和内部组件级双层调度管理,负责对用户提交的模型任务进行调度。
模型任务级调度:为了更加科学、全面的调度任务,避免某些任务因优先级低、占用资源大,而在队列中等待时间过长,一直无法被调度,本发明提出了一种基于权重的任务调度方法,将资源(CPU,内存)、任务优先级、任务在队列中等待时间及任务处理数据量的大小等因素考虑在内,形成如下权重计算公式,按照此公式计算出权重大小,并依次调度任务。
其中,p为用户指定任务优先级,p∈{1,2,3};b为分布式文件系统上数据块的大小,s为应用程序处理的数据量的大小;t为等待时间;c为程序所需资源,r为集群总共包含的资源;T为设定等待时间阈值,当等待时间超过该阈值,则使用公式更新权重值,其中w1,w2,w3,w4分别代表数据量、等待时间、用户指定优先级、资源使用量的权重,且满足w1+w2+w3+w4=1。
任务内部组件级调度:为了提高任务内部组件的执行效率,本发明提出一种基于DAG(有向无环图)的并行调度方法。首先,将任务表示为有向无环图G,任务内部的组件为图中的节点,组件之间的关系为图中节点与节点之间的有向边。然后,将入度为0的点优先添加到执行计划表S中,以该点为出发点,通过广度优先遍历图,将遍历到的点添加至执行计划表,依据S依次执行各组件。在执行组件时,判断该组件是否存在前驱组件,如果存在,则等待前驱组件运行成功并更新运行结果后,开始执行该组件;如不存在,则直接执行该组件。这样,可以最大程度并行调度模型中的组件,提高模型运行效率。
(4)模型运行模块
模型运行模块负责执行任务内的每一个组件,并获取模型最终结果,支持三种类型组件的运行和两种运行方式。
三种类型组件如下:
1)输入组件:支持多种数据资源的接入,包括本地文件、数据库、FTP等形式。
2)输出组件:支持对运行结果的持久化或可视化,其中持久化包括文件、数据表等方式,可视化包括图表、地图、热力图等方式。
3)数据分析组件:支持对数据进行基础分析和高级分析,其中基础分析组件包括基础处理组件、数据聚合等组件,高级分析组件包括机器学习、人工智能、图计算等组件。
两种运行方式如下:
1)组件单步运行:直接通过组件名称及参数调用,启动运行组件并返回该组件的运行结果,不需要上文所述基于XML的数据分析模型描述语言进行定义。
2)任务整体运行:根据基于XML的数据分析模型描述语言定义的模型运行。在任务运行期间,可以通过模型运行管理模块实时监测任务运行状态及任务运行中间结果。
(5)模型运行管理模块
模型运行管理模块,提供日志查询与存储功能、运行状态管理功能。通过此模块,用户可完整监测任务的生命周期、运行状态,并且可以暂停、重启、恢复任务的运行。关于日志查询功能,本发明提供了一种将日志聚合后按时间分片的技术,通过此技术,可极大提高日志查询效率,快速定位系统中出现的BUG。
根据本发明的又一实施例,提出一种基于工作流的数据分析模型计算引擎系统的运行方法,包括:
步骤0、客户端通过任务提交接口,向本引擎系统提交数据分析任务和参数,提交参数中包含基于XML的数据分析模型描述语言定义的模型、客户端IP信息;
步骤1、模型加载解析,将基于XML的数据分析模型描述语言定义的模型加载解析并实例化,将模型描述文件中的模型要素转换为对象,包含模型元数据、建模数据资产、模型组件及其拓扑结构;
步骤2、模型调度,根据模型优先级、集群资源可用情况、模型在队列中等待时间等要素对队列中待运行模型进行调度;
步骤3、模型运行,按照步骤1获取的拓扑结构运行组件,若组件之间没有依赖关系,采用并行模式;否则,采用串行模式,当前驱组件运行成功并更新运行结果后,再运行后继组件,最终获取模型运行结果;
步骤4、模型运行管理,模型调度和运行时,模型运行管理模块记录运行日志、模型运行状态等信息,用于模型运行异常时快速定位错误产生原因;
步骤5、客户端通过任务管理接口,实现任务的暂停和恢复、终止、调整优先级等;
步骤6、客户端通过状态/日志查询接口对任务运行过程实时监控;
步骤7、客户端通过结果查询接口获取任务运行结果。
所述步骤1中,模型加载解析,将基于XML的数据分析模型描述语言定义的模型加载解析并实例化,如图2所示,具体步骤如下:
步骤S0:从客户端提交的任务参数中获取XML类型的模型描述文件。
步骤S1:应用JAXB技术将XML类型的模型描述文件加载到模型计算引擎,所述模型描述文件使用自定义的元素、属性、子元素等,描述数据处理模型。例如,用户有统计表格中性别为女的人员信息这一需求,该描述文件可定义数据资源集合为表格,组件集合为普通查询组件,组件运行参数、前驱、后继等信息可通过自定义“Operator”标签进行详细描述。
模型描述文件文档结构描述如下:
<Model>:根节点,包含属性ModelID,用于唯一标识模型。
<MetaData>:元数据节点,包含属性如下:
Copyright:其值表示版权所有者。
Name:其值表示模型名称。
Department:其值表示创建模型的部门。
Description:其值表示模型的描述信息。
ModelVersion:其值表示模型的版本信息。
CreateTime:其值表示模型的创建时间。
<DataSourceSet>:数据资源集合,包含模型中组件所需的相关数据资产。包含DataSourceSetNums属性,用于表示数据资源数量。至少包含一个<DataSource>元素。
<DataSource>:数据资源,包含三个属性,分别是:
Id:唯一标识这条数据资源;
SourceType:数据资源类型,分别是IDS(模型输入数据资源)、MDS(模型中间结果数据资源)、ODS(模型输出数据资源);
SourceUri:数据资源的URI,其格式如下所示:protocol://host:port/path/fileName,其中protocol为协议类型,host为主机地址,port为端口号,path为资源路径,fileName为资源名称。此属性可用占位符表示,$1占位符标识模型第一个数据资源,$2占位符标识模型第二个数据资源,以此类推;
Ref:表示此数据资源的来源是与此值相等的ID的值数据资源;
<Operations>:表示组件的集合,属性为OperationNum,表示集合大小。至少包含一个<Operation>元素;
<Operation>:表示真实组件在模型中的的上下文关系信息,包含一个<Operator>元素,一个<InputDataSets>元素,一个<OutputDataSets>元素,其属性如下:
OperationID:组件ID,唯一标识模型中的组件;
PreOperationID:此组件的前驱组件的组件ID,若无前驱组件,则值为null;
NextOperationID:此组件的后继组件的组件ID,若无前驱组件,则值为null;
Index:此组件在模型中的序号,若为第一个执行,则为1,若为第二个执行,则为2,以此类推,若可同时运行则值相等;
OperationType:组件类型,分别是输入类组件、输出类组件、数据分析类组件;
<Operator>:表示模型中组件对应的可执行jar包,包含三个属性,分别是:OperatorID组件ID,OperatorCnName组件中文名称,OperatorEnName组件英文名称,其包含一个<ParameterList>元素;
<InputDataSets>:表示组件的输入集合,属性InputDataSetNum表示输入集合大小,包含至少一个<DataSet>元素;
<OutputDataSets>:表示组件的输出集合,属性OutputDataSetNum表示输出集合大小,包含至少一个<DataSet>元素;
<ParameterList>:表示参数列表,包含至少一个<Parameter>元素,属性为ParameterListNum表示此列表的大小;
<DataSet>:表示组件的输入,有两个属性,分别是DataSetID(输入数据集标号)、RefDataSource(对数据资源的引用,选取标签<DataSource>中ID属性的值),其中DataSet为升序排列;
<Parameter>:表示组件参数,属性为ParamKey、ParamValue;
步骤S1.1:使用JAXB所带的编译工具(BindingCompiler),将上述XML文件作为输入,产生一系列相关的JavaClass和Interface。
步骤S2:根据不同的配置,实例化模型输入源及组件参数信息。
所述步骤S2中,模型的输入源及内部组件参数信息实例化,用户根据其自身需求,在模型运行管理模块或可视化建模设计页面进行配置。实例化模块提供了相关接口,用于将用户关于输入源及组件参数的配置信息写入模型XML文件中。目的在于,使模型任务可以在真实环境和数据上运行,保证在模型运行时获取组件实际所需的参数。输入源及参数写入模型的具体步骤如下:
步骤S2.1:将用户所需的数据资产填充到<DataSource>标签的SourceUri属性上;
步骤S2.2:将组件参数以map形式填充到对应组件的<Parameter>标签上;
步骤S3:通过模型描述文件中组件的上下文关系,解析模型的拓扑结构,具体包括如下步骤:
步骤S3.1:提取上述Java对象组中描述组件上下文的相关对象;
步骤S3.2:根据上述描述组件上下文的对象,生成此模型内部组件之间的拓扑关系,即一个有向无环图;
所述步骤2中,本发明通过模型调度模块,提供一种支持模型任务和模型组件的调度方法,并支持任务的周期性运行,可以根据情况进行任务周期调整、设定任务启动时间。包括如下步骤:
步骤S0:通过查询集群资源信息、任务周期信息和任务优先级信息,生成模型间计划执行表,根据此计划表调度任务。模型间计划执行表提供一种基于队列的任务调度方法并维护一个树形结构队列,其组织方式如图4所示。首先,通过队列选择机制,完成对调度队列的选择;然后,通过任务选择机制,对选中队列上的任务,计算相关任务权重,选择权重较高的任务调度执行。具体方法如下:
1)队列选择机制
队列树形结构用于接收提交的任务,分配新的任务时,首先计算每个队列中正在运行的task数量与其队列应该分配的资源量的比值,然后选择比值最小的队列。如图5所示,队列A正在运行15个task,分配20%资源量,那么比值为15÷20%=70,队列B比值为25÷50%=50,队列C比值为25÷30%=80.33,所以选择队列B。
2)任务选择机制
本发明提出一种基于资源的任务选择方法,全面考虑资源对任务调度的影响。将程序所需集群资源(cpu、内存)、程序在队列中等待时长、处理数据量大小、用户指定优先级等4个因素考虑在内,形成以下权重公式:
其中,p为用户指定任务优先级,p∈{1,2,3};b为分布式文件系统上数据块的大小,s为应用程序处理的数据量的大小;b/s表示使用数据量越小的应用程序,权重越大;t为等待时间,其值为当前时间减去应用程序提交时间。c为程序所需资源,r为集群总共包含的资源,r/c表示所需资源越小,权重越大。T为等待时间阈值,这里取值为5分钟,其中w1,w2,w3,w4分别代表数据量、等待时间、用户指定优先级、资源使用量的权重,且满足w1+w2+w3+w4=1,这里均取值为0.25。
依据上述权重公式计算权重值,按照降序依次调度任务。
步骤S1:在调度到具体任务后,调度系统继续对模型内部组件进行调度,如加载解析模型所述,每个任务为一个DAG图,由DAG进行拓扑排序生成模型内部计划执行表。
步骤S2:依据模型内部计划执行表中的组件上下文表找到起始组件,并将起始组件发送给执行单元。组件上下文表包括:
前驱任务表,用于记录各组件的前驱组件;
后继任务表,用于记录各组件的后继组件;
输入输出表,用于记录各组件的输入输出信息。
模型组件之间的并行场景如图3所示,在调度相关组件的过程中,对执行流程做出了如下优化:
1)全程无锁,不依靠线程锁来保证顺序,创建线程量少。如后图3中第3幅图所示,C会运行在A、B执行更慢的那个单元的线程上,而不会额外创建线程。
2)模型可控,虽然内部各个组件的时间不可控,但可以控制模型整体的执行时间不超过给定阈值。通过设置timeOut字段,来控制模型的执行阈值。
3)结果回调,提供结果回调功能,虽然传统的Future、CompletableFuture在一定程度上可以完成任务编排,并可以把结果传递到下一个任务,如CompletableFuture的then方法。但是,该技术手段无法做到对每一个执行单元的结果回调,例如组件A执行完毕后,组件B开始执行,用户需要A执行完毕的结果,以便于实时监控当前任务执行状态,此时,CompletableFuture无法满足需求。此外,对于执行异常、超时等情况,亦可以在定义该执行单元时设定好默认值。
步骤S3:待执行单元返回运行结果后,根据组件上下文表将该结果更新至所述后继任务表,然后删除此上下文关系并判断所述后继组件是否可执行。若此后继节点无前驱关系,则将后继组件发送至执行单元执行,反之,则等待所述后继组件的其他前驱组件执行完毕。
步骤S4:在后继组件执行完成后,依照上述步骤S3和组件上下文表执行任务,直到所有组件执行完毕。
所述步骤3中,本发明的模型运行模块支持包括:输入类组件、输出类组件、数据分析类组件(基础类组件、高级类组件)的运行。
输入类组件具体包括:FTP、文件、数据库等;
输出类组件具体包括:统计图、表格、雷达图、关系图等;
高级类组件具体包括:机器学习类组件、深度学习类组件、图片识别组件、模型评估组件、其他服务类组件等;
基础类组件具体包括:批量对比、并集、连接、频次统计、列去重、扩展排序、普通查询、关联查询、记录去重、交集等。
模型运行模块支持两种运行方式:
1)组件单步运行:直接通过组件名称及参数调用,启动运行组件并返回该组件的运行结果,不需要上文所述基于XML的数据分析模型描述语言进行定义。
2)任务整体运行:根据基于XML的数据分析模型描述语言定义的模型运行。在任务运行期间,可以通过模型运行管理模块实时监测任务运行状态及任务运行中间结果。
所述步骤4中,本发明的模型运行管理模块,提供运行状态管理、日志管理等功能。运行状态管理中,运行状态转移如图6所示,具体转移步骤如下:
1)null----->新建态:将任务提交到系统;
2)新建态----->就绪态:系统完成了任务创建的相关操作;
3)就绪态----->运行态:调度相关资源,运行任务;
4)运行态----->就绪态:停止任务运行,删除中间结果,但不释放任务所占资源;
5)运行态----->暂停态:暂停任务,保存中间结果及其他任务上下文结果;
6)暂停态----->运行态:通过暂停时保存的任务上下文结果,恢复相关任务的运行;
7)运行态----->失败态:任务出现异常,释放任务所占资源,返回异常原因;
8)运行态----->成功态:任务完成,返回相关结果;
9)失败态----->就绪态:重新将任务提交系统。
本发明的系统的日志管理模块支持日志存储、日志查询等功能。
首先日志存储将系统不同模块、组件的日志聚合,将聚合后的日志文件,按时间进行分区,分区大小依据聚合文件大小决定。将分片后的日志按照一定结构存储在主文件和从文件中。主文件采用XML的数据结构,由分区时间片内的日志事件、以及此类事件的数量、分片开始时间、分片结束时间组成。从文件则枚举每一个日志事件、行号和日志事件的发生时间。所述主文件、从文件示例如下:
作为示例,图7展示了将聚合文件转换为多个分片的过程。如图7所示,主文件的文件名为20200128009.txt,表示2020年01月28日9时以后的分片数据,其对应的从文件为与主文件同前缀的20200128009_slave.txt文件。从下一个文件20200128010.txt,可以得知分片是的时间单位为小时。
其次,日志查询模块,支持以时间为查询条件,或以时间与日志等级、关键字、设备类型中至少一项相结合的方式为查询条件,用户可以快速找到其感兴趣时间段内的相关日志。
上述日志管理系统的优点为:
在拥有不同组件、不同日志结构的系统中,可以快速查找满足一定时间范围和条件的所有日志。
由于日志经过结构化处理,故而在查询时,可以快速统计不同类型日志数量和事件详情。
尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,且应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
Claims (13)
1.一种基于工作流的数据分析模型计算引擎系统,其特征在于,包括:
服务接口模块,用于提供对外服务接口,如RESTful形式,供客户端调用,包含任务提交接口、任务管理接口、结果查询接口、状态/日志查询接口;
模型加载解析模块,用于将基于XML的数据分析模型描述语言定义的模型加载解析并实例化,将模型描述文件中的模型要素转换为对象,包含模型元数据、建模数据资产、模型组件及其拓扑结构;
模型调度模块,用于任务调度管理,实现模型任务级和内部组件级双层调度管理;
模型运行模块,用于负责任务内部所有组件的执行,按拓扑结构依次运行组件,若组件之间没有依赖关系,采用并行模式;否则,采用串行模式,当前驱组件运行成功并更新运行结果后,再运行后继组件,获取模型的最终结果;
模型运行管理模块,用于负责模型运行期间日志管理和运行状态管理。
2.一种基于工作流的数据分析模型计算引擎系统的运行方法,其特征在于,包括:
步骤0、客户端通过任务提交接口,向本引擎系统提交数据分析任务和参数,提交参数中包含基于XML的数据分析模型描述语言定义的模型、客户端IP信息;
步骤1、模型加载解析,将基于XML的数据分析模型描述语言定义的模型加载解析并实例化,将模型描述文件中的模型要素转换为对象,包含模型元数据、建模数据资产、模型组件及其拓扑结构;
步骤2、模型调度,根据模型优先级、集群资源可用情况、模型在队列中等待时间要素对队列中待运行模型进行调度;
步骤3、模型运行,按照步骤1获取的拓扑结构运行组件,若组件之间没有依赖关系,采用并行模式;否则,采用串行模式,当前驱组件运行成功并更新运行结果后,再运行后继组件,最终获取模型运行结果;
步骤4、模型运行管理,模型调度和运行时,模型运行管理模块记录运行日志、模型运行状态等信息,用于模型运行异常时快速定位错误产生原因;
步骤5、客户端通过任务管理接口,实现任务的暂停和恢复、终止、调整优先级等;
步骤6、客户端通过状态/日志查询接口对任务运行过程实时监控;
步骤7、客户端通过结果查询接口获取任务运行结果。
3.根据权利要求2所述的一种基于工作流的数据分析模型计算引擎系统的运行方法,其特征在于,所述步骤1,模型加载解析,包括以下步骤:
步骤1-1、从步骤0客户端提交的任务参数中获取XML类型的模型描述文件;
步骤1-2、将模型描述文件加载到模型计算引擎;
步骤1-3、根据不同的配置,实例化模型输入源及组件参数信息;
步骤1-4、通过模型描述文件中组件的上下文关系,解析模型的拓扑结构,生成一个DAG有向无环图,即任务运行拓扑图。
4.根据权利要求2所述的一种基于工作流的数据分析模型计算引擎系统的运行方法,其特征在于,所述步骤2,模型调度,包括以下步骤:
步骤2-1、通过查询集群资源信息、任务周期信息和任务优先级信息,生成模型间计划执行表,根据此计划表调度任务;
步骤2-2、在调度到具体任务后,调度系统继续对模型内部组件进行调度,每个任务为一个DAG图,由DAG进行拓扑排序生成模型内部计划执行表;
步骤2-3、依据模型内部计划执行表中的组件上下文表找到起始组件,并将起始组件发送给执行单元;
步骤2-4、根据执行单元返回结果,更新模型内部计划执行表中的组件前后继记录;
步骤2-5、继续执行,直到所有组件全部执行完毕。
5.根据权利要求4所述的一种基于工作流的数据分析模型计算引擎系统的运行方法,其特征在于,所述步骤2-1生成模型间计算执行表,包括:
1)利用队列选择机制,采用树形结构接收提交的任务,计算每个队列的运行任务数与队列分配的资源量的比值,选取比值最小的作为任务入队队列;
2)利用任务选择机制,采用基于资源的任务选择方法,自定义权重公式,综合考虑集群资源、程序在队列中等待时长、处理数据量大小、用户指定优先级大小4个因素的影响。
6.根据权利要求4所述的一种基于工作流的数据分析模型计算引擎系统的运行方法,其特征在于,所述步骤2-3中模型组件上下文表,包括前驱任务表,用于记录各组件的前驱组件;后继任务表,用于记录各组件的后继组件;输入输出表,用于记录各组件的输入输出信息。
7.根据权利要求4所述的一种基于工作流的数据分析模型计算引擎系统的运行方法,其特征在于,还包括模型内部执行流程优化:
1)获取模型对应的拓扑结构;
2)判断模型是否存在前驱组件,如不存在,则直接运行该组件;如存在,则等待前驱组件运行结束并更新组件运行结果后,再运行后继组件,由此保证模型中组件可以最大程度上并行运行,提高模型执行效率。
8.根据权利要求2所述的一种基于工作流的数据分析模型计算引擎系统的运行方法,其特征在于,所述模型运行时,支持输入类组件、输出类组件、数据分析类组件的运行。
9.根据权利要求2所述的一种基于工作流的数据分析模型计算引擎系统的运行方法,其特征在于,所述步骤3,模型运行支持两种运行方式:组件单步运行和任务整体运行。
1)组件单步运行:直接通过组件名称及参数调用;
2)任务整体运行:根据XML模型描述文件运行模型。
10.根据权利要求2所述的一种基于工作流的数据分析模型计算引擎系统的运行方法,其特征在于,所述步骤4,模型运行管理,支持运行状态管理和日志管理功能;日志管理功能支持日志存储和日志查询功能;具体包括:
1)日志存储:将系统不同模块、组件的日志聚合,将聚合后的日志文件,按时间进行分区,分区大小依据聚合文件大小决定;
2)日志查询:通过以时间或以时间与日志等级、关键字、设备类型中至少一项相结合的方式为查询条件,用户可以快速的定位到其感兴趣时间段的相关日志信息。
11.根据权利要求2所述的一种基于工作流的数据分析模型计算引擎系统的运行方法,其特征在于,所述步骤5,客户端通过任务管理接口,实现任务的暂停和恢复、终止、调整优先级,具体如下:
1)任务暂停:模型计算引擎系统收到带有暂停参数的任务管理接口调用请求,任务在执行完当前组件后,暂停运行;
2)任务恢复:模型计算引擎系统收到带有恢复参数的任务管理接口调用请求,任务从当前暂停位置继续运行;
3)任务终止:模型计算引擎系统收到带有终止参数的任务管理接口调用请求,任务立即停止运行并清理计算资源;
4)调整任务优先级:模型计算引擎系统收到带有优先级调整参数的任务管理接口调用请求,将任务优先级调整为请求参数中更新的优先级。
12.根据权利要求2所述的一种基于工作流的数据分析模型计算引擎系统的运行方法,其特征在于,所述步骤6,客户端通过状态/日志查询接口对任务运行过程实时监控,具体包括:
1)状态查询:模型计算引擎系统收到状态查询接口调用请求,返回当前任务总状态及任务包含的各组件的状态;所述任务总状态包括完成、运行中、失败;
2)日志查询:模型计算引擎系统收到日志查询接口调用请求,返回当前任务运行日志,实现任务的动态监控和错误排查。
13.根据权利要求2所述的一种基于工作流的数据分析模型计算引擎系统的运行方法,其特征在于,所述步骤7,客户端通过结果查询接口获取任务运行结果,任务运行结果查询通过参数配置,只返回结果URI或直接返回结果数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111205487.3A CN113886111B (zh) | 2021-10-15 | 2021-10-15 | 一种基于工作流的数据分析模型计算引擎系统及运行方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111205487.3A CN113886111B (zh) | 2021-10-15 | 2021-10-15 | 一种基于工作流的数据分析模型计算引擎系统及运行方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113886111A true CN113886111A (zh) | 2022-01-04 |
CN113886111B CN113886111B (zh) | 2024-06-25 |
Family
ID=79003134
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111205487.3A Active CN113886111B (zh) | 2021-10-15 | 2021-10-15 | 一种基于工作流的数据分析模型计算引擎系统及运行方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113886111B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114595580A (zh) * | 2022-03-09 | 2022-06-07 | 北京航空航天大学 | 一种满足大型柔性叶片优化设计的复杂工作流引擎方法 |
CN115562676A (zh) * | 2022-10-11 | 2023-01-03 | 中国兵器工业计算机应用技术研究所 | 一种图计算引擎的触发方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100153963A1 (en) * | 2008-12-12 | 2010-06-17 | Subbarao Kakarlamudi | Workload management in a parallel database system |
CN103065221A (zh) * | 2012-12-27 | 2013-04-24 | 北京仿真中心 | 基于bpel的多学科协同优化流程建模与调度的方法和系统 |
CN112905317A (zh) * | 2021-02-04 | 2021-06-04 | 西安电子科技大学 | 快速可重构信号处理异构平台下任务调度方法和系统 |
KR20210090443A (ko) * | 2020-01-10 | 2021-07-20 | 주식회사 아펙스에이아이 | 그래프 모델 기반의 로그 분석을 활용한 배치 스케줄러 시스템 |
-
2021
- 2021-10-15 CN CN202111205487.3A patent/CN113886111B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100153963A1 (en) * | 2008-12-12 | 2010-06-17 | Subbarao Kakarlamudi | Workload management in a parallel database system |
CN103065221A (zh) * | 2012-12-27 | 2013-04-24 | 北京仿真中心 | 基于bpel的多学科协同优化流程建模与调度的方法和系统 |
KR20210090443A (ko) * | 2020-01-10 | 2021-07-20 | 주식회사 아펙스에이아이 | 그래프 모델 기반의 로그 분석을 활용한 배치 스케줄러 시스템 |
CN112905317A (zh) * | 2021-02-04 | 2021-06-04 | 西安电子科技大学 | 快速可重构信号处理异构平台下任务调度方法和系统 |
Non-Patent Citations (1)
Title |
---|
赵双;刘璐;陶敬;马小博;: "Ring 0级程序行为分析系统的设计与实现", 计算机工程, no. 01, 5 January 2011 (2011-01-05) * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114595580A (zh) * | 2022-03-09 | 2022-06-07 | 北京航空航天大学 | 一种满足大型柔性叶片优化设计的复杂工作流引擎方法 |
CN114595580B (zh) * | 2022-03-09 | 2024-05-28 | 北京航空航天大学 | 一种满足大型柔性叶片优化设计的复杂工作流引擎方法 |
CN115562676A (zh) * | 2022-10-11 | 2023-01-03 | 中国兵器工业计算机应用技术研究所 | 一种图计算引擎的触发方法 |
CN115562676B (zh) * | 2022-10-11 | 2023-06-06 | 中国兵器工业计算机应用技术研究所 | 一种图计算引擎的触发方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113886111B (zh) | 2024-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020108303A1 (zh) | 一种基于异构计算的任务处理方法及软硬件框架系统 | |
US11481616B2 (en) | Framework for providing recommendations for migration of a database to a cloud computing system | |
US9639575B2 (en) | Method and system for processing data queries | |
CN110245023B (zh) | 分布式调度方法及装置、电子设备以及计算机存储介质 | |
CN108920153B (zh) | 一种基于负载预测的Docker容器动态调度方法 | |
CN112905595A (zh) | 一种数据查询方法、装置及计算机可读存储介质 | |
CN110908641B (zh) | 基于可视化的流计算平台、方法、设备和存储介质 | |
CN104050042B (zh) | Etl作业的资源分配方法及装置 | |
US20170116309A1 (en) | System and method for automatic dependency analysis for use with a multidimensional database | |
CN111125444A (zh) | 大数据任务调度管理方法、装置、设备及存储介质 | |
JP2017515180A (ja) | ビッグ・データ・リポジトリにおけるデータ・セットの処理 | |
CN106354729B (zh) | 一种图数据处理方法、装置和系统 | |
CN113886111B (zh) | 一种基于工作流的数据分析模型计算引擎系统及运行方法 | |
CN115373835A (zh) | Flink集群的任务资源调整方法、装置及电子设备 | |
US12014216B2 (en) | Method for platform-based scheduling of job flow | |
CN110825526B (zh) | 基于er关系的分布式调度方法及装置、设备以及存储介质 | |
CN114237892A (zh) | 键值数据的处理方法、装置、电子设备及存储介质 | |
CN113010296B (zh) | 基于形式化模型的任务解析与资源分配方法及系统 | |
Zhu et al. | Phoebe: a learning-based checkpoint optimizer | |
CN110515716B (zh) | 一种支持优先级和反亲和的云优化调度方法及系统 | |
CN117215738A (zh) | 一种基于分布式系统的数据密集型计算成像优化系统 | |
CN113378007A (zh) | 数据回溯方法及装置、计算机可读存储介质、电子设备 | |
CN115857918A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
JP2015095096A (ja) | MapReduceジョブ実行システム、MapReduceジョブ実行方法 | |
CN113722141A (zh) | 数据任务的延迟原因确定方法、装置、电子设备及介质 |
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 | ||
GR01 | Patent grant |