CN117056068B - ETL中JobEngine任务拆分方法 - Google Patents

ETL中JobEngine任务拆分方法 Download PDF

Info

Publication number
CN117056068B
CN117056068B CN202310988169.1A CN202310988169A CN117056068B CN 117056068 B CN117056068 B CN 117056068B CN 202310988169 A CN202310988169 A CN 202310988169A CN 117056068 B CN117056068 B CN 117056068B
Authority
CN
China
Prior art keywords
graph
etl
task
sub
task execution
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.)
Active
Application number
CN202310988169.1A
Other languages
English (en)
Other versions
CN117056068A (zh
Inventor
吴宝琪
戴舒原
张进
张怡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Guanyuan Data Co ltd
Original Assignee
Hangzhou Guanyuan Data Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Guanyuan Data Co ltd filed Critical Hangzhou Guanyuan Data Co ltd
Priority to CN202310988169.1A priority Critical patent/CN117056068B/zh
Publication of CN117056068A publication Critical patent/CN117056068A/zh
Application granted granted Critical
Publication of CN117056068B publication Critical patent/CN117056068B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/254Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5017Task decomposition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本申请涉及一种ETL中JobEngine任务拆分方法,在ETL算子图出口做一个拆分,复杂的图将被拆分成两个简单的子图,以达到临时缓存的效果,减小后续原始拓扑图中每个输出节点的计算压力,带来显著的性能提升。同时保证先处理临时输出节点,再处理临时输入节点的优先级处理顺序,让第二子图中的临时输入节点能够对临时输出节点的计算结果进行获知,了解第一子图已经处理了哪些ETL算子,能够让后续第二子图中的输出节点避免重复计算算子,避免因重复计算带来的性能消耗和成本。

Description

ETL中JobEngine任务拆分方法
技术领域
本公开涉及数据转换技术领域,尤其涉及一种ETL中JobEngine任务拆分方法、系统和电子设备。
背景技术
ETL,是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。
如附图1所示的ETL任务执行示意图,主要是指在ETL模块的JobEngine任务工厂中进行任务执行,但是主要还是需要依赖任务管理模块的任务管理。ETL任务的真正执行需要依托于ETL_COMBINED任务的提交、执行和完成,ETL_COMBINED任务又可以被拆解为多个ETL_OUTPUT任务(至少有一个)。
如附图2所示的ETL_COMBINED任务执行拓扑图,ETL_OUTPUT任务1、ETL_OUTPUT任务2和ETL_OUTPUT任务3,他们之间可以认为是父子任务的关系,每个ETL_OUTPUT任务都是在运行一个由一个ETL输出算子构建的运行脚本。在具体任务执行时,只有当所有ETLOUTPUT任务都执行成功,ETL Combined任务才算执行成功。ETL OUTPUT任务应当依次按序执行,如果任何一个ETL OUTPUT任务执行失败,则后续的任务都毋需再执行了,因为此时ETL Combined任务应当以失败处理。
然而,这里目前可能会存在一个如下显然的性能问题:
JobEngine脚本的生成基于输出数据集算子(DS_OUTPUT),但不同的DS_OUTPUT算子的逻辑在前面的数据流网(由附图1中的ETL工厂将算子图中的算子转换为数据流网)中可能存在重叠,这样会导致ETL_OUTPUT任务之间会执行相同的脚本,白白消耗性能。尤其是当ETL算子所构建的网络越来越复杂时,下游的输出数据集算子需要每次都计算一遍上游的全部算子时(如附图3所示的输出节点C,需要重新计算一遍上游的ETL算子N),这样的操作可能会非常昂贵,为企业带来较大的成本负担。
发明内容
为了解决上述问题,本申请提出一种ETL中JobEngine任务拆分方法、系统和电子设备。
本申请一方面,提出一种ETL中JobEngine任务拆分方法,包括如下步骤:
在ETL算子图的出口k处,产生一个用作缓存的临时输出节点和对应的临时输入节点;
根据所述临时输出节点和所述临时输入节点,对原始的ETL_COMBINED任务执行拓扑图进行拆分,分别生成所述ETL算子图的第一任务执行子图和第二任务执行子图;
设定任务执行优先级的管理规则:
所述第一任务执行子图的任务执行优先级优先于所述第二任务执行子图。
作为本申请的一可选实施方案,可选地,设定任务执行优先级的管理规则,包括:
定义每个以原始输出节点Om为唯一出口的网络为O(Om),O(x)为以输出数据集节点x生成网络的计算函数;
定义计算优先级的函数为Level(x):
Level(O(O1))=…=Level(O(om)),(1≤m≤N,N为全部的输出数据集节点的数量);
定义拆分计算函数为D(x),是以x的输入网络为基础进行一次节点拆分;
定义Level(D(O(om)为对O(Om)进行一次拆分后的子网络的输出节点执行的优先级,保证:
Level(D(O(om)))>Level(O(Om))。
作为本申请的一可选实施方案,可选地,在设定任务执行优先级的管理规则之后,还包括:
将所述任务执行优先级的管理规则配置并保存在任务管理模块上。
作为本申请的一可选实施方案,可选地,在设定任务执行优先级的管理规则之后,还包括:
在所述第一任务执行子图中的所述临时输出节点,执行完毕对应的ETL_COMBINED任务之后,生成对应的第一子图执行结果;
将所述第一子图执行结果输入至所述第二任务执行子图;
由所述第二任务执行子图中的所述临时输入节点,接收所述第一子图执行结果,并对所述第一子图执行结果中已被计算过的ETL输出算子进行标记;
标记完毕,将ETL算子图上未标记的其余ETL输出算子,作为所述第二任务执行子图的ETL_COMBINED任务。
作为本申请的一可选实施方案,可选地,在得到所述第二任务执行子图的ETL_COMBINED任务之后,还包括:
在所述第二任务执行子图中,将其对应的ETL_COMBINED任务拆分为多个ETLOUTPUT任务;
将各个所述ETL OUTPUT任务分别发送至所述第二任务执行子图中的各个输出节点,由各个输出节点对各自分配的所述ETL OUTPUT任务进行运行。
作为本申请的一可选实施方案,可选地,在对原始的ETL_COMBINED任务执行拓扑图进行拆分之前,还包括:
计算所述ETL算子图的复杂图;
根据所述复杂图,确定原始的ETL_COMBINED任务执行拓扑图进行拆分的子图拆分数量;
将所述子图拆分数量保存在任务管理模块上。
本申请另一方面,提出一种实现所述ETL中JobEngine任务拆分方法的系统,包括:
临时节点配置模块,用于在ETL算子图的出口k处,产生一个用作缓存的临时输出节点和对应的临时输入节点;
拓扑图拆分模块,用于根据所述临时输出节点和所述临时输入节点,对原始的ETL_COMBINED任务执行拓扑图进行拆分,分别生成所述ETL算子图的第一任务执行子图和第二任务执行子图;
优先级设定模块,用于设定任务执行优先级的管理规则:
所述第一任务执行子图的任务执行优先级优先于所述第二任务执行子图。
本申请另一方面,还提出一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述可执行指令时实现所述的一种ETL中JobEngine任务拆分方法。
本发明的技术效果:
本申请通过在ETL算子图出口k处产生一个用作缓存的临时输出节点和对应的临时输入节点;根据所述临时输出节点和所述临时输入节点,对原始的ETL_COMBINED任务执行拓扑图进行拆分,分别生成所述ETL算子图的第一任务执行子图和第二任务执行子图;设定任务执行优先级的管理规则:所述第一任务执行子图的任务执行优先级优先于所述第二任务执行子图。在ETL算子图出口做一个拆分,复杂的图将被拆分成两个简单的子图,以达到临时缓存的效果。这样将大大减小后续原始拓扑图中每个输出节点的计算压力,带来显著的性能提升。同时保证先处理临时输出节点,再处理临时输入节点的优先级处理顺序,让第二子图中的临时输入节点能够对临时输出节点的计算结果进行获知,了解第一子图已经处理了哪些ETL算子,能够让后续第二子图中的输出节点避免重复计算算子,避免因重复计算带来的性能消耗和成本。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1示出为ETL任务执行示意图;
图2示出ETL_COMBINED任务执行拓扑图;
图3示出为本发明在ETL算子图的出口k处进行拓扑图拆分的示意图;
图4示出为本发明将原始的ETL_COMBINED任务执行拓扑图拆分为两个子图的拓扑结构示意图;
图5示出为本发明电子设备的应用示意图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
实施例1
本申请一方面,提出一种ETL中JobEngine任务拆分方法,包括如下步骤:
在ETL算子图的出口k处,产生一个用作缓存的临时输出节点和对应的临时输入节点;
根据所述临时输出节点和所述临时输入节点,对原始的ETL_COMBINED任务执行拓扑图进行拆分,分别生成所述ETL算子图的第一任务执行子图和第二任务执行子图;
设定任务执行优先级的管理规则:
所述第一任务执行子图的任务执行优先级优先于所述第二任务执行子图。
如附图1所示,本方案主要用于数据转换中的ETL算子图的任务拆分、执行。用户可以使用ETL模块提供的低代码方式,通过拖拽一些视图化的算子来构建一个计算过程,实现输入数据集到目标输出数据集的数据转换。算子图由一个或多个输入算子和至少一个输出算子构成,用户可以导出、导入、删除、保存或者修改算子图,以及管理算子图的计算时机,如级联触发、定时触发等等方式。
用户需要进行逻辑处理、执行的数据集,将在ETL模块中通过每个算子进行逻辑执行,算子执行过程中伴随对应的数据处理。
用户可以通过ETL模块提供的界面,选择需要转换的数据集,并通过拖拽算子的方式构建一个算子图,来实现数据转换的过程。算子图可以包含多个算子,每个算子都代表了一种数据转换操作,例如过滤、排序、聚合等等。用户可以根据自己的需求选择合适的算子来构建自己的算子图。
一旦用户构建好了自己的算子图,ETL模块会将这个计算过程转换为可执行的任务引擎通用脚本,并通过提交任务的方式在任务引擎中排队、调度和执行。用户可以管理算子图的计算时机,例如级联触发、定时触发等等方式,来满足自己的需求。
最终,ETL模块会生成一个或多个目标数据集,这些数据集可以被用户导出、导入、删除、保存或者修改。用户可以根据自己的需求对这些数据集进行进一步处理或者分析。
如附图3所示,在节点K(ETL算子图的出口)上做一个拆分,产生一个临时的输出作为缓存,这样将大大减小后续每个输出节点的计算压力。
在节点K进行拆分之后,会将附图2所示的原始的ETL_COMBINED任务执行拓扑图(由若干执行ETL算子图的输出节点构成的拓扑网络)进行拆分,形成两个子图:第一任务执行子图和第二任务执行子图。
本实施例中,可以把每个子图当成和之前一样处理,但此时需要注意,处理子图是有上下依赖的,也就是,必须保证先处理临时输出节点,然后再处理临时输入节点,否则再临时输入节点上获取不到输入的信息(很显然的结论),也就是说,输出节点现在的处理顺序是必须要按照先临时输出节点,再临时输入节点的方式来顺序执行。
作为本申请的一可选实施方案,可选地,设定任务执行优先级的管理规则,包括:
定义每个以原始输出节点Om为唯一出口的网络为O(Om),O(x)为以输出数据集节点x生成网络的计算函数;
定义计算优先级的函数为Level(x):
Level(O(O1))=…=Level(O(om)),(1≤m≤N,N为全部的输出数据集节点的数量);
定义拆分计算函数为D(x),是以x的输入网络为基础进行一次节点拆分;
定义Level(D(O(om)为对O(Om)进行一次拆分后的子网络的输出节点执行的优先级,保证:
Level(D(O(om)))>Level(O(Om))。
作为本申请的一可选实施方案,可选地,在设定任务执行优先级的管理规则之后,还包括:
将所述任务执行优先级的管理规则配置并保存在任务管理模块上。
具体的:
定义每个以原始输出节点om为唯一出口的网络为O(om),O(x)为以输出数据集节点x生成网络的计算函数。然后定义其计算的优先级的函数为Level(x)。定义Level(O(o1))=…=Level(O(om)),(1≤m≤N,N为全部的输出数据集节点的数量)。
因为原始的输出节点是没必要区分处理的先后顺序的(可能在性能上有不同)。
然后,定义拆分计算函数为D(x),是以x的输入网络为基础进行一次节点拆分。如D(O(om))为在O(om)上进行一次节点拆分操作。定义Level(D(O(om)))为对O(om)进行一次拆分后的子网络的输出节点执行的优先级。
显然,需要保证Level(D(O(om)))>Level(O(om)),因为临时输出节点必须先被计算。
为了得到更一般性的结论,定义D(O(om))=D1(O(om)),O(om)=D0(O(om))。自然得到,D(D(O(om)))=D2(O(om))。
那么,更一般的有
Level(Dk+1(O(om))>Level(Dk(O(om)))
Level(Dk(O(o1)))=…=Level(Dk(O(om)))
(0≤k≤M)M为拆分的次数。
上面就是执行优先级的形式化定义。
总之,在处理ETL算子拆分的时候需要注意各子图间执行的优先级顺序。
这样,如图4所示,ETL算子图将按照这两个子图进行ETL_COMBINED任务执行,但是第一任务执行子图和第二任务执行子图之间具有任务执行的优先级。包含临时输出节点的第一任务执行子图,优先执行其上ETL算子的ETL任务,将其结果反馈至第二任务执行子图的临时输入节点,再由临时输入节点根据第一任务执行子图的ETL任务任务执行结果,重新按照ETL_COMBINED任务的拆分执行方案,进行执行。
此时,因为临时输出节点已经将本次ETL算子图进行前期执行了,所以,第二子图中的输出节点A等节点,对于已经被执行的ETL算子,将自动进行忽略(标记),不会再重新执行,以此避免重复计算而消耗性能。
作为本申请的一可选实施方案,可选地,在设定任务执行优先级的管理规则之后,还包括:
在所述第一任务执行子图中的所述临时输出节点,执行完毕对应的ETL_COMBINED任务之后,生成对应的第一子图执行结果;
将所述第一子图执行结果输入至所述第二任务执行子图;
由所述第二任务执行子图中的所述临时输入节点,接收所述第一子图执行结果,并对所述第一子图执行结果中已被计算过的ETL输出算子进行标记;
标记完毕,将ETL算子图上未标记的其余ETL输出算子,作为所述第二任务执行子图的ETL_COMBINED任务。
第二任务执行子图的临时输入节点,在接收到第一任务执行子图中临时输出节点对ETL算子图输出的执行结果之后,将获知哪些ETL算子已经被第一任务执行子图执行,因此临时输入节点可以告知第二任务执行子图中的后续其他输出节点。
详见上述对图4的描述。
作为本申请的一可选实施方案,可选地,在得到所述第二任务执行子图的ETL_COMBINED任务之后,还包括:
在所述第二任务执行子图中,将其对应的ETL_COMBINED任务拆分为多个ETLOUTPUT任务;
将各个所述ETL OUTPUT任务分别发送至所述第二任务执行子图中的各个输出节点,由各个输出节点对各自分配的所述ETL OUTPUT任务进行运行。
第二任务执行子图中各个输出节点对第二任务执行子图的ETL_COMBINED任务的执行过程,可以参见原有的任务拆分执行过程,只不过其中被第一任务执行子图中临时输出节点所执行的ETL算子,已经被第二任务执行子图中临时输入节点所得知,因此可以由临时输入节点告知第二任务执行子图中各个输出节点,避免重复计算。
作为本申请的一可选实施方案,可选地,在对原始的ETL_COMBINED任务执行拓扑图进行拆分之前,还包括:
计算所述ETL算子图的复杂图;
根据所述复杂图,确定原始的ETL_COMBINED任务执行拓扑图进行拆分的子图拆分数量;
将所述子图拆分数量保存在任务管理模块上。
所述ETL算子图的复杂图计算方式,可以由任务管理系统的后台管理员自行计算,计算方式,本实施例不做限定。
本实施例是以2个子图进行拆分的,因此在ETL算子图的出口设定一个临时输出节点,将原始的ETL_COMBINED任务执行拓扑图进行拆分,分别生成所述ETL算子图的第一任务执行子图和第二任务执行子图。
若是根据ETL算子图的复杂图,确定需要设定多个子图,则可以参照上述本实施例的拆分方案和优先级设定模式,设定若干子图即可。
因此,本方案在ETL算子图出口做一个拆分,复杂的图将被拆分成两个简单的子图,以达到临时缓存的效果。这样将大大减小后续原始拓扑图中每个输出节点的计算压力,带来显著的性能提升。同时保证先处理临时输出节点,再处理临时输入节点的优先级处理顺序,让第二子图中的临时输入节点能够对临时输出节点的计算结果进行获知,了解第一子图已经处理了哪些ETL算子,能够让后续第二子图中的输出节点避免重复计算算子,避免因重复计算带来的性能消耗和成本。
显然,本领域的技术人员应该明白,实现上述实施例中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成的,程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各控制的实施例的流程。本领域技术人员可以理解,实现上述实施例中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成的,程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各控制的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)、随机存储记忆体(RandomAccessMemory,RAM)、快闪存储器(FlashMemory)、硬盘(HardDiskDrive,缩写:HDD)或固态硬盘(Solid-StateDrive,SSD)等;存储介质还可以包括上述种类的存储器的组合。
实施例2
基于实施例1的实施原理,本申请另一方面,提出一种实现所述ETL中JobEngine任务拆分方法的系统,包括:
临时节点配置模块,用于在ETL算子图的出口k处,产生一个用作缓存的临时输出节点和对应的临时输入节点;
拓扑图拆分模块,用于根据所述临时输出节点和所述临时输入节点,对原始的ETL_COMBINED任务执行拓扑图进行拆分,分别生成所述ETL算子图的第一任务执行子图和第二任务执行子图;
优先级设定模块,用于设定任务执行优先级的管理规则:
所述第一任务执行子图的任务执行优先级优先于所述第二任务执行子图。
上述各个模块的具体功能和交互,详见实施例1的描述。
上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
实施例3
如图5所示,更进一步地,本申请另一方面,还提出一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述可执行指令时实现所述的一种ETL中JobEngine任务拆分方法。
本公开实施例来电子设备包括处理器以及用于存储处理器可执行指令的存储器。其中,处理器被配置为执行可执行指令时实现前面任一所述的一种ETL中JobEngine任务拆分方法。
此处,应当指出的是,处理器的个数可以为一个或多个。同时,在本公开实施例的电子设备中,还可以包括输入装置和输出装置。其中,处理器、存储器、输入装置和输出装置之间可以通过总线连接,也可以通过其他方式连接,此处不进行具体限定。
存储器作为一计算机可读存储介质,可用于存储软件程序、计算机可执行程序和各种模块,如:本公开实施例的一种ETL中JobEngine任务拆分方法所对应的程序或模块。处理器通过运行存储在存储器中的软件程序或模块,从而执行电子设备的各种功能应用及数据处理。
输入装置可用于接收输入的数字或信号。其中,信号可以为产生与设备/终端/服务器的用户设置以及功能控制有关的键信号。输出装置可以包括显示屏等显示设备。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (7)

1.一种ETL中JobEngine任务拆分方法,其特征在于,包括如下步骤:
在ETL算子图的出口k处,产生一个用作缓存的临时输出节点和对应的临时输入节点;
根据所述临时输出节点和所述临时输入节点,对原始的ETL_COMBINED任务执行拓扑图进行拆分,分别生成所述ETL算子图的第一任务执行子图和第二任务执行子图;
设定任务执行优先级的管理规则:
所述第一任务执行子图的任务执行优先级优先于所述第二任务执行子图;
在所述第一任务执行子图中的所述临时输出节点,执行完毕对应的ETL_COMBINED任务之后,生成对应的第一子图执行结果;
将所述第一子图执行结果输入至所述第二任务执行子图;
由所述第二任务执行子图中的所述临时输入节点,接收所述第一子图执行结果,并对所述第一子图执行结果中已被计算过的ETL输出算子进行标记;
标记完毕,将ETL算子图上未标记的其余ETL输出算子,作为所述第二任务执行子图的ETL_COMBINED任务。
2.根据权利要求1所述的一种ETL中JobEngine任务拆分方法,其特征在于,设定任务执行优先级的管理规则,包括:
定义每个以原始输出节点Om为唯一出口的网络为O( Om O(x)为以输出数据集节点x生成网络的计算函数;
定义计算优先级的函数为Level(x)
Level(O( O1 ))=…=Level(O(om)),(1≤m≤N,N为全部的输出数据集节点的数量);
定义拆分计算函数为D(x),是以x的输入网络为基础进行一次节点拆分;
义Level(D(O(om)为对O( Om 进行一次拆分后的子网络的输出节点执行的优先级,保证:
Level(D(O(om)))>Level(O( Om ))
3.根据权利要求1所述的一种ETL中JobEngine任务拆分方法,其特征在于,在设定任务执行优先级的管理规则之后,还包括:
将所述任务执行优先级的管理规则配置并保存在任务管理模块上。
4.根据权利要求1所述的一种ETL中JobEngine任务拆分方法,其特征在于,在得到所述第二任务执行子图的ETL_COMBINED任务之后,还包括:
在所述第二任务执行子图中,将其对应的ETL_COMBINED任务拆分为多个ETL OUTPUT任务;
将各个所述ETL OUTPUT任务分别发送至所述第二任务执行子图中的各个输出节点,由各个输出节点对各自分配的所述ETL OUTPUT任务进行运行。
5.根据权利要求1所述的一种ETL中JobEngine任务拆分方法,其特征在于,在对原始的ETL_COMBINED任务执行拓扑图进行拆分之前,还包括:
计算所述ETL算子图的复杂图;
根据所述复杂图,确定原始的ETL_COMBINED任务执行拓扑图进行拆分的子图拆分数量;
将所述子图拆分数量保存在任务管理模块上。
6.一种实现权利要求1-5中任一项所述ETL中JobEngine任务拆分方法的系统,其特征在于,包括:
临时节点配置模块,用于在ETL算子图的出口k处,产生一个用作缓存的临时输出节点和对应的临时输入节点;
拓扑图拆分模块,用于根据所述临时输出节点和所述临时输入节点,对原始的ETL_COMBINED任务执行拓扑图进行拆分,分别生成所述ETL算子图的第一任务执行子图和第二任务执行子图;
优先级设定模块,用于设定任务执行优先级的管理规则:
所述第一任务执行子图的任务执行优先级优先于所述第二任务执行子图;
在所述第一任务执行子图中的所述临时输出节点,执行完毕对应的ETL_COMBINED任务之后,生成对应的第一子图执行结果;
将所述第一子图执行结果输入至所述第二任务执行子图;
由所述第二任务执行子图中的所述临时输入节点,接收所述第一子图执行结果,并对所述第一子图执行结果中已被计算过的ETL输出算子进行标记;
标记完毕,将ETL算子图上未标记的其余ETL输出算子,作为所述第二任务执行子图的ETL_COMBINED任务。
7.一种电子设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述可执行指令时实现权利要求1-5中任一项所述一种ETL中JobEngine任务拆分方法。
CN202310988169.1A 2023-08-08 2023-08-08 ETL中JobEngine任务拆分方法 Active CN117056068B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310988169.1A CN117056068B (zh) 2023-08-08 2023-08-08 ETL中JobEngine任务拆分方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310988169.1A CN117056068B (zh) 2023-08-08 2023-08-08 ETL中JobEngine任务拆分方法

Publications (2)

Publication Number Publication Date
CN117056068A CN117056068A (zh) 2023-11-14
CN117056068B true CN117056068B (zh) 2024-03-19

Family

ID=88661868

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310988169.1A Active CN117056068B (zh) 2023-08-08 2023-08-08 ETL中JobEngine任务拆分方法

Country Status (1)

Country Link
CN (1) CN117056068B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114611688A (zh) * 2022-01-19 2022-06-10 阿里云计算有限公司 深度学习模型分布式训练方法及其训练执行计划构建方法
CN114841323A (zh) * 2022-05-17 2022-08-02 北京灵汐科技有限公司 神经网络计算图的处理方法及处理装置
CN114881214A (zh) * 2022-05-17 2022-08-09 北京灵汐科技有限公司 神经网络计算图的处理方法及处理装置
CN115202876A (zh) * 2022-07-11 2022-10-18 医利捷(上海)信息科技有限公司 一种基于etl服务器的任务处理方法、系统和电子设备
CN115829006A (zh) * 2022-12-20 2023-03-21 北京地平线信息技术有限公司 神经网络模型的编译方法、装置、电子设备和存储介质
CN116011562A (zh) * 2022-09-13 2023-04-25 上海壁仞智能科技有限公司 算子处理方法及算子处理装置、电子设备和可读存储介质
CN116187391A (zh) * 2021-11-24 2023-05-30 华为技术有限公司 神经网络模型的处理方法及装置
CN116226256A (zh) * 2023-03-15 2023-06-06 北京博睿宏远数据科技股份有限公司 Etl流程的可视化方法、装置、设备及存储介质
CN116467061A (zh) * 2023-06-19 2023-07-21 之江实验室 一种任务执行的方法、装置、存储介质及电子设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104504143B (zh) * 2015-01-04 2017-12-29 华为技术有限公司 一种流图优化方法及其装置
WO2021057746A1 (zh) * 2019-09-24 2021-04-01 安徽寒武纪信息科技有限公司 神经网络处理方法、装置、计算机设备及存储介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116187391A (zh) * 2021-11-24 2023-05-30 华为技术有限公司 神经网络模型的处理方法及装置
CN114611688A (zh) * 2022-01-19 2022-06-10 阿里云计算有限公司 深度学习模型分布式训练方法及其训练执行计划构建方法
CN114841323A (zh) * 2022-05-17 2022-08-02 北京灵汐科技有限公司 神经网络计算图的处理方法及处理装置
CN114881214A (zh) * 2022-05-17 2022-08-09 北京灵汐科技有限公司 神经网络计算图的处理方法及处理装置
CN115202876A (zh) * 2022-07-11 2022-10-18 医利捷(上海)信息科技有限公司 一种基于etl服务器的任务处理方法、系统和电子设备
CN116011562A (zh) * 2022-09-13 2023-04-25 上海壁仞智能科技有限公司 算子处理方法及算子处理装置、电子设备和可读存储介质
CN115829006A (zh) * 2022-12-20 2023-03-21 北京地平线信息技术有限公司 神经网络模型的编译方法、装置、电子设备和存储介质
CN116226256A (zh) * 2023-03-15 2023-06-06 北京博睿宏远数据科技股份有限公司 Etl流程的可视化方法、装置、设备及存储介质
CN116467061A (zh) * 2023-06-19 2023-07-21 之江实验室 一种任务执行的方法、装置、存储介质及电子设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
面向多方安全的数据联邦系统;李书缘 等;《软件学报》;20211021;第第33卷卷(第第3期期);全文 *

Also Published As

Publication number Publication date
CN117056068A (zh) 2023-11-14

Similar Documents

Publication Publication Date Title
US20230035910A1 (en) Method, system and device for parallel processing of data, and storage medium
CN107729138B (zh) 一种高性能分布式矢量空间数据的分析方法和装置
US20180189350A1 (en) Streaming data processing method, streaming data processing device and memory medium
CN111045933A (zh) 一种回归策略更新方法、装置、存储介质及终端设备
CN109189572B (zh) 一种资源预估方法及系统、电子设备和存储介质
CN111338695A (zh) 基于流水线技术的数据处理方法及相关产品
Sun et al. The fast heuristic algorithms and post-processing techniques to design large and low-cost communication networks
US9716625B2 (en) Identifying compatible system configurations
CN112182111B (zh) 基于区块链的分布式系统分层处理方法和电子设备
CN117056068B (zh) ETL中JobEngine任务拆分方法
CN113094125A (zh) 业务流程处理方法、装置、服务器及存储介质
CN112947907A (zh) 一种创建代码分支的方法
CN113342500B (zh) 任务执行方法、装置、设备及存储介质
CN112367205B (zh) 一种对http调度请求的处理方法及调度系统
CN111309265B (zh) 基于神经网络的节点存储方法、系统、服务器及存储介质
US11194624B2 (en) Partial order procedure planning device, partial order procedure planning method and partial order procedure planning program
CN111951112A (zh) 基于区块链的智能合约执行方法、终端设备和存储介质
CN110928672A (zh) 一种任务编排方法、装置、设备及存储介质
WO2024087844A1 (zh) 图神经网络的训练方法、训练系统及异常账号识别方法
CN114615144B (zh) 网络优化方法及系统
CN114968491B (zh) 虚拟资源测试方法、装置、电子设备及存储介质
CN117576125B (zh) 一种神经网络计算图的分割方法、装置、设备及存储介质
CN116032928B (zh) 数据协同计算方法、装置、系统、电子装置和存储介质
CN115965070B (zh) 计算图处理方法、装置、设备、存储介质以及程序产品
CN114168275B (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
GR01 Patent grant