System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于批流一体数据处理领域,尤其涉及一种基于中间数据的任务断点重跑方法及系统。
技术介绍
1、随着大数据技术的不断发展,数据结构越来越多元化(包括结构化、非结构化、半结构化),数据存储场景变得越来越复杂(离线存储、实时生产和消费等)。许多系统既需要处理海量的离线数据,也需要实时快速的计算流式数据。为了适应各种类型和不同场景的数据要求,异构多元的大数据批流一体处理引擎应运而生,它将批处理和流处理进行了融合,既能处理实时性要求不高的有界的海量批数据,也能处理时效性要求高的并发流量大的流数据。
2、在批流一体数据处理系统中,往往一个数据处理作业由许多个任务算子在不同分支串联而成,如图2为一个数据处理作业的示例:一个任务由数据输入任务算子,经过数据分发任务算子、数据过滤任务算子、数据转换任务算子、数据计算任务算子、数据清洗任务算子、数据合并任务算子,最后到数据输出任务算子。为了确保处理效率,任务算子和任务算子之间对数据流式执行,数据输入任务算子读取到一批数据,会马上发送到下游,以此类推,形成了一个以数据驱动的任务算子流。
3、这种基于任务算子构成的任务在运行过程中,经常会遇到各种异常导致任务算子的主动和被动终止,如数据输出源连接失败、数据类型转换失败、节点宕机、手动终止任务等情况。为了确保数据的准确、一致性,一般会选择重跑整个流程,但是在海量、高并发流式数据面前,重跑整个流程会出现数据丢失、数据重复、处理效率低下等诸多问题。在现有技术中,业界有部分方案通过记住数据输入源头的偏移量来重跑,但此类方案一方面对
技术实现思路
1、鉴于上述的分析,本专利技术旨在提供一种基于中间数据的任务断点重跑方法及系统,通过记录批流一体数据处理任务中各任务算子的执行情况以及相应的中间数据,实现当任务失败时基于中间数据进展任务断点重跑,提升了数据处理任务的处理效率,同时能避免数据丢失、数据重复等问题。
2、一方面,本专利技术提供一种基于中间数据的任务断点重跑方法,具体包括如下步骤:
3、基于数据处理任务确定相应的dag图,dag图用于表示执行所述任务的各任务算子的执行顺序和执行方向;
4、基于dag图执行数据处理任务,执行时记录输入数据在相应数据源中的偏移位置、各任务算子的执行结果标志,记录执行成功的任务算子形成的中间数据并标记相应算子的执行结果标志为成功,标记执行失败的任务算子的执行结果标志为失败;其中,所述输入数据为从相应数据源中持续读取的批数据或流数据;
5、在所述任务执行失败时,基于所述执行结果标志以及所述偏移位置或中间数据执行任务断点重跑。
6、进一步的,所述基于数据处理任务确定相应的dag图包括:
7、基于所述任务的各任务算子确定dag图的各节点,其中各任务算子与各节点一一对应;
8、基于所述各任务算子相互间的上下游关系确定dag图各节点的连线关系;
9、基于所述各节点和相应连线关系确定dag图。
10、进一步的,所述记录执行成功的任务算子形成的中间数据包括:
11、将执行成功的任务算子相应的输出数据作为中间数据;
12、使用中间数据存储引擎存储所述中间数据,并清除存储的上游任务算子的相应中间数据;
13、基于所述中间数据的存储位置信息建立存储索引;所述存储索引用于读取得到相应的待执行的中间数据。
14、进一步的,所述存储索引为顺序递增的稀疏索引。
15、进一步的,执行数据处理任务时,除第一个任务算子外,其他各任务算子基于其相邻上游任务算子提供的所述存储索引从所述中间数据存储引擎读取相应中间数据作为输入。
16、进一步的,所述基于所述执行结果标志以及所述偏移位置或中间数据执行任务断点重跑包括:
17、遍历各任务算子的执行结果标志,将存在失败执行结果标志的任务算子确定为失败算子:
18、若失败算子为第一个任务算子,则基于所述偏移位置从相应数据源中读取输入数据执行任务断点重跑;
19、否则所述失败算子基于失败时输入该任务算子的所述存储索引读取相应中间数据执行任务断点重跑。
20、进一步的,所述输入数据为实时流数据、离线非结构化文件或离线结构化数据;所述记录输入数据在相应数据源中的偏移位置包括:
21、对于实时流数据,基于消费的偏移量确定输入数据在数据源中的偏移位置;
22、对于离线非结构化文件,基于文件id、文件所属账号信息和文件全路径确定输入数据在数据源中的偏移位置;
23、对于离线结构化数据,基于输入数据的数据行号、业务时间或主键确定输入数据在数据源中的偏移位置。
24、进一步的,对于离线非结构化文件,使用md5算法基于文件id、文件所属账号信息和文件全路径确定输入数据在数据源中的偏移位置。
25、另一方面,本专利技术提供了一种基于中间数据的任务断点重跑系统,包括:
26、任务配置模块,用于基于数据处理任务确定相应的dag图,dag图用于表示执行所述任务的各任务算子的执行顺序和执行方向;
27、任务执行模块,用于基于dag图执行数据处理任务,执行时记录各任务算子形成的执行结果标志;输入数据为从数据源持续读取的批数据或流数据;
28、中间数据存储模块,用于存储执行成功的任务算子形成的中间数据;
29、任务断点重跑模块,用于在所述任务执行失败时,基于所述执行结果标志以及所述偏移位置或中间数据确定任务断点执行任务断点重跑。
30、进一步的,所述中间数据存储模块存储执行成功的任务算子的输出数据作为该任务算子的中间数据;同时清除该任务算子的上游任务算子的相应中间数据。
31、本专利技术至少可以实现下述之一的有益效果:
32、通过使用中间数据存储引擎,适配各种异构的数据源的断点问题,以及融合各种计算、转换任务临时输出数据的断点问题。通过将批流处理引擎结合中间数据,能实现任务级别和流程级别的统一事务管理,保证了数据的强一致性,为大数据作业处理提供了高效、稳定、幂等的技术架构。
33、通过对中间数据建立稀疏存储索引和对数据处理任务的输入数据记录在相应数据源中的偏移位置,实现在进行断点重跑时能准确读取输入数据和中间数据,避免数据重复和数据丢失。
34、本专利技术的其他特征和优点将在随后的说明书中阐述,并且,部分优点可从说明书中变得显而易见,或者通过实施本专利技术而了解。本专利技术的目的和其他优点可通过说明书、权利要求书以及附图中所特别指出的内容中来实现和获得。
本文档来自技高网...【技术保护点】
1.一种基于中间数据的任务断点重跑方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的任务断点重跑方法,其特征在于,所述基于数据处理任务确定相应的DAG图包括:
3.根据权利要求2所述的任务断点重跑方法,其特征在于,所述记录执行成功的任务算子形成的中间数据包括:
4.根据权利要求3所述的任务断点重跑方法,其特征在于,所述存储索引为顺序递增的稀疏索引。
5.根据权利要求3或4所述的任务断点重跑方法,其特征在于,执行数据处理任务时,除第一个任务算子外,其他各任务算子基于其相邻上游任务算子提供的所述存储索引从所述中间数据存储引擎读取相应中间数据作为输入。
6.根据权利要求5所述的任务断点重跑方法,其特征在于,所述基于所述执行结果标志以及所述偏移位置或中间数据执行任务断点重跑包括:
7.根据权利要求6所述的任务断点重跑方法,其特征在于,所述输入数据为实时流数据、离线非结构化文件或离线结构化数据;所述记录输入数据在相应数据源中的偏移位置包括:
8.根据权利要求7所述的任务断点重跑方法,其特征在于,对于
9.一种基于中间数据的任务断点重跑系统,其特征在于,包括:
10.根据权利要求9所述的任务断点重跑系统,其特征在于,所述中间数据存储模块存储执行成功的任务算子的输出数据作为该任务算子的中间数据;同时清除该任务算子的上游任务算子的相应中间数据。
...【技术特征摘要】
1.一种基于中间数据的任务断点重跑方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的任务断点重跑方法,其特征在于,所述基于数据处理任务确定相应的dag图包括:
3.根据权利要求2所述的任务断点重跑方法,其特征在于,所述记录执行成功的任务算子形成的中间数据包括:
4.根据权利要求3所述的任务断点重跑方法,其特征在于,所述存储索引为顺序递增的稀疏索引。
5.根据权利要求3或4所述的任务断点重跑方法,其特征在于,执行数据处理任务时,除第一个任务算子外,其他各任务算子基于其相邻上游任务算子提供的所述存储索引从所述中间数据存储引擎读取相应中间数据作为输入。
6.根据权利要求5所述的任务断点重跑方法,其特征在于,所述基于所...
【专利技术属性】
技术研发人员:李胜昌,杜宏博,谢志豪,李旭光,葛晋鹏,杨亮,李泽宇,邵鹏志,李皓,李晓政,纪沈江,鲁东民,徐天敕,张世超,
申请(专利权)人:中国兵器工业计算机应用技术研究所,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。