CN113608891A - 分布式批处理系统、方法、计算机设备和存储介质 - Google Patents
分布式批处理系统、方法、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN113608891A CN113608891A CN202110813448.5A CN202110813448A CN113608891A CN 113608891 A CN113608891 A CN 113608891A CN 202110813448 A CN202110813448 A CN 202110813448A CN 113608891 A CN113608891 A CN 113608891A
- Authority
- CN
- China
- Prior art keywords
- batch
- polling
- distributed
- task
- sub
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 79
- 238000000034 method Methods 0.000 title claims description 27
- 230000007246 mechanism Effects 0.000 claims abstract description 61
- 238000003672 processing method Methods 0.000 claims abstract description 13
- 238000013439 planning Methods 0.000 claims description 21
- 238000004806 packaging method and process Methods 0.000 claims description 12
- 230000014509 gene expression Effects 0.000 claims description 10
- 239000010453 quartz Substances 0.000 claims description 10
- VYPSYNLAJGMNEJ-UHFFFAOYSA-N silicon dioxide Inorganic materials O=[Si]=O VYPSYNLAJGMNEJ-UHFFFAOYSA-N 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 7
- 240000008042 Zea mays Species 0.000 claims description 5
- 235000005824 Zea mays ssp. parviglumis Nutrition 0.000 claims description 5
- 235000002017 Zea mays subsp mays Nutrition 0.000 claims description 5
- 235000005822 corn Nutrition 0.000 claims description 5
- 238000012544 monitoring process Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 10
- 238000007726 management method Methods 0.000 description 7
- 230000002159 abnormal effect Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000011161 development Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000013467 fragmentation Methods 0.000 description 2
- 238000006062 fragmentation reaction Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 238000013468 resource allocation Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及分布式批量平台技术领域,公开了一种分布式批处理系统、方法、计算机设备和存储介质,包括批量调度中心,用于初始化不同轮询机制的轮询信息,当满足触发条件时执行触发条件所对应的轮询机制,对批量作业的执行状态进行轮询,获取批量作业中未处理的待分配作业的任务信息,将批量作业的任务信息传输至消息队列;批量运行中心,用于从消息队列中取出任务信息,根据任务信息对待分配作业进行多重分包处理,将若干个子包重新放入消息队列中。通过初始化设置多种不同的轮询机制,对批量作业的执行状态进行轮询,可以令技术人员及时掌握任务进度。将批量业务动态的分配到多机进行并行处理,提升了批量业务的处理效率、可靠性及扩展性。
Description
技术领域
本发明涉及分布式批量平台技术领域,特别是涉及一种分布式批处理系统、方法、计算机设备和存储介质。
背景技术
批处理是一种经典软件架构风格,即数据流风格。构件为一系列固定顺序的计算单元,构件之间只通过数据传递交互;每个处理步骤是一个独立的程序,每一步必须在其前一步结束后才能开始;数据必须是完整的,以整体的方式传递。随着IBM主机在银行业应用的普及,批处理任务在大型机中使用了几十年,直到今天很多大中型企业还在使用。
大型机能够从高速存储设备中处理千兆海量数据,应用批处理程序,产生出有价值的结果;批量数据可以在大型机中自动处理,并且不需要用户干预,在计算机中提交,成批的读入和处理,然后产生结果输出。考虑到单台大型机的限制,自建分布式批量平台就显得尤为重要。目前传统单机系统在批量作业运行期间,技术人员不知道已经完成的数据量,无法掌握进度,作业出现异常时,无法及时处理。
发明内容
基于此,有必要针对目前传统单机系统在批量作业运行期间,技术人员无法掌握作业进度的问题,提供一种分布式批处理系统、方法、计算机设备和存储介质。
一种分布式批处理系统,包括批量调度中心,用于初始化不同轮询机制的轮询信息,还用于当满足触发条件时执行所述触发条件所对应的轮询机制,对批量作业的执行状态进行轮询,获取所述批量作业中未处理的待分配作业的任务信息,将所述任务信息传输至消息队列;批量运行中心,用于从所述消息队列中取出所述任务信息,根据所述任务信息对所述待分配作业进行多重分包处理,得到若干个子包,将所述若干个子包重新放入消息队列中,所述多重分包处理是指按照多个维度对所述批量作业进行划分,以获取若干个子包。
上述分布式批处理系统,批量调度中心通过初始化设置多种不同的轮询机制,当满足触发条件时即启动对应的轮询机制,对批量作业的执行状态实时进行轮询,从而可以令技术人员及时掌握任务进度,并获取批量作业中未处理的待分配作业的任务信息,将任务信息传输至消息队列。批量执行中心通过从消息队列中获取批量调度中心上传的任务信息,根据任务信息执行对批量作业的分包任务,支持批量作业的灵活多重分包来满足大型数据量的执行需求。
在其中一个实施例中,所述分布式批处理系统包括多个批量调度中心和多个批量运行中心,多个批量调度中心同时运行时,通过quartz框架注册到批量计划任务配置表中,同一时间只有一个所述批量调度中心满足触发条件;多个批量运行中心同时从队列中争抢获取所述任务信息,争抢到所述任务信息的所述批量运行中心执行分包任务。
一种分布式批处理方法,初始化不同轮询机制的轮询信息;当满足触发条件时执行所述触发条件所对应的轮询机制,对批量作业的执行状态进行轮询,获取所述批量作业中未处理的待分配作业的任务信息;将所述批量作业的任务信息传输至消息队列;从所述消息队列中取出所述任务信息;根据所述任务信息对所述待分配作业进行多重分包处理,得到若干个子包,所述多重分包处理是指按照多个维度对所述待分配作业进行划分,以获取若干个子包;将所述若干个子包重新放入消息队列中。
在其中一个实施例中,初始化不同轮询机制的轮询信息包括根据批量系统参数配置表中的轮询信息初始化不同的轮询机制,根据批量计划任务配置表中的cron表达式控制各轮询机制之间间隔的时间。
在其中一个实施例中,所述轮询机制包括定时轮询、数据库轮询、文件轮询和作业归并轮询。
在其中一个实施例中,所述当满足触发条件时执行对应的轮询机制,对批量作业的执行状态进行轮询包括使用quartz框架设置定时轮询任务,若当前时间符合批量计划任务配置表中的corn表达式,则判断满足所述定时轮询的触发条件,对所述批量作业的执行状态进行定时轮询;执行上一次满足所述数据库轮询的触发条件时处理的结构化查询语句,若查询结果不为空则判断触发满足所述数据库轮询的触发条件,对所述批量作业的执行状态进行数据库轮询;判断上一次满足所述数据库轮询的触发条件时处理的配置文件是否存在,若存在则判断触发满足所述文件轮询的触发条件,对所述批量作业的执行状态进行文件轮询;当完成执行所述批量作业的所有子包后,根据批量平台库表状态判断是否存在已完成执行但尚未进行合并的子包,若存在则判断触发满足所述作业归并轮询的触发条件,对所述批量作业的执行状态进行作业归并轮询。
在其中一个实施例中,所述方法还包括定时查询批量系统参数配置表的版本号和批量计划任务配置表的版本号;若所述批量系统参数配置表版本号发生变化,则重新加载不同轮询机制的轮询信息;若所述批量计划任务配置表版本号变化,则重新加载定时轮询任务。
在其中一个实施例中,所述根据所述任务信息对所述批量作业进行分包处理包括遍历作业参数配置中的分割方式后,使用多线程有顺序地对所述批量任务进行分包处理。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任意一项实施例中所述的方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述任意一项实施例中所述的方法的步骤。
附图说明
为了更清楚地说明本说明书实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明其中一实施例的分布式批处理系统的结构框图;
图2为本发明其中一实施例的分布式批处理方法的方法流程示意图;
图3为本发明其中一实施例的对批量作业的执行状态进行轮询的方法流程示意图;
图4为本发明其中一实施例的定时检查配置表版本号的方法流程示意图;
图5为本发明其中一实施例的一种分布式批处理装置或系统S00的框图。
具体实施方式
为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的优选实施方式。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施方式。相反的,提供这些实施方式的目的是为了对本发明的公开内容理解得更加透彻全面。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
分布式批量平台是一种用于对外提供服务的基础平台,主要是为了给业务提供高效率、高性能的批处理服务。批处理是一种经典软件架构风格,即数据流风格。构件为一系列固定顺序的计算单元,构件之间只通过数据传递交互;每个处理步骤是一个独立的程序,每一步必须在其前一步结束后才能开始;数据必须是完整的,以整体的方式传递。随着业务量的增加以及业务数据的积累,原来运算速度很快的批处理作业,现在也变得非常缓慢。鉴于目前银行生产系统的后台作业存在“多、乱、杂”的问题,因而出现了应用难监控、难操作、难管理的情况。
本公开基于采用分布式的理念与业务架构解耦,通过对大数据量的业务数据进行切分,并通过多节点并行处理,来实现提供一种支持配置化管理的分布式批量平台。
图1为本发明其中一实施例的分布式批处理系统的结构框图,在其中一个实施例中,分布式批处理系统可以包括批量调度中心100和批量运行中心200。批量调度中心100用于初始化不同轮询机制的轮询信息,不同的轮询机制都对应有相应的触发条件。批量调度中心100还用于当满足触发条件时,执行触发条件相对应的轮询机制,对批量作业的执行状态进行轮询,以获取所述批量作业中未处理的待分配作业的任务信息。轮询(Polling)是一种CPU决策如何提供周边设备服务的方式,又称“程控输入输出”(Programmed I/O)。
批量调度中心100还可以将任务信息传输至消息队列MQ(Message Queue)中。批量运行中心200用于从消息队列MQ中取出任务信息。根据任务信息对待分配作业进行多重分包处理,得到若干个子包。多重分包处理是指按照多个维度对待分配作业进行划分,以获取若干个子包。批量运行中心200在分包完成后,还可以将获得的若干个子包重新放入消息队列MQ中,用于等待批量执行集群消费子包中的任务。
在其中一个实施例中,批量执行中心200使用SpringBatch框架执行批量任务,支持对待分配作业的多重分包并支持通过自定义的方式配置多重分包,来满足大型数据量的执行需求。SpringBatch框架是Spring提供的一个数据处理框架,是一款轻量的、全面的批处理框架,可以用于开发强大的日常运营的企业级批处理应用程序,企业域中的许多应用程序需要批量处理才能在关键任务环境中执行业务操作。
多重分包是指按照多个维度对批量作业进行划分。当批量的交易对应的数据明细数量过大,按照单一维度分包后每个子包的明细还是庞大时,可以进一步增加维度进行分包。多重分包可以控制分包后子包的大小,以满足性能需求。例如,按照机构类型的单一维度进行分包,可能会导致某一机构下数据过多而影响整体交易执行时间。可以通过根据机构类型、时间类型、任务类型等多种不同的维度进行分包,来保证子包的明细不会过于庞大,极大地提升了分布式批处理系统对批量业务的处理效率,令系统具备极高的可靠性。
上述分布式批处理系统,批量调度中心100通过初始化设置多种不同的轮询机制,当满足触发条件时即启动对应的轮询机制,对批量作业的执行状态实时进行轮询,从而可以令技术人员及时掌握任务进度,并获取批量作业中未处理的待分配作业的任务信息,将任务信息传输至消息队列。批量执行中心200通过从消息队列中获取批量调度中心100上传的任务信息,根据任务信息执行对批量作业的多重分包任务,支持批量作业的灵活分包来满足大型数据量的执行需求。
在其中一个实施例中,分布式批量系统还可以包括批量任务管理中心和集中监控平台。分布式批量系统可以将日终批量和联机批量整合在一起,在批量任务管理中心统一进行管理。通过将日终批量和联机批量批量整合在一起,有利于统一管理。当因为某种原因需要立即停止批量作业时,系统可以及时响应停止指令。集中监控平台的管理端功能更加全面,可以用于对作业运行、平台运行、调度计划进行监控,还用于对批量错误进行报警。集中监控平台的批处理服务功能界面能够筛选处于各种状态的任务,操作使用更加便捷,提升界面的用户友好度。
在本公开中分布式批量系统以基础平台的形式对外提供服务,支持集中部署和分布式部署。分布式批量系统建设目标是与业务架构解耦,提供动态资源调配、多维度分片策略、灵活的任务计划和便捷的可视化管理来高效地执行超大型数据集的批处理任务。在批量调度中心设置多种轮询机制,从而可以及时地掌握任务处理进度。丰富了批量任务管理中心的功能,增加了文件和配置化生成报表功能,使得批量业务的开发更加便捷和高效。
在其中一个实施例中,分布式批处理系统包括多个批量调度中心100和多个批量运行中心200。多个批量调度中心100和多个批量执行中心200实行争抢机制。多个批量调度中心100通过定时争抢触发批量任务的方式实现争抢机制;多个批量执行中心则通过争抢队列中批量任务的方式实现争抢机制。任一批量中心可以获取并处理批量任务且不影响其它中心的运行。
批量调度中心100通过quartz框架注册到批量计划任务配置表scheduler中。在多个批量调度中心100同时运行时,保证同一时间只有一个批量调度中心100满足触发条件。满足触发条件的批量调度中心100即视为争抢成功。多个批量运行中心200同时从队列中争抢获取任务信息,争抢到任务信息的批量运行中心执行分包任务,拿到任务信息的批量运行中心200即视为争抢成功。
Quartz框架是Job scheduling(作业调度)领域的一个开源项目。使用Quartz框架可以开发一个或者多个定时任务,每个定时任务可以单独指定执行的时间,例如每隔1小时执行一次、每个月第一天上午10点执行一次、每个月最后一天下午5点执行一次等。
通过实行争抢机制,可以保证多个批量调度中心100和多个批量执行中心200同时启动后,不同重复地执行相同的任务。当任意一个批量调度中心100或批量执行中心200出现问题时,不会影响其他批量中心的任务执行。同时,通过实行争抢机制,还可以保证多个批量调度中心100和多个批量执行中心200的并发效率,起到负载均衡的效果。
在一些公开的实施例中,批量调度中心100和批量执行中心200均支持容器化部署,通过对批量调度中心100和批量执行中心200进行容器化部署,可以灵活地分配资源。两大批量中心的争抢机制还能够完美地适配容器化部署后便捷的横向扩展和优雅下线的功能。优雅下线的功能是指,在同时下线批量调度中心100和批量执行中心200这两大批量中心时,批量调度中心100和批量执行中心200会先停止接收批量任务,并将当前正在处理的批量任务完成后才真正关闭,达到优雅下线的效果。
批量调度中心100和批量执行中心200通过实行争抢机制以及支持容器化部署等方式,实现了对集中监控平台的横向扩展。分布式批量平台可以灵活地根据业务数量、业务需求方便地扩容缩容,不断横向扩展以提升批处理性能,应对可能逐渐增加的数据量处理。分布式批量平台使用分布式并行计算技术构建的批量业务处理平台,通过标准化基础设施(x86主机、虚拟机、容器)组成的具有强大计算能力的集群,将批量业务智能、动态的分配到多机进行并行处理,极大地提升批量业务处理效率,且具备极高的可靠性及扩展性。
在其中一个实施例中,批量运行中心200还具有批量处理文件和配置化生成报表的功能,可以使得批量业务的开发更加的便捷和高效。
本公开还提供了一种分布式批处理方法,图2为本发明其中一实施例的分布式批处理方法的方法流程示意图,在其中一个实施例中,分布式批处理方法包括如下步骤S100至S600。
步骤S100:初始化不同轮询机制的轮询信息。
批量调度中心100支持多种不同的触发方式,相关库表中存储有轮询信息,根据相关库表中存储的轮询信息对各轮询机制的轮询信息进行初始化设置。其中,相关库表支持用户对轮询信息进行修改后,自动更新存储的相关轮询信息。
步骤S200:当满足触发条件时执行触发条件所对应的轮询机制,对批量作业的执行状态进行轮询,获取批量作业中未处理的待分配作业的任务信息。
不同的触发条件对应不同的轮询机制,因此不同的触发条件将对应触发不同的轮询机制。当满足触发条件后,批量调度中心100将执行触发条件对应的轮询机制。例如,当时间符合定时轮询的触发条件时,批量调度中心100将执行定时轮询。通过设计多种轮询机制,在批量作业运行期间,技术人员可以及时掌握已经完成的数据、及时掌握任务进度。经轮询发现批量作业中存在未处理的待分配作业时,获取该待分配作业的任务信息,批量运行中心200可以根据任务信息对待分配作业进行处理。在本公开的一些其他实施例中,当作业出现异常时,还可以获取异常信息,从而根据异常信息及时对异常情况进行处理。
步骤S300:将任务信息传输至消息队列。
批量调度中心100还可以将未处理的待分配作业的任务信息传输至消息队列MQ(Message Queue)中,以等待批量运行中心200消费任务信息。
步骤S400:从消息队列中取出任务信息。
批量运行中心200可以从消息队列MQ中取出任务信息。
步骤S500:根据任务信息对待分配作业进行多重分包处理,得到若干个子包,多重分包处理是指按照多个维度对待分配作业进行划分,以获取若干个子包。
批量运行中心200可以根据任务信息对待分配作业进行多重分包处理。多重分包是指按照多个维度进行划分。当批量的交易对应的数据明细数量过大,按照单一维度分包后每个子包的明细还是庞大时,可以进一步增加维度进行分包。多重分包可以控制分包后子包的大小,以满足性能需求。
步骤S600:将若干个子包重新放入消息队列中。
批量运行中心200在多重分包完成后,还可以将获得的子包重新放入消息队列MQ中,用于等待批量执行集群消费子包中的任务。
本公开中的分布式批量系统以基础平台的形式对外提供服务,支持集中部署和分布式部署。分布式批量系统建设目标是与业务架构解耦,提供动态资源调配、多维度分片策略、灵活的任务计划和便捷的可视化管理来高效地执行超大型数据集的批处理任务。在批量调度中心设置多种轮询机制,从而可以及时地掌握任务处理进度。丰富了批量任务管理中心的功能,增加了文件和配置化生成报表功能,使得批量业务的开发更加便捷和高效。
在其中一个实施例中,初始化不同轮询机制的轮询信息包括根据批量系统参数配置表中的轮询信息初始化不同的轮询机制,根据批量计划任务配置表中的cron表达式控制各轮询机制之间间隔的时间。批量平台启动时,根据批量系统参数配置表中的信息初始化四种轮询机制,以cron表达式控制轮询的时间。Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或7个域,每一个域代表一个含义,corn从左到右(用空格隔开):秒分小时月份中的日期月份星期中的日期年份,可以通过Cron表达式中各字符串的内容来修改各轮询机制之间间隔的时间。
批量计划任务配置表中记载了批量平台的多个数据源信息,数据库、文件、定时任务轮询规则、线程池的相关配置参数、默认的文件模板和柜员参数等信息。运行时,可以在网页上动态修改批量计划任务配置表中存储的平台相关参数。例如,0 0 12**?表示每天中午12点触发。
在其中一个实施例中,轮询机制包括定时轮询、数据库轮询、文件轮询和作业归并轮询。本公开中的分布式批量系统通过在调度中心设置多种轮询机制,可以保证在批量作业运行期间,通过多种方式获取作业执行状态,防止单一轮询机制可能会存在漏检的问题。技术人员可以及时获知已经完成的数据量,随时掌握作业进度。同时,当轮询中发现作业出现异常时,能够及时处理。
图3为本发明其中一实施例的对批量作业的执行状态进行轮询的方法流程示意图,在其中一个实施例中,当满足触发条件时执行对应的轮询机制,对批量作业的执行状态进行轮询包括如下步骤S210至S240。
步骤S210:使用quartz框架设置定时轮询任务,若当前时间符合批量计划任务配置表中的corn表达式,则判断满足定时轮询的触发条件,对批量作业的执行状态进行定时轮询。
在本公开的一些实施例中,通过quartz框架设置定时任务实时来实现轮询作业执行状态的目的。若当前时间符合计划配置表中的corn表达式规则,则判断满足定时轮询的触发条件。通过对批量作业的执行状态进行定时轮询,可以及时掌握任务进度,使得批量业务的开发更加的便捷和可靠。
步骤S220:执行上一次满足数据库轮询的触发条件时处理的结构化查询语句,若查询结果不为空则判断触发满足数据库轮询的触发条件,对批量作业的执行状态进行数据库轮询。
在本公开的一些实施例中,数据库轮询将轮询数据库中满足触发内容的数据。执行上一次满足数据库轮询的触发条件的SQL查询语句,根据查询结果判断是否满足此次数据库轮询的触发条件。SQL(Structured Query Language)一般指结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
若上一次触发条件的SQL查询语句的查询结果不为空,则判断触发满足此次数据库轮询的触发条件。对批量作业的数据库状态进行轮询。
步骤S230:判断上一次满足数据库轮询的触发条件时处理的配置文件是否存在,若存在则判断触发满足文件轮询的触发条件,对批量作业的执行状态进行文件轮询。
在本公开的一些实施例中,文件轮询是指对某一指定路径下的对应文件进行轮询。若如指定路径下检查到了相应的文件,则执行批量任务。即,判断上一次满足数据库轮询的触发条件时处理的配置文件是否仍然存在于该指定路径下。若该指定路径下仍然存在配置文件,则判断触发满足文件轮询的触发条件,对批量作业的执行状态进行文件轮询。
步骤S240:当完成执行批量作业的所有子包后,根据批量平台库表状态判断是否存在已完成执行但尚未进行合并的子包,若存在则判断触发满足作业归并轮询的触发条件,对批量作业的执行状态进行作业归并轮询。
在本公开的一些实施例中,作业轮询是指在完成执行批量作业的所有子包后,对批量作业的执行状态进行作业归并轮询。根据批量平台库表状态找出已执行完成、但尚未进行合并的子包,对上述子包执行作业归并操作。
本公开中的分布式批量系统增加了作业归并线程,并通过quartz框架设置定时任务实时轮询作业执行状态。通过在调度中心设置多种轮询机制,可以保证在批量作业运行期间,通过多种方式获取作业执行状态,防止单一轮询机制有限的检查效果影响系统的可靠性。技术人员可以及时获知已经完成的数据量,随时掌握作业进度。
在其中一个实施例中,根据任务信息对批量作业进行分包处理包括遍历作业参数配置中的分割方式后,使用多线程有顺序地对批量任务进行分包处理。批量平台执行中心从消息队列中取出批量任务,对批量任务进行前置处理。在完成批量任务的前置处理后,对其进行分包处理。
在对批量任务进行分包处理时,通过遍历作业参数配置中的分割方式,根据各个批量任务对应的分割方式使用多线程有顺序地对各个批量任务进行分包处理,以实现通过多种分割方式对数据明细进行分片。在分包完成后,重新将子包放入消息队列中,等待批量执行集群消费消息队列中缓存的子包任务。通过上述实施例中的处理方式,分布式批处理系统可以灵活地根据业务数量、业务需求方便地扩容缩容,不断横向扩展以提升批处理性能,应对可能逐渐增加的数据量处理。
图4为本发明其中一实施例的定时检查配置表版本号的方法流程示意图,在其中一个实施例中,所述方法还包括如下步骤S700至S900。
步骤S700:定时查询批量系统参数配置表的版本号和批量计划任务配置表的版本号。
在本公开的一些实施例中,集中监控平台将定时对批量系统参数配置表的版本号和批量计划任务配置表的版本号进行查询,判断批量系统参数配置表的版本号和批量计划任务配置表的版本号是否发生了变化。根据批量系统参数配置表的版本号和批量计划任务配置表的版本号是否发生了变化,可以判断批量系统参数配置表和批量计划任务配置表中的数据是否产生了修改。
步骤S800:若批量系统参数配置表版本号发生变化,则重新加载不同轮询机制的轮询信息。
当集中监控平台查询发现批量系统参数配置表的版本号与上一次查询时的版本号相比发生了变化,则可以判定批量系统参数配置表中的数据产生了修改。集中监控平台对此次查询时批量系统参数配置表的新的版本号进行记录,可以用于与下一次查询时的版本号进行比较。另外,集中监控平台还重新对四种轮询信息进行加载,以保证四种轮询机制中的轮询信息的实时性和准确性。
步骤S900:若批量计划任务配置表版本号变化,则重新加载定时轮询任务。
同样地,当集中监控平台查询发现批量计划任务配置表的版本号与上一次查询时的版本号相比发生了变化,则可以判定批量计划任务配置表中的数据产生了修改。集中监控平台对此次查询时批量计划任务配置表的新的版本号进行记录,可以用于与下一次查询时的版本号进行比较。另外,集中监控平台还重新加载定时轮询任务,以保证四种轮询机制执行动作的实时性和准确性。
在本公开的一些实施例中,为了提升执行效率,使用本地缓存对批量系统参数配置表和批量计划任务配置表进行存储,以保证批量系统参数配置表和批量计划任务配置表的实时性。
应该理解的是,虽然图2-图4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-图4中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于上述所述的分布式批处理方法实施例的描述,本公开还提供分布式批处理装置。所述装置可以包括使用了本说明书实施例所述方法的系统(包括分布式系统)、软件(应用)、模块、组件等并结合必要的实施硬件的装置。基于同一创新构思,本公开实施例提供的一个或多个实施例中的装置如下面的实施例所述。由于装置解决问题的实现方案与方法相似,因此本说明书实施例具体的装置的实施可以参见前述方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
可以理解的是,本说明书中上述方法、装置等的各个实施例均采用递进的方式描述,各个实施例之间相同/相似的部分互相参见即可,每个实施例重点说明的都是与其它实施例的不同之处。相关之处参见其他方法实施例的描述说明即可。
图5是根据一示例性实施例示出的一种分布式批处理装置或系统S00的框图。参照图5,分布式批处理装置或系统S00包括处理组件S20,其进一步包括一个或多个处理器,以及由存储器S22所代表的存储器资源,用于存储可由处理组件S20的执行的指令,例如应用程序。存储器S22中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件S20被配置为执行指令,以执行上述方法。
分布式批处理装置或系统S00还可以包括:电源组件S24被配置为执行分布式批处理装置或系统S00的电源管理,有线或无线网络接口S26被配置为将分布式批处理装置或系统S00连接到网络,和输入输出(I/O)接口S28。分布式批处理装置或系统S00可以操作基于存储在存储器S22的操作系统,例如Windows Server,Mac OS X,Unix,Linux,FreeBSD或类似。
在示例性实施例中,还提供了一种包括指令的计算机可读存储介质,例如包括指令的存储器S22,上述指令可由数据库查询装置或系统S00的处理器执行以完成上述方法。存储介质可以是计算机可读存储介质,例如,所述计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供一种计算机程序产品,所述计算机程序产品中包括指令,上述指令可由分布式批处理装置或系统S00的处理器执行以完成上述方法。
在本说明书的描述中,参考术语“有些实施例”、“其他实施例”、“理想实施例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特征包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性描述不一定指的是相同的实施例或示例。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以作出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种分布式批处理系统,其特征在于,包括:
批量调度中心,用于初始化不同轮询机制的轮询信息,还用于当满足触发条件时执行所述触发条件所对应的轮询机制,对批量作业的执行状态进行轮询,获取所述批量作业中未处理的待分配作业的任务信息,将所述任务信息传输至消息队列;
批量运行中心,用于从所述消息队列中取出所述任务信息,根据所述任务信息对所述待分配作业进行多重分包处理,得到若干个子包,将所述若干个子包重新放入消息队列中,所述多重分包处理是指按照多个维度对所述待分配作业进行划分,以获取若干个子包。
2.根据权利要求1所述的分布式批处理系统,其特征在于,所述分布式批处理系统包括多个批量调度中心和多个批量运行中心,
多个批量调度中心同时运行时,通过quartz框架注册到批量计划任务配置表中,同一时间只有一个所述批量调度中心满足触发条件;
多个批量运行中心同时从队列中争抢获取所述任务信息,争抢到所述任务信息的所述批量运行中心执行分包任务。
3.一种分布式批处理方法,其特征在于,包括:
初始化不同轮询机制的轮询信息;
当满足触发条件时执行所述触发条件所对应的轮询机制,对批量作业的执行状态进行轮询,获取所述批量作业中未处理的待分配作业的任务信息;
将所述任务信息传输至消息队列;
从所述消息队列中取出所述任务信息;
根据所述任务信息对所述待分配作业进行多重分包处理,得到若干个子包,所述多重分包处理是指按照多个维度对所述待分配作业进行划分,以获取若干个子包;
将所述若干个子包重新放入消息队列中。
4.根据权利要求3所述的分布式批处理方法,其特征在于,所述初始化不同轮询机制的轮询信息包括:
根据批量系统参数配置表中的轮询信息初始化不同的轮询机制,根据批量计划任务配置表中的cron表达式控制各轮询机制之间间隔的时间。
5.根据权利要求3所述的分布式批处理方法,其特征在于,所述轮询机制包括定时轮询、数据库轮询、文件轮询和作业归并轮询。
6.根据权利要求5所述的分布式批处理方法,其特征在于,所述当满足触发条件时执行对应的轮询机制,对批量作业的执行状态进行轮询包括:
使用quartz框架设置定时轮询任务,若当前时间符合批量计划任务配置表中的corn表达式,则判断满足所述定时轮询的触发条件,对所述批量作业的执行状态进行定时轮询;
执行上一次满足所述数据库轮询的触发条件时处理的结构化查询语句,若查询结果不为空则判断触发满足所述数据库轮询的触发条件,对所述批量作业的执行状态进行数据库轮询;
判断上一次满足所述数据库轮询的触发条件时处理的配置文件是否存在,若存在则判断触发满足所述文件轮询的触发条件,对所述批量作业的执行状态进行文件轮询;
当完成执行所述批量作业的所有子包后,根据批量平台库表状态判断是否存在已完成执行但尚未进行合并的子包,若存在则判断触发满足所述作业归并轮询的触发条件,对所述批量作业的执行状态进行作业归并轮询。
7.根据权利要求3所述的分布式批处理方法,其特征在于,所述方法还包括:
定时查询批量系统参数配置表的版本号和批量计划任务配置表的版本号;
若所述批量系统参数配置表版本号发生变化,则重新加载不同轮询机制的轮询信息;
若所述批量计划任务配置表版本号变化,则重新加载定时轮询任务。
8.根据权利要求3所述的分布式批处理方法,其特征在于,所述根据所述任务信息对所述批量作业进行分包处理包括:
遍历作业参数配置中的分割方式后,使用多线程有顺序地对所述批量任务进行分包处理。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求3至8中任意一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求3至8中任意一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110813448.5A CN113608891A (zh) | 2021-07-19 | 2021-07-19 | 分布式批处理系统、方法、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110813448.5A CN113608891A (zh) | 2021-07-19 | 2021-07-19 | 分布式批处理系统、方法、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113608891A true CN113608891A (zh) | 2021-11-05 |
Family
ID=78337868
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110813448.5A Pending CN113608891A (zh) | 2021-07-19 | 2021-07-19 | 分布式批处理系统、方法、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113608891A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116302450A (zh) * | 2023-05-18 | 2023-06-23 | 深圳前海环融联易信息科技服务有限公司 | 任务的批处理方法、装置、计算机设备及存储介质 |
CN118093147A (zh) * | 2024-04-29 | 2024-05-28 | 浙江农商数字科技有限责任公司 | 一种基于任务链和分治法的海量数据汇总方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106126354A (zh) * | 2016-06-21 | 2016-11-16 | 中国建设银行股份有限公司 | 一种异步批量处理方法及系统 |
CN112445598A (zh) * | 2020-12-07 | 2021-03-05 | 建信金融科技有限责任公司 | 一种基于quartz的任务调度方法、装置、电子设备以及介质 |
-
2021
- 2021-07-19 CN CN202110813448.5A patent/CN113608891A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106126354A (zh) * | 2016-06-21 | 2016-11-16 | 中国建设银行股份有限公司 | 一种异步批量处理方法及系统 |
CN112445598A (zh) * | 2020-12-07 | 2021-03-05 | 建信金融科技有限责任公司 | 一种基于quartz的任务调度方法、装置、电子设备以及介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116302450A (zh) * | 2023-05-18 | 2023-06-23 | 深圳前海环融联易信息科技服务有限公司 | 任务的批处理方法、装置、计算机设备及存储介质 |
CN116302450B (zh) * | 2023-05-18 | 2023-09-01 | 深圳前海环融联易信息科技服务有限公司 | 任务的批处理方法、装置、计算机设备及存储介质 |
CN118093147A (zh) * | 2024-04-29 | 2024-05-28 | 浙江农商数字科技有限责任公司 | 一种基于任务链和分治法的海量数据汇总方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10545789B2 (en) | Task scheduling for highly concurrent analytical and transaction workloads | |
Ding et al. | Improving optimistic concurrency control through transaction batching and operation reordering | |
US11182353B2 (en) | Stored-procedure execution method and device, and system | |
EP2721489B1 (en) | Software virtual machine for acceleration of transactional data processing | |
US8424003B2 (en) | Unified job processing of interdependent heterogeneous tasks using finite state machine job control flow based on identified job type | |
KR20140080434A (ko) | 맵리듀스 프레임워크에서 데이터 프로세싱의 최적화를 위한 디바이스 및 방법 | |
US20020188594A1 (en) | Framework and methods for dynamic execution of digital data processor resources | |
EP3226133A1 (en) | Task scheduling and resource provisioning system and method | |
US20060080666A1 (en) | Method and system for scheduling jobs based on resource relationships | |
GB2508503A (en) | Batch evaluation of remote method calls to an object oriented database | |
CN113608891A (zh) | 分布式批处理系统、方法、计算机设备和存储介质 | |
US11372871B1 (en) | Programmable framework for distributed computation of statistical functions over time-based data | |
US10621000B2 (en) | Regulating enterprise database warehouse resource usage of dedicated and shared process by using OS kernels, tenants, and table storage engines | |
CN111061762A (zh) | 分布式任务处理方法、相关设备、系统及存储介质 | |
CN101751288A (zh) | 应用进程调度的方法、设备及系统 | |
US8458136B2 (en) | Scheduling highly parallel jobs having global interdependencies | |
CN112367363A (zh) | 一种信息共享方法、装置、服务器及存储介质 | |
Cafaro et al. | Preference–based matchmaking of grid resources with cp–nets | |
EP3422183B1 (en) | Managing parallel processing | |
CN115495221A (zh) | 一种数据处理系统及方法 | |
Jin et al. | Ditto: Efficient serverless analytics with elastic parallelism | |
US20220413906A1 (en) | Method, device, and program product for managing multiple computing tasks based on batch | |
US20200301737A1 (en) | Configurable data parallelization method and system | |
US7174404B2 (en) | Updating spin counters for spin latches | |
Park et al. | Qaad (query-as-a-data): Scalable execution of massive number of small queries in spark |
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 |