数据交互管理装置、跨库数据交互处理装置及方法与流程

文档序号:12121988阅读:166来源:国知局
数据交互管理装置、跨库数据交互处理装置及方法与流程
本发明涉及计算机数据处理
技术领域
,尤其涉及数据交互管理装置、跨库数据交互处理装置及方法。
背景技术
:大数据时代对计算机数据处理的性能提出了更高的要求,在数据处理的各个环节,如存储、批量、查询等方面都要求低成本高可用。通常的,企业会通过不同阶段采用不同类型数据库针对性地进行数据处理,以能更好地满足各方面要求。比如在数据批量环节运用大容量、处理速度快的数据库,在联机环节运用灵活性好、查找效率高的数据库,在数据存储环节使用价格便宜、读写速度快的数据库,这种方式的优势是能充分利用不同数据库的性能优势,但这种处理方式在数据交互方面仍存在一些问题,主要体现在:常用的数据交互方式采用时间触发机制,即上游数据库与下游数据库约定数据到位时间,时刻一到即触发下游数据库执行,这样做的风险在于当上游数据库供数异常时,下游数据库却在约定时刻触发了数据处理,导致了数据缺失、丢失等情况。另一种常用的数据交互方式是数据到齐扫描机制,即下游数据库定时扫描指定目录以检测上游数据是否已下达,下游数据库等待直至扫描到所有数据包到齐才启动数据处理。这种方式解决了数据丢失的问题,但对于系统整体的资源分配上却仍有缺陷,这是因为上游数据库与下游数据库是独立的执行体系,为缩短整体处理时间,依照“木桶效应”,上游各数据库会优先处理自身耗时较长的数据批次,这就导致了在上游耗时短但下游耗时长的数据批次被迫处于等待状态,造成了该批次整体处理总时长超过预计值,大大降低了系统资源的有效利用率。技术实现要素:本发明实施例提供一种数据交互管理装置,用以在确保数据准确性的同时,统筹整体系统资源,实现多数据库之间的数据交互,该数据交互管理装置包括作业管理单元、调度执行单元和系统监控单元;作业管理单元,用于管理作业信息,并在作业执行过程中记录作业运行情况,供调度执行单元访问;所述作业为跨库数据交互过程中的作业;调度执行单元,用于在监控扫描到上游数据库发出的控制信息后执行作业调度,从作业管理单元获取待执行的作业信息,从系统监控单元获取该作业的系统资源分配情况;若已分配系统资源,则根据从作业管理单元获取的作业信息执行该作业,并发起作业监控进程,所述作业监控进程将作业运行情况反馈给作业管理单元;系统监控单元,用于为各个作业分配系统资源,以及监控到异常后发起作业警报。一个实施例中,所述作业管理单元包括:作业信息管理单元,用于管理作业信息,所述作业信息包括作业信息表、作业运行情况记录表和作业运行历史情况记录表;作业依赖管理单元,用于管理作业依赖信息,通过作业依赖表构建依赖作业树,建立各作业之间的依赖关系;作业分块单元,用于通过作业块信息表管理作业块信息,作业块是对多个作业划分而形成。一个实施例中,所述作业分块单元进一步用于:对每个作业块设立优先级信息,所述优先级信息包括作业块的后续关键路径时间,所述作业块的后续关键路径时间用于调整作业块所需预留资源及最大资源;所述调度执行单元进一步用于按作业块的优先级信息执行作业调度。一个实施例中,所述作业分块单元进一步用于:从作业运行情况记录表中获取到当天所有作业的运行时间信息,计算每个作业当天运行的时长;从作业信息表中获取作业信息,确定后续关键路径时间确定的第一作业集合,及后续关键路径时间待定的第二作业集合;根据作业依赖表从第二作业集合中找寻只依赖第一作业集合中作业的作业,计算找寻到的作业的后续关键路径时间,将计算完成的作业从第二作业集合移到第一作业集合中,直至第二作业集合中全部作业的后续关键路径时间计算完成,将第二作业集合中全部作业移到第一作业集合中;更新作业信息表中作业的后续关键路径时间;从作业信息表中获取作业所属作业块信息,计算作业块的后续关键路径时间,将作业块的后续关键路径时间更新至作业块信息表中。一个实施例中,所述调度执行单元包括:控制信息监控单元,用于监控上游数据库发出的控制信息,在监控扫描到控制信息后更新作业管理单元所管理的作业信息;程序调用单元,用于调起下游数据库内的程序作业;数据库交互单元,用于维护数据库之间的数据交互;作业状态监控单元,用于在作业调起时监控作业状态,并在作业结束后更新作业管理单元所管理的作业信息。一个实施例中,所述数据库交互单元包括:数据导出单元,用于从数据库中导出为特定结构的数据文件;数据导入单元,用于将特定结构的数据文件导入至指定数据库;文件传输单元,用于将特定结构的数据文件从源数据库服务器传输至目标数据库服务器,并根据目标数据库的编码要求对数据文件进行转码。一个实施例中,所述作业状态监控单元包括:程序调用监控单元,用于监控程序调用单元的运行状态;数据导出监控单元,用于监控数据导出单元的运行状态;数据导入监控单元,用于监控数据导入单元的运行状态;文件传输监控单元,用于监控文件传输单元的运行状态。一个实施例中,所述系统监控单元包括:内存及线程管理单元,用于管理内存及线程的资源信息,监控每个数据库内存占用情况及作业调用线程数,为作业是否允许调用提供依据;调度警报单元,用于提供作业运行失败报警及作业运行超时报警。本发明实施例还提供一种跨库数据交互处理装置,用以在确保数据准确性的同时,统筹整体系统资源,实现多数据库之间的数据交互,该跨库数据交互处理装置包括上游数据库、下游数据库、多个应用系统和上述的数据交互管理装置;上游数据库与下游数据库连接,上游数据库用于将处理完成的数据输出给下游数据库,下游数据库用于对上游数据库提供的数据进行处理,处理完成后输出给各个应用系统;数据交互管理装置分别与上游数据库、下游数据库、各应用系统连接,用于协调跨库数据交互过程中的作业执行,以及监控作业运行状态。一个实施例中,所述多个应用系统包括计量系统和/或报表系统。本发明实施例还提供一种跨库数据交互处理方法,用以在确保数据准确性的同时,统筹整体系统资源,实现多数据库之间的数据交互,该跨库数据交互处理方法包括:上游数据库将处理完成的数据输出给下游数据库;在监控扫描到上游数据库发出的控制信息后执行跨库数据交互过程中的作业调度,获取待执行的作业信息及该作业的系统资源分配情况;若已分配系统资源,则根据获取的作业信息执行该作业,并发起作业监控进程;下游数据库根据调度,对上游数据库提供的数据进行处理,处理完成后输出给应用系统。一个实施例中,所述跨库数据交互处理方法还包括:对每个作业块设立优先级信息,所述优先级信息包括作业块的后续关键路径时间,所述作业块的后续关键路径时间用于调整作业块所需预留资源及最大资源;作业块是对多个作业划分而形成;所述执行作业调度包括按作业块的优先级信息执行作业调度。一个实施例中,所述对每个作业块设立优先级信息,包括:获取到当天所有作业的运行时间信息,计算每个作业当天运行的时长;获取作业信息,确定后续关键路径时间确定的第一作业集合,及后续关键路径时间待定的第二作业集合;从第二作业集合中找寻只依赖第一作业集合中作业的作业,计算找寻到的作业的后续关键路径时间,将计算完成的作业从第二作业集合移到第一作业集合中,直至第二作业集合中全部作业的后续关键路径时间计算完成,将第二作业集合中全部作业移到第一作业集合中;获取作业所属作业块信息,计算作业块的后续关键路径时间。一个实施例中,所述跨库数据交互处理方法还包括:管理内存及线程的资源信息,监控每个数据库内存占用情况及作业调用线程数,为作业是否允许调用提供依据;和/或,提供作业运行失败报警及作业运行超时报警。本发明实施例中,对作业信息进行统一管理,在监控扫描到上游数据库发出的控制信息后才执行作业调度,根据作业信息执行作业,可以在实现多数据库之间的数据交互时确保数据准确性;并且,在执行作业前先获取该作业的系统资源分配情况;若已分配系统资源,才执行该作业,可以在实现多数据库之间的数据交互时统筹整体系统资源。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:图1为本发明实施例中跨库数据交互处理装置的连接示意图;图2为本发明实施例中数据交互管理装置的内部示意图;图3为本发明实施例中作业管理单元1的内部示意图;图4为本发明实施例中调度执行单元2的内部示意图;图5为本发明实施例中系统监控单元3的内部示意图;图6为本发明实施例中数据库交互单元203的内部示意图;图7为本发明实施例中作业状态监控单元204的内部示意图;图8为本发明实施例中跨库数据交互处理方法的流程图;图9为本发明实施例中联合调度作业待运行状态流程图;图10为本发明实施例中联合调度整体调度流程图;图11为本发明实施例中系统监控流程图。具体实施方式为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。本发明实施例克服了不同类型数据库之间数据交互过程中数据完整性不足、系统资源分配不均匀的问题,提供了一种数据交互管理装置、跨库数据交互处理装置方法,实施时通过建立一种数据执行机制,统一管理各数据库的数据文件,并经由转化、同步、统一调度等方式,确保多库数据整体执行有序进行,有效解决了数据库之间的信息同步问题,同时还提供了资源分配的功能,避免作业资源分配不合理影响到整体调度的效率。下面根据各示意图进行具体说明。图1是本发明实施例提供的一种跨库数据交互处理装置的部署示意图,如图1所示,跨库数据交互处理装置包括:上游数据库、下游数据库、多个应用系统和数据交互管理装置,其中:上游数据库与下游数据库连接,上游数据库用于将处理完成的数据输出给下游数据库,下游数据库用于对上游数据库提供的数据进行处理,处理完成后输出给各个应用系统;数据交互管理装置分别与上游数据库、下游数据库、各应用系统连接,用于协调跨库数据交互过程中的作业执行,以及监控作业运行状态。上游数据库是指上游系统的数据库,上游系统可以理解为数据源系统,或者外购系统,负责提供数据的系统。下游数据库指的是下游系统的数据库,可以理解为依赖上游系统数据,有程序调用的系统。数据库最主要的作用是运行作业,返回控制信息给数据交互管理装置。控制信息可以是下传一个文本,也可以是事先约定好文件名规范的空文件。控制信息主要包括数据库提供的作业运行开始、结束时间、作业运行状态,监控数据库的系统资源等。发送的控制信息主要用于通知数据库调起作业。应用系统可以理解为应用下游系统数据的系统,例如在具体的实施例中,多个应用系统可以包括如计量系统和/或报表系统等。数据交互管理装置主要是是一种管理装置,它负责向各个数据库、应用系统发送控制信息,协调系统作业执行,但不负责具体的数据传输,属于一种系统架构的解决方案,以解决跨库数据交互处理的问题,解决不同数据库之间的联合调度统一管理、统一规划合理调度顺序的问题。实施时数据交互管理装置可以在监控到上游数据库发送的控制信息后,向下游各个数据库、应用系统发送控制信息,协调跨库数据交互过程中的作业执行。跨库数据交互过程中的作业也可称为系统作业,可以包括接收上游数据库发送的控制信息,维护上下游数据库之间数据交互,下游数据库的程序调用,下游数据库下传数据给应用系统等等,后文简称“作业”。数据交互管理装置还可以监控每个作业的运行状态并进行记录,以确保作业调度有序进行。数据交互管理装置还可以对每日作业运行情况进行分析,为后续作业运行优先级提供决策依据,最大限度缩短跨库系统运行的整体所需时间。需要说明的是,本发明实施例中上游数据库、下游数据库、应用系统均可进行扩展,上游数据库跟下游数据库也并非是一一对应的,上游数据库与下游数据库之间的关系也可以是多对多的,同样的下游数据库与应用系统的关系也可以是多对多的,具体应以实际配置为准。图2是本发明实施例提供的数据交互管理装置的结构示意图,如图2所示,数据交互管理装置包括:作业管理单元1、调度执行单元2和系统监控单元3,其中:作业管理单元1的功能主要为管理作业信息,并在作业执行过程中记录作业运行情况等,供调度执行单元2访问。该单元中存在各类表用于存储作业信息,包括作业依赖、源数据、调用程序等信息。调度执行单元2主要负责在监控扫描到上游数据库发出的控制信息后执行作业调度,通过作业管理单元1获取待执行的作业信息、同时调用系统监控单元3,以获取系统对该作业的资源分配情况。如系统已分配资源,允许作业执行,则调度执行单元2依照从作业管理单元1所获取的信息执行该作业,并发起相应的作业监控进程,作业监控进程将作业运行情况最终反馈给作业管理单元1。系统监控单元3的功能主要为系统级的信息监控,负责为各个作业分配系统资源,及监控到异常后发起作业警报。图3是作业管理单元1的结构示例图,如图3所示,作业管理单元1包括作业信息管理单元101、作业依赖管理单元102和作业分块单元103,其中:作业信息管理单元101主要负责管理作业信息,包括三张基础信息表:表1作业信息表、表2作业运行情况记录表、表3作业运行历史情况记录表。该作业信息也可以称为作业基本信息,具体内容见表1、表2和表3。其中,表1为作业信息表,用于记录作业所属的数据库、作业所属作业块、作业频度、作业当前运行状态等,具体字段描述见表1。需要说明的是,作业状态代表的是当前作业的实际状态,作业日期、作业待运行时间、作业开始时间、作业结束时间代表的是当前作业状态下的作业对应属性(运行成功或者运行失败,记录上次作业运行的属性;待运行或者正在运行,记录当前作业运行的属性)。表1、作业信息表表2为作业运行情况记录表,用于记录作业运行情况,和表1的区别在于表2记录每个作业日期的运行状态。需要说明的是,同一作业日期如果运行多次,表2只记录最新的一次,主要考虑重新加载作业的情况只记录最新的记录。表2的记录信息将在系统结束作业999中起重要作用,后续作详细说明。表2作业运行情况记录表表3为作业运行历史情况记录表,用于记录作业运行情况,和表2的区别在于同一作业日期如果运行多次,表2只记录最新的一次,表3全部记录,表3可以当作日志表,记录作业运行的所有痕迹。表3作业运行历史情况记录表需要说明的是,上述表结构设计针对一个作业每天只需加载一次,如果有需求一个作业加载多次,可以将表1、表2、表3中的作业日期字段扩充为作业日期+批次字段,批次字段为该作业当天加载的批次。作业依赖管理单元102主要负责管理作业依赖信息,通过作业依赖表构建依赖作业树,建立起各作业之间的依赖关系。当前作业在其依赖作业完成后才能执行。表4作业依赖表作业分块单元103主要管理作业块信息,作业块是对多个作业划分而形成,如一般依据作业频度或者按业务需求类别圈定的多个作业进行划分。在具体的实施例中,作业分块单元还可以对每个作业块设立优先级信息,优先级信息包括作业块的后续关键路径时间,作业块的后续关键路径时间用于调整作业块所需预留资源及最大资源;调度执行单元可以按作业块的优先级信息执行作业调度。优先级信息还可以包括每个作业块的预留线程数等其他优先级信息。在系统中可以对每个作业块设立自身的优先级。一个作业块可能需要在不同数据库上分别部署作业,同时作业之间还存在依赖关系,在系统资源达到阈值上限时根据后续关键路径时间安排作业块执行顺序,使整体作业块运行过程中充分利用系统资源,降低整体作业块所需时间。表5作业块信息表在具体的实施例中,每个上游控制信息对应一个作业,作为起始作业的依赖作业,接收到上游控制信息后更新该作业状态。另外需要设定一个系统结束作业,如999,该作业号和其他作业没有实际关联,也不属于任何一个作业块。系统结束作业是每天最后一个运行的作业,代表当天作业全部运行结束,因此表4作业依赖表中,系统结束作业被设定为依赖于所有其他作业。在系统结束作业999中,计算当天每个作业的后续关键路径时间、当天每个作业块的后续关键路径时间。作业的后续关键路径时间是系统判断作业优先级的重要判断标准,其具体作用描述见系统监控单元3。作业块后续关键路径时间可以作为作业优先级的参考依据,可以根据此数据来调整作业块所需预留资源及最大资源。作业块后续关键路径时间计算方法例如可以包括:1)从作业信息管理单元101表2作业运行情况记录表中获取到当天所有作业的运行时间信息,计算每个作业当天运行的时长:作业时长为作业结束时间-作业待运行时间。2)从作业信息管理单元101表1作业信息表中获取作业信息,并设定两个集合,一个集合为后续关键路径时间确定的作业集合A,另一个集合为后续关键路径时间待定的作业集合B。一开始集合A中只包含系统结束作业999,集合B中包含其他所有作业。3)根据作业依赖管理单元102表4作业依赖表从集合B中找寻只依赖集合A中作业的作业,假设找到一个符合条件的作业B1,依赖集合A中的A1、A2……以及系统结束作业999,那么B1的后续关键路径时间=B1的作业运行时长+MAX(A1后续关键路径时间,A2后续关键路径时间,……),其中系统结束作业999的后续关键路径时间默认为0。然后将B1从集合B移到集合A中。4)循环执行3),一开始找到只依赖系统结束作业999的作业,直至所有集合B中作业全部移到集合A中,所有作业的后续关键路径时间全部运算完成。5)将作业的后续关键路径时间更新至作业信息管理单元101表1作业信息表中。6)计算作业块后续关键路径时间:获取作业信息管理单元101表1作业信息表中的作业所属作业块信息,作业块的后续关键路径时间=MAX(属于该作业块的作业后续关键路径时间),将作业块后续关键路径时间更新至作业分块单元103作业块信息表中。图4为调度执行单元2的结构示例图,该单元主要负责执行作业调度及监控作业调度状态,如图4所示,调度执行单元2可以包括控制信息监控单元201、程序调用单元202、数据库交互单元203和作业状态监控单元204,其中:控制信息监控单元201的功能为:监控上游数据库发出的控制信息,在监控扫描到控制信息后更新作业管理单元所管理的作业信息。每个接收上游控制信息的步骤作为一个单独作业。该单元存在一个进程,该进程不断扫描上游控制信息,进程扫描到控制信息后,更新作业信息管理单元101中的表1作业信息表、表2作业运行情况记录表和表3作业运行历史情况记录表中对应作业的作业状态。而接收上游控制信息的作业在作业依赖单元102中维护为起始作业的依赖。通过这种方法来保证与上游数据库系统调度的有序运行。程序调用单元202的功能为:调起下游数据库内的程序作业,例如异步调起单个数据库内部的程序作业,具体执行可参考后文图9联合调度整体调度流程中的叙述。数据库交互单元203的功能为:维护数据库之间的数据交互,例如包括了数据导出、数据传输与译码、数据导入,具体执行可参考后文图6数据库交互单元203的示例。作业状态监控单元204的功能为:当作业调起时监控作业状态,并在作业结束后更新作业信息管理单元101中的作业状态。包括了程序调用监控、数据导出监控、数据传输与译码监控、数据导入监控,具体执行可参考后文图7作业状态监控单元204的示例。图6为数据库交互单元203的结构示例图,如图6所示,数据库交互单元203可以包括数据导出单元2031、数据导入单元2032和文件传输单元2033,其中:数据导出单元2031负责从数据库中导出为特定结构的数据文件;数据导入单元2032负责将特定结构的数据文件导入至指定数据库;文件传输单元2033负责将特定结构的数据文件从源数据库服务器传输至目标数据库服务器,并根据目标数据库的编码要求对数据文件进行转码。其中,特定结构依据数据库的类型不同而不同,可以为文件、压缩包、及使用特定工具开发的加密文件等。数据库交互作业需要在作业信息管理单元101表1作业信息表中维护3个独立的作业,分别代表数据导出、文件传输、数据导入,如881、882、883。这3个作业存在的依赖关系也需要维护在作业依赖管理单元102的作业依赖表中。3个作业将分别被数据导出单元2031、数据导入单元2032、文件传输单元2033调用。图7为作业状态监控单元204的结构示例图,该单元负责在作业调起时监控作业状态,并在作业运行时将作业状态维护到作业信息管理单元101的表1作业信息表、表2作业运行情况记录表和表3作业运行历史情况记录表中。如图7所示,作业状态监控单元204可以包括程序调用监控单元2041、数据导出监控单元2042、数据导入监控单元2043和文件传输监控单元2044,其中:程序调用监控单元2041负责监控程序调用单元202的运行状态,可以通过监控数据库中的日志表实现;数据导出监控单元2042负责监控数据导出单元2031的运行状态,可以通过动态监控导出日志实现;数据导入监控单元2043负责监控数据导入单元2032的运行状态,可以通过动态监控导入日志实现;文件传输监控单元2044负责监控文件传输单元2033的运行状态,可以通过动态监控传输标志实现。上述各单元获取的运行情况更新到作业信息管理单元101中的表1作业信息表、表2作业运行情况记录表、表3作业运行历史情况记录表中。图5为系统监控单元3的结构示例图,该单元主要负责分配系统资源、设定警报机制,如图5所示,系统监控单元3可以包括内存及线程管理单元301和调度警报单元302,其中:内存及线程管理单元301的功能为:管理内存及线程的资源信息,监控每个数据库内存占用情况及作业调用线程数,为后续作业是否允许调用提供依据,可以将所管理和监控的信息维护在表6系统控制表和表7系统监控表中。其中,表6系统控制表,用于管理各个数据库的内存及线程阈值。表6系统控制表:序号域名备注1数据库主键2数据库最大占用内存占用内存最大占比3数据库最大线程启用线程最大个数表7系统监控表,用于记录当前每个数据库下各个作业的进程号,给系统监控统计当前各个数据库、各个作业块的进程及线程的使用情况提供依据,需要说明的是,占用内存是在系统实际监控时点,由系统监控程序通过进程号调用操作系统接口获取当时该进程实际占用的内存。该表另外的作用在于如果作业超时或者需要重新加载作业,需要首先检查该表,通过作业依赖管理单元102的作业依赖表,将作业的后续依赖作业进程及对应监控进程全部终止,然后才能发起作业重新调度。表7系统监控表序号域名备注1数据库主键2作业块主键3作业号主键4进程号作业调用进程号5监控进程号对应作业监控进程号6占用内存作业占用内存占比调度报警单元302的功能为:分别提供作业运行失败报警及作业运行超时报警。当作业状态监控单元204监控到作业满足报警条件,即调用调度报警单元302进行调度报警。调度报警单元302通过表8调度报警表储存调度报警信息,通过系统报警监控进程维护调度报警记录,通过系统报警上报进程上报报警信息。表8调度报警表系统报警进程执行原则如下:系统报警进程循环扫描表1作业信息表正在运行的作业,如果系统当前时间-作业开始时间大于超时阈值,则在调度报警表中新建记录,报警标志为作业超时。系统报警进程循环扫描表1作业信息表运行失败的作业,如果调度报警表中没有记录,则新增记录,否则失败次数+1。如果失败次数超过失败次数阈值,并更新报警标志为失败超出阈值;如果未超过阈值,报警标识更新为不报警,将表1作业信息表中作业状态更新为待运行,同步更新待运行时间,清楚作业开始时间,同步新增表2作业运行情况记录表、表3作业运行历史情况记录表记录。系统报警上报进程循环扫描调度报警表未报警的记录,如果报警标识为失败超出阈值或者为作业超时,则发起系统报警,并将表8中是否已报警调整为已报。基于同一发明构思,本发明实施例中还提供了一种跨库数据交互处理方法,如下面的实施例所述。由于跨库数据交互处理方法解决问题的原理与跨库数据交互处理装置相似,因此跨库数据交互处理方法的实施可以参见跨库数据交互处理装置的实施,重复之处不再赘述。本发明实施例中跨库数据交互处理方法可以包括:上游数据库将处理完成的数据输出给下游数据库;在监控扫描到上游数据库发出的控制信息后执行跨库数据交互过程中的作业调度,获取待执行的作业信息及该作业的系统资源分配情况;若已分配系统资源,则根据获取的作业信息执行该作业,并发起作业监控进程;下游数据库根据调度,对上游数据库提供的数据进行处理,处理完成后输出给应用系统。在具体的实施例中,该跨库数据交互处理方法还可以包括:对每个作业块设立优先级信息,所述优先级信息包括作业块的后续关键路径时间,所述作业块的后续关键路径时间用于调整作业块所需预留资源及最大资源;作业块是对多个作业划分而形成;所述执行作业调度包括按作业块的优先级信息执行作业调度。在具体的实施例中,所述对每个作业块设立优先级信息,可以包括:获取到当天所有作业的运行时间信息,计算每个作业当天运行的时长;获取作业信息,确定后续关键路径时间确定的第一作业集合,及后续关键路径时间待定的第二作业集合;从第二作业集合中找寻只依赖第一作业集合中作业的作业,计算找寻到的作业的后续关键路径时间,将计算完成的作业从第二作业集合移到第一作业集合中,直至第二作业集合中全部作业的后续关键路径时间计算完成,将第二作业集合中全部作业移到第一作业集合中;获取作业所属作业块信息,计算作业块的后续关键路径时间。在具体的实施例中,该跨库数据交互处理方法还可以包括:管理内存及线程的资源信息,监控每个数据库内存占用情况及作业调用线程数,为作业是否允许调用提供依据;和/或,提供作业运行失败报警及作业运行超时报警。下面结合表1~表8,对跨库数据交互处理方法的具体实施进行举例说明。图8为本例中跨库数据交互处理方法的流程图,具体步骤如下:步骤1:获取上游数据库系统发送的控制信息,并更新表1作业信息表对应的作业状态。步骤2:通过不断扫描表1作业信息表,并访问表2作业运行情况记录表、表4作业依赖表获取依赖作业完成信息,在表1中将所有符合条件,即所有依赖作业已完成的作业状态置为待运行,具体流程可参见图9。步骤3:通过不断扫描表1作业信息表,获取状态为待运行的作业号,以作业号为主键访问表5作业块信息表、表6系统控制表、表7系统监控表,检查调用该作业号是否符合预设系统资源要求,具体流程可参见图10。步骤4:执行符合条件的联合调度,即步骤3中获取的待运行且符合预设系统资源要求的作业,并调起相关监控线程。步骤5:执行完成后向下游数据库系统提供控制信息,通知下游数据库系统可以开始进行批量调度。图9为本例中联合调度作业待运行的状态流程图,具体步骤如下:步骤101:访问表1作业信息表,获取运行成功的作业号,获取该作业号对应的上次作业批量日期,得到本次批量日期。步骤102:访问表4作业依赖表及表2作业运行情况记录表,获取当前作业的依赖作业该批量日期下是否已全部完成。“是”则转到步骤103,否则转到步骤104。步骤103:更新作业状态,将表1作业信息表中该作业状态更新为待运行,批量日期更新为本次批量日期,更新待运行开始时间;同步新增表2作业运行情况记录表、表3作业运行历史情况记录表记录。步骤104:访问表1作业信息表,获取下一个运行成功的作业号。图10为本例中联合调度整体调度的流程图,具体步骤如下:步骤201:访问表1作业信息表,获取当前待运行的作业号。步骤202:访问系统监控单元3,获取当前作业是否允许调用(具体流程可参见图11说明)。判断为“是”则转到步骤203;“否”则转到步骤204。步骤203:将表1作业信息表对应作业的作业状态更新为正在运行,更新批量开始时间,同步更新表2作业运行情况记录表、表3作业运行历史情况记录表。步骤204:访问表1作业信息表获取下一个待运行作业号,跳转至步骤201进行循环处理。步骤205:如果步骤203得到的作业类型是程序调用,则访问程序调用单元202及作业状态监控单元204,异步调起程序并同时调用对应的程序监控,然后转到步骤204。如果步骤203得到的作业类型是数据库交互,则访问数据库交互单元203及作业状态监控单元204,异步按顺序调起数据库交互程序并同时调用对应的监控,然后转到步骤204。如果步骤203得到的作业类型是通知下游系统,则访问数据库交互单元203及作业状态监控单元204,将控制信息及数据文件下传给下游系统,并同时调用对应的监控,然后转到步骤204。上述异步状态调用完成后,表7系统监控表中记录程序调用作业监控状态进程及对应监控程序调用进程。作业监控状态进程动态监控作业运行情况,如果监控到作业运行完成,将表1作业信息表对应作业的作业状态更新为最新状态,更新批量结束时间,同步更新表2作业运行情况记录表、表3作业运行历史情况记录表。图11为本例中系统监控流程图,具体步骤如下:步骤301:获取当前准备运行的作业号。步骤302:访问表1作业信息表,获取作业所属数据库服务器,然后访问表6系统控制表检查内存及线程根据进程号获取系统监控表中服务器上各作业目前所占内存,检查服务器上系统作业所占内存是否超出阈值,“是”则转到步骤304,否则转到步骤303。步骤303:访问表6系统控制表检查,检查服务器上系统作业数是否超出最大线程数,“是”则转到步骤304,否则转到步骤305。步骤304:返回信息“该作业目前不允许调用”。步骤305:访问表5作业块信息表,获取作业分块号、其他作业分块需要预留内存占比、作业分块最大内存占比,再检查表7系统监控表目前作业分块内存占比,得到作业分块内存是否达到阈值,“是”则转到步骤304,否则转到步骤306。步骤306:访问表5作业块信息表,获取该作业分块号、其他作业分块需要预留线程数、作业分块最大线程数,再检查表7系统监控表目前作业分块线程数,得到作业分块线程是否达到阈值,“是”则转到步骤304,否则转到步骤307。步骤307:访问表1作业信息表,判断作业是否是待运行作业下后续关键路径时间最长的作业,“是”则转到步骤308,否则转到步骤304。步骤308:返回该作业目前允许调用。综上所述,本发明实施例建立了一种联合调度机制、解决了在多种数据库系统中,数据交互数据丢失、系统整体资源利用率差的问题,具体优点为:1、提供多数据库的统一调度,解决数据库之间交互数据丢失问题,支持用户利用不同数据库的优势进行系统设计。2、对多数据库调度进行统一管理,充分利用系统整体资源,提供最优资源分配方案,提升多数据库统一调度的整体效率。本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1