CN115509721B - 一种数据处理任务协同控制调度方法及*** - Google Patents
一种数据处理任务协同控制调度方法及*** Download PDFInfo
- Publication number
- CN115509721B CN115509721B CN202211330158.6A CN202211330158A CN115509721B CN 115509721 B CN115509721 B CN 115509721B CN 202211330158 A CN202211330158 A CN 202211330158A CN 115509721 B CN115509721 B CN 115509721B
- Authority
- CN
- China
- Prior art keywords
- task
- data
- data processing
- downstream
- state
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 36
- 238000011144 upstream manufacturing Methods 0.000 claims description 28
- 230000005540 biological transmission Effects 0.000 claims description 10
- 230000002159 abnormal effect Effects 0.000 claims description 4
- 238000004458 analytical method Methods 0.000 description 7
- 230000006978 adaptation Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000001351 cycling effect Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 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/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
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Programmable Controllers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种数据处理任务协同控制调度方法及***,属于数据处理技术领域;解决现有技术中的数据处理任务调度方法无法实现流数据处理任务与批数据处理任务的混合编排,无法满足用户选择流数据或批数据处理任务类型时无感操作的要求;本发明的方法包括以下步骤:获取当前节点的数据处理任务;根据数据处理任务的任务类型及数据处理进度设置相应的数据状态;并根据数据处理任务的执行状态设置相应的任务状态;获取当前节点的一个或多个下游任务,基于下游任务的任务类型,适配下游任务所需的数据结构;基于当前节点的任务状态、数据状态以及当前节点下游任务的任务类型,判断是否开始运行下游任务,以进行数据处理任务的协同控制调度。
Description
技术领域
本发明涉及数据处理技术领域,特别涉及一种数据处理任务协同控制调度方法及***。
背景技术
目前,随着大数据的应用越来越广泛,从数据处理的角度,可以分为实时的流数据和离线的批数据处理。数据处理作为数据生产源端到呈现给数据决策者末端的重要中间环节,提出了支撑大规模离线批数据和实时流数据的快速接入、处理、输出,并且能够以可视化的方式,实现对用户无感的流数据处理任务和批数据处理任务的混合编排,提高数据变现的效率等要求。因此面临了如何降低数据处理任务编排复杂度以及流数据处理和批数据处理能混合编排的挑战。目前,业内比较流行的数据任务处理的框架,一是通过任务状态控制下游任务是否能开始运行,如任务状态运行成功,则继续执行下游任务,失败则终止流程调度,是一种串联的方式逐个执行任务,任务之间无数据流转。二是在流程任务开始调度前,分析任务与任务之间的流向配置关系,生成有向无环图,同步运行编排流程上的所有任务,如某个任务处理失败,则整个流程处理结束,使用任务状态控制任务的调度,虽然任务间以数据流的方式交换数据,但是不能将批数据处理任务在同一编排流程上混合编排,需要用户做特别处理。如使用sqlldr工具输出数据的效率是普通的JDBC方式的10倍以上,却不能混合使用。所以,在数据接入和输出效率方面,无法根据不同的数据源提供的客户端工具,智能适配对应的数据结构接口,实现快速导入、导出及与其他流处理算子混合计算处理的要求;在易用性方面,流数据处理任务和批数据处理任务混合编排上不够灵活,无法满足流数据处理任务接批数据处理任务再接流处理任务相互混合编排的复杂场景,在可视化开发数据处理任务流程,做到对用户选择流数据处理或批数据处理任务类型无感的要求。
发明内容
鉴于上述的分析,本发明旨在提供一种数据处理任务协同控制调度方法及***;解决现有技术中的数据处理任务调度方法无法实现流数据处理任务与批数据处理任务的混合编排,无法满足用户选择流数据处理或批数据处理任务类型时无感操作的要求。
本发明的目的主要是通过以下技术方案实现的:
一方面,本发明提供了一种数据处理任务协同控制调度方法,包括以下步骤:
获取当前节点的数据处理任务并开始执行;
根据所述数据处理任务的任务类型及数据处理进度设置相应的数据状态;并根据所述数据处理任务的执行状态设置相应的任务状态;
获取当前节点的一个或多个下游任务,基于所述下游任务的任务类型,适配下游任务所需的数据结构;
基于当前节点的所述任务状态、数据状态以及当前节点下游任务的任务类型,判断是否开始运行下游任务,以进行数据处理任务的协同控制调度。
进一步的,所述基于所述下游任务的任务类型,适配下游任务所需的数据结构,包括:
如果下游任务是批数据处理任务,则将当前节点输出的数据生成为批数据结构记录后输出给下游任务;所述批数据结构为批数据的统一封装,包括:RecordSchema、datafile和fieldDelimiter;
如果下游任务是流数据处理任务,则将当前节点输出的数据生成流数据结构记录后输出给下游任务;所述流数据结构为流数据的统一封装,包括:RecordSchema、values和recordBytes。
进一步的,所述将当前节点输出的数据生成为批数据结构记录后输出给下游任务,包括:
若当前节点的任务为批数据处理任务,则直接将当前节点处理完成的数据输出给下游任务;
若当前节点为流数据处理任务,则创建批数据结构文件,将当前节点输出的流数据按顺序追加到批数据结构文件中,根据当前节点流数据处理任务的输出是否完成或预设的阈值,得到批数据结构记录输出给下游任务。
进一步的,所述将当前节点输出的数据生成流数据结构记录后输出给下游任务,包括:
若当前节点的任务为流数据处理任务,则直接将当前节点处理完成的数据输出给下游任务;
若当前节点的任务为批数据处理任务,则将当前节点输出的批数据结构记录包含的文件内容按行读取,将按行读取的每一条数据转换为流数据结构,得到流数据结构记录输出给下游任务。
进一步的,所述判断是否开始运行下游任务,包括:
若当前节点的任务均为执行中或已完成的任务状态,并且:当前节点的任务与下游任务的任务类型均为流数据处理任务,且数据状态为已发送一条数据或全部数据发送完成;或者,当前节点的任务为流数据处理任务,下游任务为批处理任务,且数据状态为全部数据发送完成;或者,当前节点的任务为批处理任务,且数据状态为全部数据读取完成;则执行下游任务;
否则,继续执行当前节点的任务。
进一步的,所述根据当前节点的数据处理任务的任务类型及数据处理进度设置相应的数据状态,包括:
若所述任务类型为流数据处理任务,则在读取一条数据后,设置数据状态为:已发送一条数据;并在全部数据读取完毕后,设置数据状态为:全部数据发送完成;
若所述任务类型为批数据处理任务,则在读取一批数据后,设置数据状态为:已发送一批数据;并在全部数据读取完毕后,设置数据状态为:全部数据发送完成。
进一步的,所述根据任务执行状态设置相应的任务状态,包括:
数据处理任务开始运行,任务状态从未开始转为运行中;
数据处理任务执行完毕,任务状态转为已完成;
任务逻辑执行出现异常,任务状态从运行中转为失败;
外部触发流程终止操作,任务状态从运行中转为终止。
进一步的,所述获取当前节点的数据处理任务,包括:以作业任务流程图中无上游任务的节点作为开始节点,获取并开始执行所述数据处理任务;若当前节点为开始节点,从外部数据源获取数据;若当前节点为有上游任务的节点,则从上游任务节点获取数据。
另一方面,还公开了一种数据处理任务协同控制调度***,包括:数据处理任务运行单元、数据状态控制单元、任务状态控制单元和任务流程调度单元;
所述数据处理任务运行单元用于执行数据处理任务,并设置并发送对应的数据状态和任务状态到所述数据状态控制单元和任务状态控制单元,并根据下游任务的任务类型,适配下游任务所需的数据结构;
所述数据状态控制单元用于根据当前数据处理任务的任务类型和数据状态,判断当前数据状态是否符合启动下游任务的条件,若符合,则发送数据状态到任务流程调度单元;
所述任务状态控制单元用于根据当前数据处理任务的任务类型和任务状态,判断当前任务状态是否符合启动下游任务的条件,若符合,则发送任务状态到任务流程调度单元;
所述任务流程调度单元用于基于当前节点的所述任务状态、数据状态以及当前节点下游任务的任务类型,判断是否开始运行下游任务,实现数据处理任务的协同控制调度。
进一步的,所述数据处理任务运行单元基于所述下游任务的任务类型,适配下游任务所需的数据结构,包括:
如果下游任务是批数据处理任务,则将当前节点输出的数据生成为批数据结构记录后输出给下游任务;所述批数据结构为批数据的统一封装,包括:RecordSchema、datafile和fieldDelimiter;
如果下游任务是流数据处理任务,则将当前节点输出的数据生成流数据结构记录后输出给下游任务;所述流数据结构为流数据的统一封装,包括:RecordSchema、values和recordBytes。
本技术方案的有益效果:
本发明通过基于数据状态和任务状态协同控制数据处理任务调度的方法,在混合编排流数据处理任务和批数据处理任务时,自动适配不同数据处理任务类型所需的数据结构,并根据数据状态和任务类型决定等待或同步运行下游数据处理任务;在编排任务时,用户只需关心业务逻辑,无需关心任务之间的数据交换、数据结构适配等技术问题,提高数据接入和输出效率,解决了易用性和效率等方面的问题,满足流数据处理任务与批数据处理任务相互混合编排的复杂场景。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分的从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
附图仅用于示出具体实施例的目的,而并不认为是对本发明的限制,在整个附图中,相同的参考符号表示相同的部件。
图1为本发明实施例的数据处理任务协同控制调度方法流程图;
具体实施方式
下面结合附图来具体描述本发明的优选实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的原理,并非用于限定本发明的范围。
本发明的一个实施例,公开了一种数据处理任务协同控制调度方法,如图1所示,包括以下步骤:
步骤S1:获取当前节点的数据处理任务并开始执行;
具体的,数据处理任务流程可以通过手动触发、定时触发、API调用等方法进行触发。在数据处理任务流程开始时,查找作业任务流程图中无上游任务的节点作为开始节点,开始节点用于运行第一个数据处理任务,此时将开始节点作为当前节点,从外部数据源获取数据并执行,例如,获取到“MySQL数据读取任务”和“FTP文件下载任务”两个无上游节点的任务,则将两个任务作为开始节点,同时开始运行。其中,作业任务流程图为根据任务与任务之间的流向配置关系生成的一种有向无环图,由节点和有向边组成;节点表示数据处理任务,有向边表示任务之间的流向关系。
若当前节点存在上游任务,则从上游任务节点获取数据。具体的,根据上游任务和当前节点的任务类型和数据状态,接收上游任务输出的数据。例如,上游任务为“FTP文件下载任务”,当前节点的任务为“文件内容解析任务”,则在上游任务下载一条数据,且数据状态转为“已发送一条数据”后,当前节点接收上游任务输出的数据,开始运行“文件内容解析任务”。
优选的,数据处理任务包括数据读取、数据处理、数据写入等任务。
步骤S2:根据数据处理任务的任务类型及数据处理进度设置相应的数据状态;并根据数据处理任务的执行状态设置相应的任务状态;
具体的,若任务类型为流数据处理任务,则在读取一条数据后,设置数据状态为:已发送一条数据;并在全部数据读取完毕后,设置数据状态为:全部数据发送完成;
若任务类型为批数据处理任务,则在读取一批数据后,设置数据状态为:已发送一批数据;并在全部数据读取完毕后,设置数据状态为:全部数据发送完成。
根据任务执行状态设置相应的任务状态,包括:
数据处理任务开始运行,任务状态从未开始转为运行中;
数据处理任务的全部业务逻辑正常执行完毕,则任务状态转为已完成;
任务逻辑执行出现异常,任务状态从运行中转为失败;
外部触发流程终止操作,任务状态从运行中转为终止。
当任务状态为“失败”或“终止”时,结束任务流程调度,最终任务状态为“失败”。
步骤S3:获取当前节点的一个或多个下游任务,基于下游任务的任务类型,适配下游任务所需的数据结构,包括批数据结构和流数据结构,其中,
批数据结构为批数据的统一封装,包括:RecordSchema、datafile和fieldDelimiter;其中,
RecordSchema是描述“批数据结构”和“流数据结构”的数据格式,包含至少一个字段,每个字段包括:fieldName:字段名称;defaultValue:字段默认值;dataType:字段的数据类型,包括字符串、数值、日期;isPrimaryKey:是否主键。
Datafile为一个文本类型的数据文件,每一行数据是一条记录,一行数据按fieldDelimiter分隔;
fieldDelimiter为行数据分隔符,如逗号、中竖线等。
流数据结构为流数据的统一封装,包括:RecordSchema、values和recordBytes,其中,
RecordSchema与批数据结构中的RecordSchema相同;
Values为根据字段数量和字段类型构建的数组,存放每个字段值;
recordBytes为一条记录的字节数,用于统计数据流的大小
具体的,如果下游任务是批数据处理任务,则将当前节点输出的数据生成为批数据结构记录后输出给下游任务;包括:若当前节点的任务为批数据处理任务,则直接将当前节点处理完成的数据输出给下游任务;若当前节点为流数据处理任务,则创建批数据结构文件,将当前节点输出的流数据按顺序追加到批数据结构文件中,根据当前节点流数据处理任务的输出是否完成或预设的阈值,得到批数据结构记录输出给下游任务。更具体的,将流数据结构的RecordSchema属性设置到批数据结构的RecordSchema中;将流数据结构的Values数据内容,按fieldDelimiter值做分隔符,将其每个字段内容拼接为字符串,作为一行数据记录,追加到批数据结构记录中,得到批数据结构记录。
如果下游任务是流数据处理任务,则将当前节点输出的数据生成流数据结构记录后输出给下游任务;包括:若当前节点的任务为流数据处理任务,则直接将当前节点处理完成的数据输出给下游任务;若当前节点的任务为批数据处理任务,则将当前节点输出的批数据结构记录包含的文件内容按行读取,将按行读取的每一条数据转换为流数据结构,具体为:将批数据结构的RecordSchema属性直接设置到流数据结构的RecordSchema中;将文件内容按行读取的一行字符串,按fieldDelimiter分隔符,拆分为一个字符串数组,数组的内容对应每个字段的值,设置在Values属性上,并且获取这一行字符串的size,设置在recordBytes属性上,得到流数据结构记录。
步骤S4:基于当前节点的所述任务状态、数据状态以及当前节点下游任务的任务类型,判断是否开始运行下游任务,完成数据处理任务的协同控制调度。
具体的,若当前节点的任务均为执行中或已完成的任务状态,并且:当前节点的任务与下游任务的任务类型均为流数据处理任务,且数据状态为已发送一条数据或全部数据发送完成;或者,当前节点的任务为流数据处理任务,下游任务为批处理任务,且数据状态为全部数据发送完成;或者,当前节点的任务为批处理任务,且数据状态为全部数据发送完成;则执行下游任务;
否则,继续执行当前节点的任务。
更具体的,在判断是否开始运行下游任务时,首先获取当前节点的一个或多个下游任务,作为准备运行的数据处理任务;循环获取得到的每个下游任务,并分别获取其一个或多个上游任务,如果上游任务有“未开始”的状态,则循环上游任务;
如果上游任务的任务状态都是“运行中”或“完成”,则:
若上游任务为流数据处理任务,并且待运行任务为批数据处理任务,并且上游任务数据状态不是“全部数据发送完成”,循环上游任务中的下一个任务;
若上游任务为批数据处理任务并且数据状态不是“已发送一批数据”或“全部数据发送完成”,循环上游任务中的下一个任务;
否则,自动适配下游任务所需的数据结构并运行下游数据处理任务。
若出现“失败”或“终止”的任务状态,则结束任务流程调度,最终任务状态为“失败”
作为一个具体的实施例,在数据处理任务流程开始时,查找作业任务流程图中无上游任务的节点作为开始节点,运行第一个数据处理任务节点,例如,查找到“MySQL数据读取任务”和“FTP文件下载任务”,开始运行这两个任务;
对于“MySQL数据读取任务”,任务状态转为“运行中”,当读取到第一条数据,数据状态为“已发送一条数据”,开始查找下游任务,得到下游任务为“数据去重任务”,由于“数据去重任务”为批处理任务,需要等待所有数据都发送完毕,才能启动批量去重计算,所以“数据去重任务”状态为“未开始”。
对于“FTP文件下载”任务,任务状态转为“运行中”,当下载了第一个文件,数据状态为“已发送一条数据”,开始查找下游任务,得到下游任务为“文件内容解析任务”,因为该任务为流处理任务,所以可以运行“文件内容解析任务”,状态为“运行中”,当解析了文件的第一条数据,并往下游发送,数据状态为“已发送一条数据”,继续查找下游任务,得到下游任务为“数据关联任务”。因为“数据关联任务”为批处理任务,需要等待上游的任务“数据去重任务”和“文件内容解析任务”都数据发送完毕,并且任务状态“成功”,才能开始运行;
等待“MySQL数据读取任务”数据状态为“全部数据发送完成”并且任务状态为“成功”,开始运行“数据去重任务”,自动转换为批处理任务所需要的批数据结构记录,进行数据去重处理;
等待“数据关联任务”上游的“数据去重任务”和“文件内容解析任务”的数据状态为“全部数据发送完成”,任务状态为“成功”,则开始运行“数据关联任务”;
当“数据关联任务”的数据状态为“全部数据发送完成”,任务状态为“成功”时,开始查找下游任务,得到下游任务为“写入Oracle数据库任务”,并开始运行,因为“写入Oracle数据库任务”是流处理任务,自动将上游“数据关联任务”输出结果转换为流数据结构,输入到“写入Oracle数据库任务”;
当“写入Oracle数据库任务”的数据状态为“全部数据发送完成”,任务状态为“成功”,因为其没有下游任务,则整个任务调度流程完成,状态为“成功”;
如果执行过程中,有任务出现异常,如数据类型不对,数据不能为空等错误,则终止任务调度流程,状态为“失败”
通过本发明的数据处理任务调度方法,实现了自动适配不同数据处理任务类型所需的数据结构,在混合编排流数据处理任务和批数据处理任务时,实现了用户无感操作,提高了数据接入和输出的效率。
本发明的另一个实施例,还提供了一种数据处理任务协同控制调度***,该***通过前述的方法对数据处理任务进行协同控制调度。所述***包括:数据处理任务运行单元、数据状态控制单元、任务状态控制单元和任务流程调度单元;其中,
数据处理任务运行单元用于执行数据处理任务,并设置并发送对应的数据状态和任务状态到数据状态控制单元和任务状态控制单元,并根据下游任务的任务类型,适配下游任务所需的数据结构;
数据状态控制单元用于根据当前数据处理任务的任务类型和数据状态,判断当前数据状态是否符合启动下游任务的条件,若符合,则发送数据状态到任务流程调度单元;
任务状态控制单元用于根据当前数据处理任务的任务类型和任务状态,判断当前任务状态是否符合启动下游任务的条件,若符合,则发送任务状态到任务流程调度单元;
任务流程调度单元用于基于当前节点的任务状态、数据状态以及当前节点下游任务的任务类型,判断是否开始运行下游任务,实现数据处理任务的协同控制调度。
数据处理任务运行单元基于下游任务的任务类型,适配下游任务所需的数据结构,包括:
如果下游任务是批数据处理任务,则将当前节点输出的数据生成为批数据结构记录后输出给下游任务;所述批数据结构为批数据的统一封装,包括:RecordSchema、datafile和fieldDelimiter;
如果下游任务是流数据处理任务,则将当前节点输出的数据生成流数据结构记录后输出给下游任务;所述流数据结构为流数据的统一封装,包括:RecordSchema、values和recordBytes。
综上所述,本发明的实施例提供的数据处理任务协同控制调度方法和***,通过数据状态和任务状态协同控制数据处理任务,在混合编排流数据处理任务和批数据处理任务时,自动适配不同数据处理任务类型所需的数据结构,并根据数据状态和任务类型决定等待或同步运行下游数据处理任务;在编排任务时,用户只需关心业务逻辑,无需关心任务之间的数据交换、数据结构适配等技术问题,提高数据接入和输出效率,解决了易用性和效率等方面的问题,满足流数据处理任务与批数据处理任务相互混合编排的复杂场景。
本领域技术人员可以理解,实现上述实施例方法的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读存储介质中。其中,所述计算机可读存储介质为磁盘、光盘、只读存储记忆体或随机存储记忆体等。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
Claims (9)
1.一种数据处理任务协同控制调度方法,其特征在于,包括以下步骤:
获取当前节点的数据处理任务并开始执行;
根据所述数据处理任务的任务类型及数据处理进度设置相应的数据状态;并根据所述数据处理任务的执行状态设置相应的任务状态;
获取当前节点的一个或多个下游任务,基于所述下游任务的任务类型,适配下游任务所需的数据结构;
基于当前节点的所述任务状态、数据状态以及当前节点下游任务的任务类型,判断是否开始运行下游任务,以进行数据处理任务的协同控制调度;所述判断是否开始运行下游任务,包括:
若当前节点的任务均为执行中或已完成的任务状态,并且:当前节点的任务与下游任务的任务类型均为流数据处理任务,且数据状态为已发送一条数据或全部数据发送完成;或者,当前节点的任务为流数据处理任务,下游任务为批处理任务,且数据状态为全部数据发送完成;或者,当前节点的任务为批处理任务,且数据状态为全部数据读取完成;则执行下游任务;否则,继续执行当前节点的任务。
2.根据权利要求1所述的数据处理任务协同控制调度方法,其特征在于,所述基于所述下游任务的任务类型,适配下游任务所需的数据结构,包括:
如果下游任务是批数据处理任务,则将当前节点输出的数据生成为批数据结构记录后输出给下游任务;所述批数据结构为批数据的统一封装,包括:RecordSchema、datafile和fieldDelimiter;
如果下游任务是流数据处理任务,则将当前节点输出的数据生成流数据结构记录后输出给下游任务;所述流数据结构为流数据的统一封装,包括:RecordSchema、values和recordBytes。
3.根据权利要求2所述的数据处理任务协同控制调度方法,其特征在于,所述将当前节点输出的数据生成为批数据结构记录后输出给下游任务,包括:
若当前节点的任务为批数据处理任务,则直接将当前节点处理完成的数据输出给下游任务;
若当前节点为流数据处理任务,则创建批数据结构文件,将当前节点输出的流数据按顺序追加到批数据结构文件中,根据当前节点流数据处理任务的输出是否完成或预设的阈值,得到批数据结构记录输出给下游任务。
4.根据权利要求2所述的数据处理任务协同控制调度方法,其特征在于,所述将当前节点输出的数据生成流数据结构记录后输出给下游任务,包括:
若当前节点的任务为流数据处理任务,则直接将当前节点处理完成的数据输出给下游任务;
若当前节点的任务为批数据处理任务,则将当前节点输出的批数据结构记录包含的文件内容按行读取,将按行读取的每一条数据转换为流数据结构,得到流数据结构记录输出给下游任务。
5.根据权利要求1-4任一项所述的数据处理任务协同控制调度方法,其特征在于,所述根据当前节点的数据处理任务的任务类型及数据处理进度设置相应的数据状态,包括:
若所述任务类型为流数据处理任务,则在读取一条数据后,设置数据状态为:已发送一条数据;并在全部数据读取完毕后,设置数据状态为:全部数据发送完成;
若所述任务类型为批数据处理任务,则在读取一批数据后,设置数据状态为:已发送一批数据;并在全部数据读取完毕后,设置数据状态为:全部数据发送完成。
6.根据权利要求1-4任一项所述的数据处理任务协同控制调度方法,其特征在于,所述根据所述数据处理任务的执行状态设置相应的任务状态,包括:
数据处理任务开始运行,任务状态从未开始转为运行中;
数据处理任务执行完毕,任务状态转为已完成;
任务逻辑执行出现异常,任务状态从运行中转为失败;
外部触发流程终止操作,任务状态从运行中转为终止。
7.根据权利要求1-4任一项所述的数据处理任务协同控制调度方法,其特征在于,所述获取当前节点的数据处理任务,包括:以作业任务流程图中无上游任务的节点作为开始节点,获取并开始执行所述数据处理任务;若当前节点为开始节点,从外部数据源获取数据;若当前节点为存在上游任务的节点,则从上游任务节点获取数据。
8.一种数据处理任务协同控制调度***,其特征在于,包括:数据处理任务运行单元、数据状态控制单元、任务状态控制单元和任务流程调度单元;
所述数据处理任务运行单元用于执行数据处理任务,并设置并发送对应的数据状态和任务状态到所述数据状态控制单元和任务状态控制单元,并根据下游任务的任务类型,适配下游任务所需的数据结构;
所述数据状态控制单元用于根据当前数据处理任务的任务类型和数据状态,判断当前数据状态是否符合启动下游任务的条件,若符合,则发送数据状态到任务流程调度单元;
所述任务状态控制单元用于根据当前数据处理任务的任务类型和任务状态,判断当前任务状态是否符合启动下游任务的条件,若符合,则发送任务状态到任务流程调度单元;
所述任务流程调度单元用于基于当前节点的所述任务状态、数据状态以及当前节点下游任务的任务类型,判断是否开始运行下游任务,实现数据处理任务的协同控制调度;所述判断是否开始运行下游任务,包括:
若当前节点的任务均为执行中或已完成的任务状态,并且:当前节点的任务与下游任务的任务类型均为流数据处理任务,且数据状态为已发送一条数据或全部数据发送完成;或者,当前节点的任务为流数据处理任务,下游任务为批处理任务,且数据状态为全部数据发送完成;或者,当前节点的任务为批处理任务,且数据状态为全部数据读取完成;则执行下游任务;否则,继续执行当前节点的任务。
9.根据权利要求8所述的数据处理任务协同控制调度***,其特征在于,所述数据处理任务运行单元基于所述下游任务的任务类型,适配下游任务所需的数据结构,包括:
如果下游任务是批数据处理任务,则将当前节点输出的数据生成为批数据结构记录后输出给下游任务;所述批数据结构为批数据的统一封装,包括:RecordSchema、datafile和fieldDelimiter;
如果下游任务是流数据处理任务,则将当前节点输出的数据生成流数据结构记录后输出给下游任务;所述流数据结构为流数据的统一封装,包括:RecordSchema、values和recordBytes。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211330158.6A CN115509721B (zh) | 2022-10-27 | 2022-10-27 | 一种数据处理任务协同控制调度方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211330158.6A CN115509721B (zh) | 2022-10-27 | 2022-10-27 | 一种数据处理任务协同控制调度方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115509721A CN115509721A (zh) | 2022-12-23 |
CN115509721B true CN115509721B (zh) | 2023-05-16 |
Family
ID=84513208
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211330158.6A Active CN115509721B (zh) | 2022-10-27 | 2022-10-27 | 一种数据处理任务协同控制调度方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115509721B (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8978034B1 (en) * | 2013-03-15 | 2015-03-10 | Natero, Inc. | System for dynamic batching at varying granularities using micro-batching to achieve both near real-time and batch processing characteristics |
CN112559143A (zh) * | 2020-12-04 | 2021-03-26 | 海南车智易通信息技术有限公司 | 任务调度方法、***及计算设备 |
CN114281508A (zh) * | 2021-12-29 | 2022-04-05 | 江苏达科信息科技有限公司 | 一种数据批流融合离线计算方法 |
-
2022
- 2022-10-27 CN CN202211330158.6A patent/CN115509721B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN115509721A (zh) | 2022-12-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104572122B (zh) | 一种软件应用数据的生成装置及方法 | |
CN108280023B (zh) | 任务执行方法、装置和服务器 | |
US20070192768A1 (en) | Computer processing and programming method using dynamic block, streaming and synchronizing data handling | |
CN115599524B (zh) | 一种基于流数据和批数据协同调度处理的数据湖*** | |
CN110472102A (zh) | 一种数据处理方法、装置、设备和存储介质 | |
US8418074B2 (en) | Shared user interface services framework | |
CN107038218B (zh) | 报表处理方法和*** | |
CN115033646B (zh) | 一种基于Flink&Doris构建实时数仓***的方法 | |
CN111949832A (zh) | 批量作业依赖关系的解析方法及装置 | |
CN110781180A (zh) | 一种数据筛选方法和数据筛选装置 | |
CN110196835A (zh) | 元数据的处理方法、元数据的处理装置以及电子设备 | |
CN115509721B (zh) | 一种数据处理任务协同控制调度方法及*** | |
CN108959458B (zh) | 数据生成和使用方法、***、介质及计算机设备 | |
CN116455956B (zh) | 一种基于消息中间件的数据采集和数据回放的方法和*** | |
CN110750362A (zh) | 生物信息的分析方法、装置和存储介质 | |
CN114968917A (zh) | 一种文件数据快速导入方法及装置 | |
CN113254187A (zh) | 测试数据的生成方法、装置、电子设备和存储介质 | |
CN113296847A (zh) | 一种基于自解析节点的工作流引擎的实现方法 | |
CN111813413B (zh) | 一种自动生成yaml文件的方法 | |
CN113282776B (zh) | 用于图形引擎资源文件压缩的数据处理*** | |
CN114900511B (zh) | 工业机器人数据同步采集加载中间件装置及方法 | |
JPS60256859A (ja) | フアイル伝送管理方式 | |
CN115328624A (zh) | 基于配置的触发式任务调度装置 | |
WO2023130569A1 (zh) | 产品测试方法、装置、计算机设备及存储介质 | |
CN115543431A (zh) | 一种基于轻量级的logstash*** |
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 |