CN109408581A - 一种数据交换方法、装置、设备及存储介质 - Google Patents
一种数据交换方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN109408581A CN109408581A CN201811348046.7A CN201811348046A CN109408581A CN 109408581 A CN109408581 A CN 109408581A CN 201811348046 A CN201811348046 A CN 201811348046A CN 109408581 A CN109408581 A CN 109408581A
- Authority
- CN
- China
- Prior art keywords
- data source
- abnormal
- data
- control node
- abnormality detection
- 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.)
- Granted
Links
Abstract
本发明公开了一种数据交换方法,应用于数据交换系统的第一工作节点,数据交换系统的控制节点分别与每个工作节点通信连接,该方法包括:在要对第一数据源进行第一交换作业时,确定预先获得的控制节点同步的异常信息库中是否存在第一数据源的异常登记信息;如果是,则对第一数据源进行异常检测,并在对第一数据源进行异常检测过程中,缩短预设的异常检测超时时间和/或减少预设的异常检测重试次数;基于相应的检测结果,确定终止或运行第一交换作业。应用本发明实施例所提供的技术方案,可以减少对第一数据源相关交换作业的整体等待时间,提高数据交换效率。本发明还公开了一种数据交换装置、设备及存储介质,具有相应技术效果。
Description
技术领域
本发明涉及数据处理技术领域,特别是涉及一种数据交换调度方法、装置、设备及存储介质。
背景技术
在信息化时代,企业的各种业务数据越来越多。为了更好的利用数据,企业多是通过ETL技术将数据转换为信息、知识,或者将数据从业务系统转移到数据仓库,对数据的有效利用已经成为提高企业核心竞争力的主要瓶颈。
ETL,即英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(extract)、交互转换(transform)、加载(load)至目的端的过程。
为提高数据交换能力,支持更多数据源接入,会采用集群的方式部署利用ETL技术的数据交换系统,如图1所示,数据交换系统由控制节点统一管理多个工作节点,进行交换作业的调度,将交换作业分配给1个或多个工作节点进行数据交换。工作节点可以横向扩展,进行具体的数据交换工作,连接源端数据库和目的端数据库,基于交换作业周期性地对数据进行抽取、交互转换和加载。
在现有技术中,控制节点主要进行交换作业的分配和调度,工作节点基于交换作业进行交换链路的建立和数据交换。当交换作业所对应的数据源出现异常不能响应工作节点的请求时,工作节点会进行多次尝试,使得交换作业运行时间较长。其他工作节点根据作业调度仍会继续对该数据源进行交换作业的运行。从而导致每个工作节点针对于该数据源的交换作业均需要较长时间,而每个工作节点的作业运行资源是有限的,其他交换作业将无法被快速处理,数据交换效率较低。
发明内容
本发明的目的是提供一种数据交换方法、装置、设备及存储介质,以提高数据交换效率。
为解决上述技术问题,本发明提供如下技术方案:
一种数据交换方法,应用于数据交换系统的第一工作节点,所述数据交换系统包括控制节点和多个工作节点,所述控制节点分别与每个工作节点通信连接,所述第一工作节点为所述数据交换系统中的任意一个工作节点,所述方法包括:
在要对第一数据源进行第一交换作业时,确定预先获得的所述控制节点同步的异常信息库中是否存在所述第一数据源的异常登记信息;
如果是,则对所述第一数据源进行异常检测,并在对所述第一数据源进行异常检测过程中,缩短预设的异常检测超时时间和/或减少预设的异常检测重试次数;
基于相应的检测结果,确定终止或运行所述第一交换作业。
在本发明的一种具体实施方式中,在确定所述异常信息库中存在所述第一数据源的异常登记信息时,在所述对所述第一数据源进行异常检测之前,还包括:
确定所述异常信息库中记录的所述第一数据源的异常登记信息的异常级别是否为故障级别;
如果是,则将所述第一交换作业置为故障暂停状态,直至接收到针对所述第一数据源的故障恢复信息时,执行所述对所述第一数据源进行异常检测的步骤;
所述故障级别为:所述控制节点在所述第一数据源的异常登记记录次数达到M次或者所述第一数据源的异常登记节点达到N个时更新的异常级别,M和N均为正整数。
在本发明的一种具体实施方式中,还包括:
如果所述检测结果为所述第一数据源正常,则向所述控制节点发送针对所述第一数据源的状态确认信息,以使所述控制节点在接收到所述状态确认信息后,向所述第一数据源的异常登记节点发送对所述第一数据源进行异常检测的执行指令。
在本发明的一种具体实施方式中,还包括:
如果所述检测结果为所述第一数据源存在异常,则生成所述第一数据源的异常登记表,将所述异常登记表上报给所述控制节点,以使所述控制节点基于所述异常登记表更新所述异常信息库,将更新后的所述异常信息库同步给各工作节点。
在本发明的一种具体实施方式中,在所述检测结果为所述第一数据源存在异常,确定终止所述第一交换作业之后,还包括:
在接收到所述控制节点发送的对所述第一数据源进行异常检测的执行指令时,对所述第一数据源进行异常检测;
如果检测到所述第一数据源正常,则向所述控制节点返回异常消除信息,以使所述控制节点基于所述异常消除信息更新所述异常信息库,将更新后的所述异常信息库同步给各工作节点;
如果检测到所述第一数据源仍存在异常,则向所述控制节点返回再次确认信息,以使所述控制节点基于所述再次确认信息更新所述异常信息库,将更新后的所述异常信息同步给各工作节点。
在本发明的一种具体实施方式中,在接收到所述控制节点发送的对所述第一数据源进行异常检测的执行指令,对所述第一数据源进行异常检测,检测到所述第一数据源正常的情况下,还包括:
接收并进行所述控制节点从第二工作节点调度至自身的针对所述第一数据源的第二交换作业;
所述第二工作节点为除所述第一工作节点外任意一个向所述控制节点返回针对所述第一数据源的再次确认信息的节点。
在本发明的一种具体实施方式中,还包括:
在确定所述异常信息库中不存在所述第一数据源的异常登记信息时,执行所述对所述第一数据源进行异常检测的步骤;
如果检测到所述第一数据源存在异常,则生成所述第一数据源的异常登记表,将所述第一数据源的异常登记表发送给所述控制节点,以使所述控制节点基于所述第一数据源的异常登记表更新所述异常信息库,并将更新后的所述异常信息库同步给各工作节点。
一种数据交换装置,应用于数据交换系统的第一工作节点,所述数据交换系统包括控制节点和多个工作节点,所述控制节点分别与每个工作节点通信连接,所述第一工作节点为所述数据交换系统中的任意一个工作节点,所述装置包括:
异常信息确定模块,用于在要对第一数据源进行第一交换作业时,确定预先获得的所述控制节点同步的异常信息库中是否存在所述第一数据源的异常登记信息,如果是,则触发异常检测模块;
所述异常检测模块,用于对所述第一数据源进行异常检测,并在对所述第一数据源进行异常检测过程中,缩短预设的异常检测超时时间和/或减少预设的异常检测重试次数;
交换作业处理模块,用于基于相应的检测结果,确定终止或运行所述第一交换作业。
一种数据交换设备,应用于数据交换系统的第一工作节点,所述数据交换系统包括控制节点和多个工作节点,所述控制节点分别与每个工作节点通信连接,所述第一工作节点为所述数据交换系统中的任意一个工作节点,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述任一项所述数据交换方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述数据交换方法的步骤。
应用本发明实施例所提供的技术方案,第一工作节点在要对第一数据源进行第一交换作业时,可以先确定控制节点同步的异常信息库中是否存在第一数据源的异常登记信息,如果存在,则可以对第一数据源进行异常检测,并在对第一数据源进行异常检测过程中,缩短预设的异常检测超时时间和/或减少预设的异常检测重试次数,然后基于相应的检测结果,确定终止或者运行第一交换作业。在异常信息库中存在第一数据源的异常登记信息时,第一数据源仍存在异常的可能性较大,第一工作节点在对第一数据源进行异常检测的过程中,缩短预设的异常检测超时时间和/或减少预设的异常检测重试次数,可以减少对第一数据源相关交换作业的整体等待时间,提高数据交换效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中一种数据交换系统的结构示意图;
图2为本发明实施例中一种数据交换方法的实施流程图;
图3为本发明实施例中一种数据交换装置的结构示意图;
图4为本发明实施例中一种数据交换设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种数据交换方法,该方法应用于数据交换系统的第一工作节点。如图1所示,数据交换系统包括控制节点和多个工作节点,控制节点分别与每个工作节点通信连接。第一工作节点为数据交换系统的任意一个工作节点。控制节点统一管理各个工作节点,进行交换作业的调度,将交换作业分配给1个或多个工作节点进行数据交换。工作节点可以横向扩展,进行具体的数据交换工作,连接源端和目的端,基于交换作业周期性的对数据进行抽取、交互转换和加载。
参见图2所示,为本发明实施例所提供的一种数据交换方法的实施流程图,该方法可以包括以下步骤:
S210:在要对第一数据源进行第一交换作业时,确定预先获得的控制节点同步的异常信息库中是否存在第一数据源的异常登记信息。
在本发明实施例中,控制节点可以维护一个异常信息库,该异常信息库中记录有数据源的异常登记信息。异常信息库中记录的数据源的异常登记信息可以是工作节点检测到数据源存在异常时反馈给控制节点的,还可以是运维人员根据实际情况检测到记录的。
异常信息库中记录的数据源的异常登记信息可以包括异常数据源信息,如数据源地址、数据库信息、实例信息、表空间信息、表信息等,还可以包括异常级别、异常登记节点信息等。
以工作节点A在运行交换作业时检测到数据源异常将异常登记表反馈给控制节点为例进行说明。
工作节点A周期性运行一个交换作业时,出现作业异常,启动异常检测机制,判断异常级别,并记录数据源异常登记表:
运维人员可以根据数据源的不同,设置不同的异常级别或类型。以Oracle数据库为例,异常级别可以有表级别、表空间级别、数据库实例级别、数据库级别、网络异常级别等。
工作节点A启动交换作业时,先尝试与该交换作业相应的数据源建立连接,如果能够成功建立连接,但无法读取表信息,则需要进一步判断是否能获取对应表空间的其他表信息,如果可以获取表空间信息,初步认为是表级别问题,可定义为P0级,如果不可以获取表空间信息,则判断为表空间级别问题,可定义为P1级,这种情况可能是表或表空间被修改或者删除等原因导致。
如果工作节点A连接数据源失败,可能为数据库实例级别、数据库级别、网络异常等问题,无法精确判断,可定义为P3级。
工作节点A将数据源异常登记表上报给控制节点,数据源异常登记表可包含异常数据源信息,如数据源地址、数据库信息、实例信息、表空间信息、表信息等,异常级别、异常登记节点信息等。
控制节点接收到工作节点A上报的数据源异常登记表后,从中提取出相关信息,对自身维护的异常信息库进行更新。
具体的,控制节点可以检索异常信息库中汇总的异常登记信息,确定接收到的数据源异常登记表中的数据源是否为新增数据源。如果是,则可以在异常信息库中保存该项信息,记录该登记项次数为1,并将更新后的异常信息库同步给其他工作节点。如果异常信息库中已经存在相同数据源地址的登记项信息,则比较该登记项信息与接收到的数据源异常登记表中的数据库信息和异常级别:
判断异常级别为P1级时,如果表空间信息和表信息都一致,进一步判断异常登记节点信息,如果异常登记节点信息一致,则增加异常记录次数,如果异常登记节点信息不一致,则添加异常登记节点信息;如果表空间和表信息不一致,则增加数据源异常登记项,增加关于新的数据表的异常记录;
判断异常级别为P2级时,如果表空间信息一致,进一步判断异常登记节点信息,如果异常登记节点信息一致,则增加异常记录次数,如果异常登记节点信息不一致,则添加异常登记节点信息;如果表空间不一致,则增加数据源异常登记项,增加关于新的表空间的异常记录;
判断异常级别为P3时,如果数据库实例一致,进一步判断异常登记节点信息,如果异常登记节点信息一致,则增加异常记录次数,如果异常登记节点信息不一致,则添加异常登记节点信息;如果数据库实例不一致但数据库一致,则增加异常信息记录,增加关于新的数据库实例的异常记录;如果数据库实例不一致且数据库不一致,则增加异常信息记录,增加关于新的数据库的异常记录。
控制节点在异常信息库有更新时,可以将异常信息库同步给所管控的各个工作节点。每个工作节点均可获得控制节点同步的异常信息库。
上述以举例方式说明了工作节点对于数据源的异常登记表的上报和控制节点对于异常信息库的更新,在实际应用中,可以根据不同应用场景制定不同的登记策略和更新策略,本发明实施例在此不再一一赘述。
第一工作节点基于控制节点的交换作业的调度,可以对第一数据源周期性进行第一交换作业。在要对第一数据源进行第一交换作业时,可以先在预先获得的异常信息库中查询是否存在第一数据源的异常登记信息,如果确定存在,则表明在此之前第一数据源出现过异常,第一工作节点可以继续执行步骤S220的操作。
S220:对第一数据源进行异常检测,并在对第一数据源进行异常检测过程中,缩短预设的异常检测超时时间和/或减少预设的异常检测重试次数。
第一工作节点在运行对第一数据源的第一交换作业之前,可以先对第一数据源进行异常检测。在本发明实施例中,可以预设异常检测超时时间和异常检测重试次数,预设的具体的数值可以根据实际情况进行设定和调整,本发明实施例对此不做限制。
如果第一工作节点确定异常信息库中存在第一数据源的异常登记信息,则其在对第一数据源进行异常检测过程中,可以缩短预设的异常检测超时时间和/或减少预设的异常检测重试次数。
可以理解的是,如果异常信息库中存在第一数据源的异常登记信息,则表明在此之前第一数据源出现过异常,可能是第一工作节点上报的或者是其他工作节点上报的。在这种情况下,第一工作节点对第一数据源进行异常检测的检测结果可能仍为第一数据源异常,如果异常检测超时时间较长或者异常检测重试次数较多,将会使得对第一数据源进行第一交换作业需要的时间较长,数据交换效率较低。本发明实施例缩短预设的异常检测超时时间和/或减少预设的异常检测重试次数,可以缩短对第一数据源进行第一交换作业所需要的时间,提高数据交换效率。
S230:基于相应的检测结果,确定终止或运行第一交换作业。
第一工作节点在对第一数据源进行异常检测后,可能产生两种检测结果,一种是第一数据源存在异常,一种是第一数据源正常。如果第一数据源存在异常,则第一工作节点可以确定终止第一交换作业,如果第一数据源正常,则第一工作节点可以确定运行第一交换作业。
应用本发明实施例所提供的方法,第一工作节点在要对第一数据源进行第一交换作业时,可以先确定控制节点同步的异常信息库中是否存在第一数据源的异常登记信息,如果存在,则可以对第一数据源进行异常检测,并在对第一数据源进行异常检测过程中,缩短预设的异常检测超时时间和/或减少预设的异常检测重试次数,然后基于相应的检测结果,确定终止或者运行第一交换作业。在异常信息库中存在第一数据源的异常登记信息时,第一数据源仍存在异常的可能性较大,第一工作节点在对第一数据源进行异常检测的过程中,缩短预设的异常检测超时时间和/或减少预设的异常检测重试次数,可以减少对第一数据源相关交换作业的整体等待时间,提高数据交换效率。
在本发明的一种具体实施方式中,如果检测结果为第一数据源正常,则可以向控制节点发送针对第一数据源的状态确认信息,以使控制节点在接收到状态确认信息后,向第一数据源的异常登记节点发送对第一数据源进行异常检测的执行指令。
第一工作节点在要对第一数据源进行第一交换作业时,确定异常信息库中存在第一数据源的异常登记信息,当其对第一数据源进行异常检测后,发现第一数据源正常,待第一交换作业正常运行后,可以向控制节点发送针对第一数据源的状态确认信息。控制节点在接收到状态确认信息后,可以向第一数据源的异常登记节点,即之前上报过第一数据源的异常登记表的工作节点发送对第一数据源进行异常检测的执行指令,之前上报过第一数据源的异常登记表的每个工作节点可以启动对第一数据源的异常检测,如果检测到第一数据源正常,则可以向控制节点返回异常消除信息。控制节点基于异常消除信息可以更新异常信息库,并将更新后的异常信息库同步给各工作节点。这样,各工作节点可以基于更新后的异常信息库进行相关信息的查询。
在本发明的另一种具体实施方式中,如果检测结果为第一数据源存在异常,则可以生成第一数据源的异常登记表,将异常登记表上报给控制节点,以使控制节点基于异常登记表更新异常信息库,将更新后的异常信息库同步给各工作节点。
第一工作节点在要对第一数据源进行第一交换作业时,确定异常信息库中存在第一数据源的异常登记信息,当其对第一数据源进行异常检测后,发现第一数据源存在异常,可以根据第一数据源的异常状态,生成第一数据源的异常登记表,将异常登记表上报给控制节点。控制节点接收到第一工作节点上报的异常登记表后,可以基于异常登记表更新异常信息库,再将更新后的异常信息库同步给各工作节点。各工作节点可以基于更新后的异常信息库进行相关信息查询。
在检测结果为第一数据源存在异常,确定终止第一交换作业之后,该方法还可以包括以下步骤:
步骤一:在接收到控制节点发送的对第一数据源进行异常检测的执行指令时,对第一数据源进行异常检测;
步骤二:如果检测到第一数据源正常,则向控制节点返回异常消除信息,以使控制节点基于异常消除信息更新异常信息库,将更新后的异常信息库同步给各工作节点;
步骤三:如果检测到第一数据源仍存在异常,则向控制节点返回再次确认信息,以使控制节点基于再次确认信息更新异常信息库,将更新后的异常信息库同步给各工作节点。
为便于描述,将上述三个步骤结合起来进行说明。
在本发明实施例中,第一工作节点在对第一数据源进行异常检测时,检测到第一数据源异常,可以向控制节点上报第一数据源的异常登记表,控制节点在异常信息库中记录第一数据源的异常登记信息。在这种情况下,如果其他工作节点在对第一数据源进行异常检测时,如果检测到第一数据源正常,则可以向控制节点发送针对第一数据源的状态确认信息。控制节点接收到状态确认信息后,可以第一数据源的异常登记节点发送对第一数据源进行异常检测的执行指令。
第一工作节点为上报过第一数据源的异常登记表的其中一个异常登记节点。当第一工作节点接收到控制节点发送的对第一数据源进行异常检测的执行指令时,可以启动对第一数据源进行异常检测。
如果检测到第一数据源正常,则可以向控制节点返回异常消除信息,这样控制节点基于异常消除信息可以更新异常信息库,将更新后的异常信息库同步给各工作节点。具体的,控制节点可以在接收到所有第一数据源的异常登记节点返回的异常消除信息后将异常信息库中第一数据源的异常登记信息消除。同时,控制节点可以触发关于第一数据源的工作状态转换为正常,恢复正常的交换作业调度。
如果检测到第一数据源仍存在异常,则可以向控制节点返回再次确认信息,这样控制节点基于再次确认信息可以更新异常信息库,将更新后的异常信息库同步给各工作节点。具体的,控制节点可以在接收到再次确认信息时,判断可能存在网络原因导致的部分工作节点与数据源连接不通,可以将异常信息库中第一数据源的异常登记信息包含的异常级别更新为部分节点异常状态,并登记上报异常的工作节点信息。
在本发明的一种具体实施方式中,在接收到控制节点发送的对第一数据源进行异常检测的执行指令,对第一数据源进行异常检测,检测到第一数据源正常时,该方法还可以包括以下步骤:
接收并进行控制节点从第二工作节点调度至自身的针对第一数据源的第二交换作业;
第二工作节点为除第一工作节点外任意一个向控制节点返回针对第一数据源的再次确认信息的节点。
在本发明实施例中,第一工作节点在接收到控制节点发送的对第一数据源进行异常检测的执行指令,对第一数据源进行异常检测,检测到第一数据源正常的情况下,可以向控制节点返回异常消除信息。第二工作节点在接收到控制节点发送的对第一数据源进行异常检测的执行指令时,对第一数据源进行异常检测后,如果检测到第一数据源仍存在异常,则可以向控制节点返回针对第一数据源的再次确认信息。也就是说,对于同一个数据源,有的工作节点可能会检测到其是正常的,有的工作节点可能会检测到其存在异常。控制节点收到再次确认信息时,可以判断可能存在网络原因,导致部分工作节点与数据源连接不通,可以将异常信息库中该数据源对应的异常级别更新为部分节点异常状态,登记上报异常的节点信息。
在这种情况下,控制节点可以将调度给第二工作节点的针对第一数据源的第二交换作业调度给第一工作节点,由第一工作节点运行第二交换作业,保证交换作业的继续进行,提高交换作业调度的可靠性。
也就是说,通过多个工作节点不同异常信息的比较,可以判断出数据源和多个工作节点间的连接差异,通过调整和调度,将失败的交换作业调度到可运行的工作节点上,提高了调度的可靠性。
在本发明的一个实施例中,在确定异常数据库中存在第一数据源的异常登记信息时,在对第一数据源进行异常检测之前,该方法还可以包括以下步骤:
第一个步骤:确定异常信息库中记录的第一数据源的异常登记信息的异常级别是否为故障级别,如果是,则执行第二个步骤;
第二个步骤:将第一交换作业置为故障暂停状态,直至接收到针对第一数据源的故障恢复信息时,执行对第一数据源进行异常检测的步骤;
故障级别为:控制节点在第一数据源的异常登记记录次数达到M次或者第一数据源的异常登记节点达到N个时更新的异常级别,M和N均为正整数。
为便于描述,将上述两个步骤结合起来进行说明。
异常信息库中记录的异常数据源的异常登记信息包含异常级别。当控制节点对第一数据源的异常登记记录次数达到M次或者第一数据源的异常登记节点达到N个时,可以将异常信息库中第一数据源的异常登记信息中的异常级别更新为故障级别,并将更新后的异常信息库同步给各个工作节点。M和N均为正整数,可以根据实际情况进行设定和调整,为均设置为2。
第一工作节点在确定异常信息库中记录的第一数据源的异常登记信息的异常级别为故障级别时,可以直接将第一交换作业置为故障暂停状态,不再对第一数据源进行异常检测,不再进行连接和交换调度,节省检测时间,以快速运行其他交换作业。
当第一数据源故障恢复时,控制节点或者运维人员可以向第一工作节点发送针对第一数据源的故障恢复信息,第一工作节点在接收到针对第一数据源的故障恢复信息时,可以执行对第一数据源进行异常检测的操作。
在本发明的一个实施例中,该方法还可以包括以下步骤:
步骤一:在确定异常数据库中不存在第一数据源的异常登记信息时,执行对第一数据源进行异常检测的步骤;
步骤二:如果检测到第一数据源存在异常,则生成第一数据源的异常登记表,将第一数据源的异常登记表发送给控制节点,以使控制节点基于第一数据源的异常登记表更新异常信息库,并将更新后的异常信息库同步给各工作节点。
在本发明实施例中,第一工作节点在要对第一数据源进行第一交换作业时,如果确定异常数据库中不存在第一数据源的异常登记信息,则可以基于预设的异常检测超时时间和预设的异常检测重试次数,直接对第一数据源进行异常检测,如图2所示。如果检测到第一数据源存在异常,则可以终止第一交换作业,并基于第一数据源的异常状态生成第一数据源的异常登记表,将第一数据源的异常登记表发送给控制节点。控制节点基于接收到的第一数据源的异常登记表可以更新异常信息库,并将更新后的异常信息库同步给各个工作节点。各个工作节点可以基于更新后的异常信息库进行相关信息的查询。
当然,如果检测到第一数据源正常,则可以运行第一交换作业,执行相应的数据交换操作。
需要说明的是,各工作节点关于交换作业会涉及源端数据库和目的端数据库,作为数据交换的来源和目的,交换中检测到源端数据库异常或目的端数据库异常都作为数据源异常登记表的来源。同样,交换作业对应的数据源信息,包含源端数据库和目的端数据库,都需要判断是否存在数据源异常登记信息。通过对数据源源端读取异常的判断,可以同步判断出目的写入异常的数据源信息。
本发明实施例中,各工作节点可以快速检测出存在的数据源的异常登记信息和异常级别,从而可以对异常数据源进行隔离,减少异常状态的检测时间,提高正常作业的调度效率。同时,可以检测到关于某数据源能够正常和异常工作的工作节点,基于一定策略进行交换作业调度,提高交换作业的可靠性。
在实际应用中,考虑到工作节点和数据源连接数资源的限制,可以通过各工作节点对数据源进行检测,也可以复用控制节点定期与各数据源做状态检测。控制节点统一汇总数据源异常登记表,避免占用工作节点更多资源。
相应于上面的方法实施例,本发明实施例还提供了一种数据交换装置,应用于数据交换系统的第一工作节点,数据交换系统包括控制节点和多个工作节点,控制节点分别与每个工作节点通信连接,第一工作节点为数据交换系统中的任意一个工作节点,下文描述的一种数据交换装置与上文描述的一种数据交换方法可相互对应参照。
参见图3所示,该装置包括以下模块:
异常信息确定模块310,用于在要对第一数据源进行第一交换作业时,确定预先获得的控制节点同步的异常信息库中是否存在第一数据源的异常登记信息,如果是,则触发异常检测模块320;
异常检测模块320,用于对第一数据源进行异常检测,并在对第一数据源进行异常检测过程中,缩短预设的异常检测超时时间和/或减少预设的异常检测重试次数;
交换作业处理模块330,用于基于相应的检测结果,确定终止或运行第一交换作业。
应用本发明实施例所提供的装置,第一工作节点在要对第一数据源进行第一交换作业时,可以先确定控制节点同步的异常信息库中是否存在第一数据源的异常登记信息,如果存在,则可以对第一数据源进行异常检测,并在对第一数据源进行异常检测过程中,缩短预设的异常检测超时时间和/或减少预设的异常检测重试次数,然后基于相应的检测结果,确定终止或者运行第一交换作业。在异常信息库中存在第一数据源的异常登记信息时,第一数据源仍存在异常的可能性较大,第一工作节点在对第一数据源进行异常检测的过程中,缩短预设的异常检测超时时间和/或减少预设的异常检测重试次数,可以减少对第一数据源相关交换作业的整体等待时间,提高数据交换效率。
在本发明的一种具体实施方式中,还包括:
故障级别确定模块,用于在确定异常信息库中存在第一数据源的异常登记信息时,在对第一数据源进行异常检测之前,确定异常信息库中记录的第一数据源的异常登记信息的异常级别是否为故障级别,如果是,则触发交换作业暂停模块;
交换作业暂停模块,用于将第一交换作业置为故障暂停状态,直至接收到针对第一数据源的故障恢复信息时,触发异常检测模块320执行对第一数据源进行异常检测的步骤;
故障级别为:控制节点在第一数据源的异常登记记录次数达到M次或者第一数据源的异常登记节点达到N个时更新的异常级别,M和N均为正整数。
在本发明的一种具体实施方式中,还包括状态确认信息发送模块,用于:
在检测结果为第一数据源正常时,向控制节点发送针对第一数据源的状态确认信息,以使控制节点在接收到状态确认信息后,向第一数据源的异常登记节点发送对第一数据源进行异常检测的执行指令。
在本发明的一种具体实施方式中,还包括异常登记表上报模块,用于:
在检测结果为第一数据源存在异常时,生成第一数据源的异常登记表,将异常登记表上报给控制节点,以使控制节点基于异常登记表更新异常信息库,将更新后的异常信息库同步给各工作节点。
在本发明的一种具体实施方式中,异常检测模块320,还用于:
在检测结果为第一数据源存在异常,确定终止第一交换作业之后,在接收到控制节点发送的对第一数据源进行异常检测的执行指令时,对第一数据源进行异常检测;
如果检测到第一数据源正常,则向控制节点返回异常消除信息,以使控制节点基于异常消除信息更新异常信息库,将更新后的异常信息库同步给各工作节点;
如果检测到第一数据源仍存在异常,则向控制节点返回再次确认信息,以使控制节点基于再次确认信息更新异常信息库,将更新后的异常信息同步给各工作节点。
在本发明的一种具体实施方式中,还包括交换作业接收模块,用于:
在接收到控制节点发送的对第一数据源进行异常检测的执行指令,对第一数据源进行异常检测,检测到第一数据源正常的情况下,还包括:
接收并进行控制节点从第二工作节点调度至自身的针对第一数据源的第二交换作业;
第二工作节点为除第一工作节点外任意一个向控制节点返回针对第一数据源的再次确认信息的节点。
在本发明的一种具体实施方式中,还包括异常登记表发送模块,用于:
在确定异常信息库中不存在第一数据源的异常登记信息时,执行对第一数据源进行异常检测的步骤;
如果检测到第一数据源存在异常,则生成第一数据源的异常登记表,将第一数据源的异常登记表发送给控制节点,以使控制节点基于第一数据源的异常登记表更新异常信息库,并将更新后的异常信息库同步给各工作节点。
相应于上面的方法实施例,本发明实施例还提供了一种数据交换设备,应用于数据交换系统的第一工作节点,数据交换系统包括控制节点和多个工作节点,控制节点分别与每个工作节点通信连接,第一工作节点为数据交换系统中的任意一个工作节点。参见图4所示,该设备包括:
存储器410,用于存储计算机程序;
处理器420,用于执行计算机程序时实现上述数据交换方法的步骤。
相应于上面的方法实施例,本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述数据交换方法的步骤。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (10)
1.一种数据交换方法,其特征在于,应用于数据交换系统的第一工作节点,所述数据交换系统包括控制节点和多个工作节点,所述控制节点分别与每个工作节点通信连接,所述第一工作节点为所述数据交换系统中的任意一个工作节点,所述方法包括:
在要对第一数据源进行第一交换作业时,确定预先获得的所述控制节点同步的异常信息库中是否存在所述第一数据源的异常登记信息;
如果是,则对所述第一数据源进行异常检测,并在对所述第一数据源进行异常检测过程中,缩短预设的异常检测超时时间和/或减少预设的异常检测重试次数;
基于相应的检测结果,确定终止或运行所述第一交换作业。
2.根据权利要求1所述的方法,其特征在于,在确定所述异常信息库中存在所述第一数据源的异常登记信息时,在所述对所述第一数据源进行异常检测之前,还包括:
确定所述异常信息库中记录的所述第一数据源的异常登记信息的异常级别是否为故障级别;
如果是,则将所述第一交换作业置为故障暂停状态,直至接收到针对所述第一数据源的故障恢复信息时,执行所述对所述第一数据源进行异常检测的步骤;
所述故障级别为:所述控制节点在所述第一数据源的异常登记记录次数达到M次或者所述第一数据源的异常登记节点达到N个时更新的异常级别,M和N均为正整数。
3.根据权利要求1所述的方法,其特征在于,还包括:
如果所述检测结果为所述第一数据源正常,则向所述控制节点发送针对所述第一数据源的状态确认信息,以使所述控制节点在接收到所述状态确认信息后,向所述第一数据源的异常登记节点发送对所述第一数据源进行异常检测的执行指令。
4.根据权利要求1所述的方法,其特征在于,还包括:
如果所述检测结果为所述第一数据源存在异常,则生成所述第一数据源的异常登记表,将所述异常登记表上报给所述控制节点,以使所述控制节点基于所述异常登记表更新所述异常信息库,将更新后的所述异常信息库同步给各工作节点。
5.根据权利要求1所述的方法,其特征在于,在所述检测结果为所述第一数据源存在异常,确定终止所述第一交换作业之后,还包括:
在接收到所述控制节点发送的对所述第一数据源进行异常检测的执行指令时,对所述第一数据源进行异常检测;
如果检测到所述第一数据源正常,则向所述控制节点返回异常消除信息,以使所述控制节点基于所述异常消除信息更新所述异常信息库,将更新后的所述异常信息库同步给各工作节点;
如果检测到所述第一数据源仍存在异常,则向所述控制节点返回再次确认信息,以使所述控制节点基于所述再次确认信息更新所述异常信息库,将更新后的所述异常信息同步给各工作节点。
6.根据权利要求5所述的方法,其特征在于,在接收到所述控制节点发送的对所述第一数据源进行异常检测的执行指令,对所述第一数据源进行异常检测,检测到所述第一数据源正常的情况下,还包括:
接收并进行所述控制节点从第二工作节点调度至自身的针对所述第一数据源的第二交换作业;
所述第二工作节点为除所述第一工作节点外任意一个向所述控制节点返回针对所述第一数据源的再次确认信息的节点。
7.根据权利要求1至6之中任一项所述的方法,其特征在于,还包括:
在确定所述异常信息库中不存在所述第一数据源的异常登记信息时,执行所述对所述第一数据源进行异常检测的步骤;
如果检测到所述第一数据源存在异常,则生成所述第一数据源的异常登记表,将所述第一数据源的异常登记表发送给所述控制节点,以使所述控制节点基于所述第一数据源的异常登记表更新所述异常信息库,并将更新后的所述异常信息库同步给各工作节点。
8.一种数据交换装置,其特征在于,应用于数据交换系统的第一工作节点,所述数据交换系统包括控制节点和多个工作节点,所述控制节点分别与每个工作节点通信连接,所述第一工作节点为所述数据交换系统中的任意一个工作节点,所述装置包括:
异常信息确定模块,用于在要对第一数据源进行第一交换作业时,确定预先获得的所述控制节点同步的异常信息库中是否存在所述第一数据源的异常登记信息,如果是,则触发异常检测模块;
所述异常检测模块,用于对所述第一数据源进行异常检测,并在对所述第一数据源进行异常检测过程中,缩短预设的异常检测超时时间和/或减少预设的异常检测重试次数;
交换作业处理模块,用于基于相应的检测结果,确定终止或运行所述第一交换作业。
9.一种数据交换设备,其特征在于,应用于数据交换系统的第一工作节点,所述数据交换系统包括控制节点和多个工作节点,所述控制节点分别与每个工作节点通信连接,所述第一工作节点为所述数据交换系统中的任意一个工作节点,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述数据交换方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述数据交换方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811348046.7A CN109408581B (zh) | 2018-11-13 | 2018-11-13 | 一种数据交换方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811348046.7A CN109408581B (zh) | 2018-11-13 | 2018-11-13 | 一种数据交换方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109408581A true CN109408581A (zh) | 2019-03-01 |
CN109408581B CN109408581B (zh) | 2020-11-17 |
Family
ID=65473047
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811348046.7A Active CN109408581B (zh) | 2018-11-13 | 2018-11-13 | 一种数据交换方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109408581B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110297860A (zh) * | 2019-06-18 | 2019-10-01 | 杭州数梦工场科技有限公司 | 数据交换方法、装置及相关设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5968124A (en) * | 1996-05-08 | 1999-10-19 | Fujitsu Limited | Network operation managing system, method and computer program product |
CN103383689A (zh) * | 2012-05-03 | 2013-11-06 | 阿里巴巴集团控股有限公司 | 一种服务进程故障检测方法、装置及服务节点 |
CN106357808A (zh) * | 2016-10-25 | 2017-01-25 | 广东欧珀移动通信有限公司 | 一种数据同步方法和装置 |
CN106844746A (zh) * | 2017-02-15 | 2017-06-13 | 浪潮软件集团有限公司 | 一种面向接口编程实现通用数据交换的方法 |
CN107908494A (zh) * | 2017-11-10 | 2018-04-13 | 泰康保险集团股份有限公司 | 异常事件的处理方法、装置、电子设备及存储介质 |
-
2018
- 2018-11-13 CN CN201811348046.7A patent/CN109408581B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5968124A (en) * | 1996-05-08 | 1999-10-19 | Fujitsu Limited | Network operation managing system, method and computer program product |
CN103383689A (zh) * | 2012-05-03 | 2013-11-06 | 阿里巴巴集团控股有限公司 | 一种服务进程故障检测方法、装置及服务节点 |
CN106357808A (zh) * | 2016-10-25 | 2017-01-25 | 广东欧珀移动通信有限公司 | 一种数据同步方法和装置 |
CN106844746A (zh) * | 2017-02-15 | 2017-06-13 | 浪潮软件集团有限公司 | 一种面向接口编程实现通用数据交换的方法 |
CN107908494A (zh) * | 2017-11-10 | 2018-04-13 | 泰康保险集团股份有限公司 | 异常事件的处理方法、装置、电子设备及存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110297860A (zh) * | 2019-06-18 | 2019-10-01 | 杭州数梦工场科技有限公司 | 数据交换方法、装置及相关设备 |
CN110297860B (zh) * | 2019-06-18 | 2024-01-26 | 杭州数梦工场科技有限公司 | 数据交换方法、装置及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN109408581B (zh) | 2020-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5102901B2 (ja) | データセンタにわたる複数データサーバ間のデータ完全性を保持する方法およびシステム | |
Castelli et al. | Proactive management of software aging | |
WO2019154394A1 (zh) | 分布式数据库集群系统、数据同步方法及存储介质 | |
US6026499A (en) | Scheme for restarting processes at distributed checkpoints in client-server computer system | |
KR100575497B1 (ko) | 내고장성 컴퓨터 시스템 | |
CN110807064B (zh) | Rac分布式数据库集群系统中的数据恢复装置 | |
CN102088490B (zh) | 数据存储方法、设备和系统 | |
CN105306585B (zh) | 一种多数据中心的数据同步方法 | |
CN112559637B (zh) | 基于分布式存储的数据处理方法、装置、设备以及介质 | |
CN102521128B (zh) | 面向云平台的软件故障容忍方法 | |
CN110535924B (zh) | 一种轨道交通服务器通信方法及系统 | |
CN111459642B (zh) | 一种分布式系统中故障处理和任务处理方法及装置 | |
CN110175089A (zh) | 一种具有读写分离功能的双活灾备系统 | |
CN105045917A (zh) | 一种基于实例的分布式数据恢复方法和装置 | |
CN110727508A (zh) | 一种任务调度系统和调度方法 | |
CN111800484A (zh) | 机动边缘信息服务系统的服务抗毁接替方法 | |
KR100323255B1 (ko) | 업무인계시스템 | |
US20060271663A1 (en) | A Fault-tolerant Distributed Data Processing System | |
JPH0950406A (ja) | 広域ワークフローシステムの保守方式 | |
CN110377664A (zh) | 数据同步方法、装置、服务器及存储介质 | |
CN109408581A (zh) | 一种数据交换方法、装置、设备及存储介质 | |
CN104734895A (zh) | 业务监控系统及业务监控方法 | |
CN113157701A (zh) | 一种oracle数据库的双活机制部署方法及装置 | |
CN108445857A (zh) | 一种scada系统的1+n冗余机制设计方法 | |
CA2619778C (en) | Method and apparatus for sequencing transactions globally in a distributed database cluster with collision monitoring |
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 |