一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据的容灾恢复方法、系统、终端设备及计算机存储介质与流程

2021-11-03 11:34:00 来源:中国专利 TAG:
1.本发明涉及金融科技(fintech)
技术领域
:,尤其涉及一种数据的容灾恢复方法、系统、终端设备以及计算机存储介质。
背景技术
::2.随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技转变,但由于金融行业的安全性、实时性以及稳定性等要求,也对技术提出了更高的要求。3.时下,大数据异地容灾的场景下,主、备集群分别运行在两个不同的机房中,分别运行独立的账户系统并使用独立的运维管控系统。目前大数据异地容灾方案只考虑离线侧的数据容灾,涉及的基础组件主要是hadoop(apachehadoop,一款支持数据密集型分布式应用程序并以apache2.0许可协议发布的开源软件框架)、hive(apachehive,基于hadoop的一个数据仓库工具)以及大数据平台任务调度系统(bigdataplatformjobschedulingsystem)。4.现有大数据集群容灾策略是:通过跨机房数据同步工具将主集群每天变化的数据同步到容灾集群,从而当主集群不可用时,切换到灾备集群。然而,现有的大数据集群容灾方案中,在切换到容灾环境之后还需要在容灾环境下重跑执行将业务数据导入、加工,和再导出到业务系统的整个流程,才能够完成整个容灾切换过程,如此,导致容灾切换耗时较长,不能快速高效的完成容灾切换。技术实现要素:5.本发明的主要目的在于提供一种数据的容灾恢复方法、系统、终端设备以及计算机存储介质,旨在实现在主集群发生灾难无法提供服务时,快速和精细化的进行容灾切换,进而提高容灾恢复效率。6.为实现上述目的,本发明提供一种数据的容灾恢复方法,所述数据的容灾恢复方法应用于数据容灾恢复设备,所述数据的容灾恢复方法包括:7.建立与预设主集群的灾备数据库之间的通信连接;8.通过所述通信连接读取所述预设主集群执行的工作流;9.根据预设的关系链模型获取所述工作流中各任务节点的任务参数,其中,所述关系链模型基于数据与数据处理任务之间的血缘关系构建得到;10.检测所述任务参数的同步状态,以根据所述同步状态确定各所述任务节点中待重新执行的目标节点,并触发容灾恢复机制执行所述目标节点。11.此外,为实现上述目的,本发明还提供一种数据的容灾恢复系统,所述数据的容灾恢复系统,包括:12.连接模块,用于建立与预设主集群的灾备数据库之间的通信连接;13.工作流读取模块,用于通过所述通信连接读取所述预设主集群执行的工作流;14.获取模块,用于根据预设的关系链模型获取所述工作流中各任务节点的任务参数,其中,所述关系链模型基于数据与数据处理任务之间的血缘关系构建得到;15.恢复模块,用于检测所述任务参数的同步状态,以根据所述同步状态确定各所述任务节点中待重新执行的目标节点,并触发容灾恢复机制执行所述目标节点。16.其中,本发明数据的容灾恢复系统的各个功能模块各自在运行时均实现如上所述的数据的容灾恢复方法的步骤。17.此外,为实现上述目的,本发明还提供一种终端设备,所述终端设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据的容灾恢复程序,所述数据的容灾恢复程序被所述处理器执行时实现如上所述的数据的容灾恢复方法的步骤。18.此外,为实现上述目的,本发明还提供一种计算机存储介质,所述计算机存储介质上存储有数据的容灾恢复程序,所述数据的容灾恢复程序被处理器执行时实现如上所述的数据的容灾恢复方法的步骤。19.此外,为实现上述目的,本发明还提供计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现如上所述的数据的容灾恢复方法的步骤。20.本发明提供一种数据的容灾恢复方法、系统、终端设备、计算机存储介质以及计算机程序产品,通过数据容灾恢复设备建立与预设主集群的灾备数据库之间的通信连接;通过所述通信连接读取所述预设主集群执行的工作流;根据预设的关系链模型获取所述工作流中各任务节点的任务参数,其中,所述关系链模型基于数据与数据处理任务之间的血缘关系构建得到;检测所述任务参数的同步状态,以根据所述同步状态确定各所述任务节点中待重新执行的目标节点,并触发容灾恢复机制执行所述目标节点。21.本发明在主集群发生灾难从而无法继续提供服务,从而需要进行容灾切换有容灾集群代替主集群提供服务的过程中,通过容灾集群下的数据容灾恢复设备,建立起与预设主集群的灾备数据库之间的通信连接,从而通过该通信连接读取出该预设主集群在发生灾难时正在执行的工作流;然后,数据容灾恢复设备进一步根据基于数据与数据处理任务之间的血缘关系构建得到的关系链模型,获取该工作流当中各个任务节点的任务参数;最后,检测该各个任务节点各自任务参数的同步状态,从而根据该同步状态确定该各个任务节点当中待重新执行的目标节点,并在确定到该目标节点时出发容灾恢复机制来重新执行该目标节点。22.本发明相比于传统的大数据集群容灾方案,通过预先基于数据与数据处理任务之间的血缘关系构建的完整的关系链模型,并结合工作流中任务节点各自任务参数的同步状态,来进行主集群发生灾难情况下切换容灾集群的容灾恢复操作,无需在容灾环境下再针对主集群发生灾难时的全部业务数据任务都执行重跑,而是仅基于结合关系链模型和同步状态确定得出的待重新执行的任务节点进行重跑,如此,可以实现快速进行容灾切换和快速恢复待重新执行的任务节点,达成了快速和精细化进行容灾切换的目的,从而提高了容灾恢复效率。附图说明23.图1为本发明实施例方案涉及的终端设备硬件运行环境的设备结构示意图;24.图2为本发明数据的容灾恢复方法一实施例的流程示意图;25.图3为本发明数据的容灾恢复方法一实施例所涉及的血缘数据获取和加工流程;26.图4为本发明数据的容灾恢复方法一实施例所涉及的数据处理执行任务与数据之间的第一血缘关系;27.图5为本发明数据的容灾恢复方法一实施例所涉及的数据处理执行任务与数据处理任务之间的第二血缘关系;28.图6为本发明数据的容灾恢复方法一实施例所涉及的数据处理的工作流样例;29.图7为本发明数据的容灾恢复方法一实施例所涉及的第二血缘关系的加工流程;30.图8为本发明数据的容灾恢复方法一实施例所涉及的数据处理任务与任务执行id的关系;31.图9为本发明数据的容灾恢复方法一实施例所涉及的数据与数据处理任务之间的血缘关系;32.图10为本发明数据的容灾恢复方法一实施例所涉及的数据同步流程;33.图11为本发明数据的容灾恢复方法一实施例所涉及的容灾恢复处理流程;34.图12为本发明数据的容灾恢复方法一实施例所涉及的容灾恢复场景示意图;35.图13为本发明数据的容灾恢复系统一实施例的功能模块示意图。36.本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式37.应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。38.参照图1,图1为本发明实施例方案涉及的终端设备硬件运行环境的设备结构示意图。39.本发明实施例终端设备可以是被配置在容灾集群下,针对主集群发生灾难而无法继续提供服务的情况,进行容灾恢复的数据容灾恢复设备,该数据容灾恢复设备可以是智能手机、pc(personalcomputer,个人计算机)、平板电脑、便携计算机等等。40.如图1所示,该终端设备可以包括:处理器1001,例如cpu,通信总线1002,用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi‑fi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non‑volatilememory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。41.本领域技术人员可以理解,图1中示出的终端设备结构并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。42.如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及数据的容灾恢复程序。43.在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端,与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的数据的容灾恢复程序,并执行以下本发明数据的容灾恢复方法各实施例所述的操作。44.基于上述硬件结构,提出本发明数据的容灾恢复方法的各实施例。45.需要说明的是,大数据异地容灾的场景下,主、备集群(或者称作主集群和容灾集群)分别运行在两个不同的机房中,且各自运行独立的账户系统,并使用独立的运维管控系统。在进行集群交付时,主、备两个集群是分别交付的。46.大数据平台的典型数据处理流程如下:47.第一,数据抽取,通过sqoop(apachesqoop是一款开源的工具,主要用于在hadoop(hive)与传统的数据库(mysql、postgresql、oracle等)间进行数据的传递)将业务系统的数据从关系型数据库收取到hive中;48.第二,数据加工,通过hivesql/sparksql/python/shell等编程方式对hive中的数据进行加工,最终写到另外一个hive表中;49.第三,数据导出,用sqoop将加工好的hive数据(例如:统计日报、单日收益计算等)再导出到关系型数据库中。50.以上数据抽取、数据加工和数据导出的整个流程,都是通过大数据平台的任务调度系统触发定时调度执行。51.大数据集群容灾的策略是通过跨机房数据同步工具将主集群每天变化的数据同步到容灾集群,当主集群不可用时,切换到灾备集群。52.现有大数据集群容灾策略是:通过跨机房数据同步工具将主集群每天变化的数据同步到容灾集群,从而当主集群不可用时,切换到灾备集群。然而,现有的大数据集群容灾方案中,在切换到容灾环境之后还需要重跑执行上述将业务数据导入、加工,和再导出到业务系统的整个流程,导致耗时较长,不能快速高效的完成容灾切换。53.针对上述现象,本发明提供一种数据的容灾恢复方法。请参照图2,图2为本发明数据的容灾恢复方法第一实施例的流程示意图,在本实施例中,该数据的容灾恢复方法应用于上述被配置在容灾集群下,针对主集群发生灾难而无法继续提供服务的情况,进行容灾恢复的数据容灾恢复设备(为便于阐述,后文均表述为容灾恢复设备),本发明数据的容灾恢复方法,包括:54.步骤s10,建立与预设主集群的灾备数据库之间的通信连接;55.容灾恢复设备在进行容灾恢复的过程中,先建立起与发生灾难的预设主集群的灾备数据库之间的通信连接。56.需要说明的是,在本实施例中,预设主集群为大数据异地容灾的场景下,正在进行数据抽取、数据加工和数据导出一系列处理流程的大数据平台所在的集群。预设主集群的灾备数据库为该预设主集群调度系统的数据库的异地备份。57.进一步地,在一种可行的实施例中,上述步骤s10,可以包括:58.步骤s101,在所述预设主集群的服务不可用时,建立与所述预设主集群的灾备数据库之间的通信连接。59.需要说明的是,在本实施例中,容灾恢复设备进行容灾恢复的过程,发生在预设主集群发生灾难从而无法继续提供服务进行数据处理流程的情况之下。60.容灾恢复设备在当前正在进行数据处理的预设主集群发生灾难,从而导致该预设主集群无法继续提供服务或者提供的服务不可用时,立即建立起与该预设主集群的灾备数据库之间的通信连接。61.具体地,例如,假定当前正在执行数据处理的预设主集群在idc1,而备用的容灾集群在异地的idc2。如此,当处于idc1的预设主集群发生灾难,从而导致该预设主集群提供的服务不可用(即无法完成数据处理流程)时,或者,导致预设主集群根本无法继续提供服务时,处于异地的idc2的容灾集群中的容灾恢复设备,即开始建立与该预设主集群的灾备数据库之间的通信连接。62.步骤s20,通过所述通信连接读取所述预设主集群执行的工作流;63.容灾恢复设备在建立起与灾备数据库之间的通信连接之后,立即基于该通信连接,读取预设主集群在发生灾难时正在执行的工作流。64.具体地,例如,请参照如图11所示的容灾恢复处理流程,容灾恢复设备(假定为图11中所示的findgap)在建立起与灾备数据库之间的通信连接之后,即,通过该通信连接从该灾备数据库中查询预设主集群在发生灾难时,该主集群的主调度系统(scheduler)正在执行的工作流,并通过列表的方式查询结果。65.需要说明的是,在本实施例中,预设主集群在发生灾难时正在执行的工作流可以为一个或者多个,或者,预设主集群在发生灾难时也可能没有提供服务执行数据处理流程,从而不存在正在执行的工作流。因此,容灾恢复设备在查询状态为正在执行的工作流并通过列表返回查询结果时,该列表所示状态为正在执行的工作流可能是0个或者n个,其中,n大于或者等于1。66.步骤s30,根据预设的关系链模型获取所述工作流中各任务节点的任务参数,其中,所述关系链模型基于数据与数据处理任务之间的血缘关系构建得到;67.在一种可实现方式中,容灾恢复设备在读取到发生灾难的预设主集群于发生灾难时正在执行的工作流之后,即根据基于数据与数据处理任务之间的血缘关系来构建得到的关系链模型,进一步获取该工作流当中各个任务节点各自的任务参数。68.在另一种可实现方式中,容灾恢复设备还可以预设主集群未发生灾难之前,即开始基于数据与数据处理任务之间的血缘关系来构建得到关系链模型。如此,在后续预设主集群发生灾难时,容灾恢复设备即可直接提取该关系链模型,获取预设主集群于发生灾难时正在执行的工作流当中各个任务节点各自的任务参数。69.需要说明的是,在本实施例中,数据与数据处理任务之间的血缘关系如图9所示的关系图谱,容灾恢复设备可基于该关系图谱确定在进行容灾切换操作的过程当中,需要重新执行的任务节点。70.具体地,例如,假定容灾恢复设备预先基于如图9所示的数据与数据处理任务之间的血缘关系,构建得到一用于确定在进行容灾切换操作的过程当中需要重新执行的任务节点的关系链模型。然后,容灾恢复设备即利用该关系链模型,确定在当前获取到的预设主集群在发生灾难时其主调度系统正在执行的工作流中,每一个工作流全部的任务节点,以及该全部任务节点各自的任务参数。71.进一步地,在一种可行的实施例中,任务参数包括任务节点的输入数据和输出数据,上述步骤s30,可以包括:72.步骤s301,确定所述工作流的各所述任务节点;73.容灾恢复设备在获取得到发生灾难的预设主集群于发生灾难时正在执行的工作流之后,即针对该一个或者多个工作流确定各自全部的任务节点。74.具体地,例如,容灾恢复设备通过列表的方式从发生灾难的预设主集群的灾备数据库中,查询得到预设主集群在发生灾难时该主集群的主调度系统正在执行的工作流仅为一个,则容灾恢复设备进一步通过成熟的广度优先的方式来确定并获取该一个工作流当中全部的任务节点。75.步骤s302,根据各所述任务节点分别构建查询语句,根据所述查询语句从所述关系链模型中索引各所述任务节点各自的输入数据和输出数据。76.容灾恢复设备分别以确定得到的各任务节点构建对应的查询语句,从而基于该查询语句从基于数据与数据处理任务之间的血缘关系来构建得到的关系链模型当中,索引查询出该每一个任务节点各自的输入数据和输出数据。77.需要说明的是,在本实施例中,由于基于数据与数据处理任务之间的血缘关系来构建得到的关系链模型为如图9所示的数据与数据处理任务之间的血缘关系图谱,且该关系链模型具体可存储与容灾集群下配置的图数据库当中,因此,容灾恢复设备以任务节点构建得到的查询语句具体可以为图数据查询语句。78.具体地,例如,请参照如图11所示的容灾恢复处理流程,容灾恢复设备—findgap在通过列表的方式,从发生灾难的预设主集群的灾备数据库中,查询得到预设主集群在发生灾难时,该主集群的主调度系统—scheduler正在执行的一个工作流,并通过广度优先的方式获取得到该一个工作流的全部任务节点之后,进一步调用预置好用于在关系图谱数据当中索引查询关系型数据的查询模板,如,sql(structuredquerylanguage,结构化查询语言)语句,并依次以每一个任务节点作为该sql语句当中的输入条件,以此构建得到查询与该任务节点具有相关关系的图数据查询语句,然后,容灾恢复设备立即执行该sql语句即可从图数据库—graphdb中存储的关系链模型所展示数据处理任务和数据的血缘关系(图示应用和数据血缘)中,分析并获取得到该每一个任务节点直接的输入数据和输出数据。79.步骤s40,检测所述任务参数的同步状态,以根据所述同步状态确定各所述任务节点中待重新执行的目标节点,并触发容灾恢复机制执行所述目标节点。80.容灾恢复设备在获取得到预设主集群于发生灾难时,正在执行的工作流当中,各个任务节点各自的任务参数之后,进一步检测该各个任务节点各自任务参数的同步状态,从而,根据检测到的该同步状态确定该各个任务节点当中需要重新执行才能完成容灾切换的待重新执行的目标节点,最后,触发预置的容灾恢复机制重新执行该目标节点。81.具体地,例如,请参照如图11所示的容灾恢复处理流程,容灾恢复设备—findgap在从图数据库—graphdb中存储的关系链模型所展示数据处理任务和数据的血缘关系(图示应用和数据血缘)中,分析并获取得到每一个任务节点直接的输入数据和输出数据,之后,容灾恢复设备—findgap即进一步调用同样配置在容灾集群下的用于进行数据同步的同步装置—transport的数据库,检查每一个任务节点各自的输入数据和输出数据的同步状态是否为已经同步完成,从而得到全部任务节点各自输入数据和输出数据的同步状态。最后,容灾恢复设备—findgap即再一次按照成熟的广度优先的方式来遍历该每一个任务节点各自所属的工作流的dag(directedacyclicgraph无回路有向图)图(如附图6所示工作流样例),从而基于该任务节点各自输入数据和输出数据的同步状态,确定出该工作流全部的任务节点当中需要重新执行的目标节点,进而,触发预置的容灾恢复机制以令容灾集群下的调度系统—scheduler(backup)调度该目标节点进行重新执行,并待重新执行完之后向容灾恢复设备反馈状态结果进行同步,容灾恢复设备即基于该状态结果确定容灾切换完成。82.进一步地,在另一种可行的实施例中,容灾恢复设备在基于同步状态确定到工作流全部的任务节点当中,不存在待重新执行的目标节点时,则无需触发容灾恢复机制进行容灾恢复即可完成切换。83.进一步地,请参照如图12所示的容灾恢复场景,假定容灾恢复设备通过关系链模型获取到的、主集群在发生灾难时正在执行的工作流中,各个任务节点:job1、job2和job3、各自的输入数据和输出数据为table1、table2、table3、table4、table5和table6,并且,容灾恢复设备进一步检测到该table1、table2、table3和table4的同步状态为已经完成容灾同步,且校验一致,此时,容灾恢复设备确定该工作流当中需要在容灾集群重新执行的目标节点只有job2和job3,从而,容灾恢复设备触发容灾恢复机制以令该容灾集群下的调度系统仅调度该job2和job3进行重新执行以加快容灾恢复速度。84.在本实施例中,通过容灾恢复设备在进行容灾恢复的过程中,先建立起与发生灾难的预设主集群的灾备数据库之间的通信连接;容灾恢复设备在建立起与灾备数据库之间的通信连接之后,立即基于该通信连接,读取预设主集群在发生灾难时正在执行的工作流;容灾恢复设备在读取到发生灾难的预设主集群于发生灾难时正在执行的工作流之后,即根据基于数据与数据处理任务之间的血缘关系来构建得到的关系链模型,进一步获取该工作流当中各个任务节点各自的任务参数;容灾恢复设备在获取得到预设主集群于发生灾难时,正在执行的工作流当中,各个任务节点各自的任务参数之后,进一步检测该各个任务节点各自任务参数的同步状态,从而,根据检测到的该同步状态确定该各个任务节点当中需要重新执行才能完成容灾切换的待重新执行的目标节点,最后,触发预置的容灾恢复机制重新执行该目标节点。85.本发明相比于传统的大数据集群容灾方案,通过预先基于数据与数据处理任务之间的血缘关系构建的完整的关系链模型,并结合工作流中任务节点各自任务参数的同步状态,来进行主集群发生灾难情况下切换容灾集群的容灾恢复操作,可以实现快速进行容灾切换和快速恢复的待重新执行的任务节点,达成了快速和精细化进行容灾切换的目的,从而提高了容灾恢复效率。86.进一步地,基于上述本发明数据的容灾恢复方法的第一实施例,提出本发明数据的容灾恢复方法的第二实施例,本实施例与上述第一实施例之间的主要区别在于,在本实施例中,在上述步骤s10,建立与预设主集群的灾备数据库之间的通信连接的步骤之前,本发明数据的容灾恢复方法,还可以包括:87.步骤s50,基于数据与数据处理任务之间的血缘关系构建关系链模型。88.容灾恢复设备在与发生灾难的预设主集群的灾备数据库之间建立通信连接之前,即开始基于预设主集群正在执行的数据处理任务和数据之间的血缘关系,构建关系链模型。89.进一步地,在一种可行的实施例中,步骤s50,可以包括:90.步骤s501,从所述预设主集群中获取血缘数据建立数据处理任务与数据之间的第一血缘关系;91.容灾恢复设备在基于预设主集群正在执行的数据处理任务和数据之间的血缘关系构建关系链模型的过程中,先从正在执行数据处理任务的预设主集群当中,获取血缘数据建立起该预设主集群的调度系统执行数据处理任务与数据之间的第一血缘关系。92.具体地,例如,请参照如图3所示的血缘数据获取和加工流程,容灾恢复设备通过预设主集群下的血缘获取hook(是windows中提供的一种用以替换dos(diskoperatingsystem,磁盘操作系统)下“中断”的系统机制,中文译为“挂钩”或“钩子”)从数据组件(如关系型数据库等)中解析血缘数据并获取该血缘数据,并将该血缘数据写入到数据集成工具的文件系统。然后,通过预设主集群的调度系统定时触发数据血缘数据集成任务,令该数据集成工具从文件系统中读取血缘日志得到血缘数据,并将该血缘数据进一步写入到大数据平台hive或者spark。再然后,基于预设主集群的调度系统定时触发数据加工任务,令大数据平台hive或者spark针对写入的血缘数据进行加工整合形成如图4所示的数据处理任务与数据之间的第一血缘关系,并将该第一血缘关系作为血缘图数据写入到图数据库系统当中。最后,由图数据库系统主动向预设主集群的调度系统上报血缘图数据的写入状态,以供该调度系统确认第一血缘数据构建完成。93.需要说明的是,在本实施例中,预设主集群下的血缘获取hook针对不同的数据系统和数据传输工具实现对应的lineagehook—血缘数据hook机制,数据系统每执行一条sql语句,这些hook机制就会捕获原始的血缘数据,并封装成血缘日志写入数据集成工具的日志系统。具体地,例如,针对hive数据系统和spark数据系统分别采用hivelineagehook(通过异步捕获hive执行sql语句,调用自主实现的hive执行行为分析应用程序接口得到sql的输入数据信息、输出数据信息、以及关联的任务信息)、spark‑sqllineagehook(通过异步获取spark‑sql执行的sql语句,调用自主实现的sparksql执行行为分析应用程序接口得到sql的输入数据信息、输出数据信息、以及关联的任务信息)、sqooplineagehook(通过异步捕获sqoop的执行命令,分析sqoop执行命令的参数,得到执行命令的输入数据和输出数据相关信息、以及关联的任务的信息),来捕获血缘数据。其中,hive和spark‑sql各自对应的lineagehook用来获取大数据平台内部数据表之间的血缘,sqooplineagehook用来捕获大数据平台表和传统关系型数据之间表的血缘关系。94.步骤s502,解析对象简谱文件建立所述数据处理执行任务与数据处理任务之间的第二血缘关系;95.需要说明的是,在本实施例中,如图6所示的数据处理的工作流样例,数据处理任务在大数据平台任务调度系统(例如:azkaban、airflow等)中,主要是通过dag的形式组织依赖关系,在数据库中通过json(对象简谱)的方式存储。96.容灾恢复设备在建立起预设主集群的调度系统执行的数据处理执行任务与数据之间的第一血缘关系之后,进一步通过解析对象简谱文件的方式建立该数据处理执行任务与数据处理任务之间的第二血缘关系。97.具体地,例如,容灾恢复设备通过预置的任务血缘解析程序读取预设主集群下,调度系统中各个数据处理任务的工作流的json文件,然后针对该json文件进行解析得到如图5所示的数据处理执行任务—executedjob与数据处理任务相互之间的第二血缘关系。98.需要说明的是,在本实施例中,请参照如图8所示的数据处理任务与任务执行id的关系,任务血缘解析程序读取工作流的json文件,并针对该json文件进行解析的过程中,会在数据库中记录每个数据处理任务每次的执行记录,且每个数据处理任务每次执行都关联一个executedjobid,如此,建立起数据处理任务和数据处理执行任务—executedjob的第二血缘关系。99.进一步地,在本实施例中,请参照如图7所示的流程,容灾恢复设备在通过任务血缘解析程序,解析调度系统中工作流的json文件的过程中,先通过大数据任务调度系统从数据集成工具中读取任务关系json文件和任务执行记录,并由该数据集成工具直接将读取json文件和任务执行记录进行解析得到的血缘数据写入到大数据平台hive或者spark中。然后,通过预设主集群的调度系统定时触发数据加工任务,令该大数据平台hive或者spark针对写入的血缘数据进行加工整合形成如图5所示的数据处理执行任务—executedjob与数据处理任务之间的第二血缘关系,并将该第二血缘关系作为血缘图数据写入到图数据库系统当中。最后,由图数据库系统主动向预设主集群的调度系统上报血缘图数据的写入状态,以供该调度系统确认第二血缘数据构建完成。100.步骤s503,融合所述第一血缘关系和所述第二血缘关系确定所述数据与所述数据处理任务之间的血缘关系以构建得到关系链模型。101.容灾恢复设备在分别建立起数据处理执行任务与数据之间的第一血缘关系,以及,数据处理执行任务与数据处理任务之间的第二血缘关系之后,即针对该第一血缘关系和第二血缘关系进行融合处理以确定起该数据处理任务与该数据之间的血缘关系,从而构建得到关系链模型。102.具体地,例如,容灾恢复设备分别构建得到如图4所示的数据处理执行任务与数据之间的第一血缘关系,和如图5所示的数据处理执行任务与数据处理任务之间的第二血缘关系,之后,容灾恢复设备即通过预设主集群的调度系统定时触发数据融合加工任务,分别解析该第一血缘关系和第二血缘关系各自的关系图谱,以确定该第一血缘关系与第二血缘关系之间,基于数据处理执行任务(executedjob)与数据处理任务(job)之间的对应关系,将第一血缘关系中的数据处理执行任务(executedjob),均替换为该数据处理执行任务(executedjob)对应的数据处理任务job,从而将该该第一血缘关系和第二血缘关系各自的关系图谱融合形成如图9所示的数据与数据处理任务之间的血缘关系,然后,容灾恢复设备即基于该数据与数据处理任务之间的血缘关系构建成图数据形式的关系链模型,并将该关系链模型存储至图数据库当中以供后续调用。103.需要说明的是,在本实施例中,容灾恢复设备可基于关系链模型确定工作流中各任务节点的输入数据和输出数据,如图9所示,任务节点—job1的输入数据是table1和table2,输出数据是table4,如此,容灾恢复设备可基于该关系链模型在进行容灾切换时,确定容灾集群中的调度系统确定工作流从哪一个任务节点开始重跑。104.在本实施例中,通过容灾恢复设备在基于预设主集群正在执行的数据处理任务和数据之间的血缘关系构建关系链模型的过程中,先从正在执行数据处理任务的预设主集群当中,获取血缘数据建立起该预设主集群的调度系统执行数据处理任务与数据之间的第一血缘关系;容灾恢复设备在建立起预设主集群的调度系统执行的数据处理执行任务与数据之间的第一血缘关系之后,进一步通过解析对象简谱文件的方式建立该数据处理执行任务与数据处理任务之间的第二血缘关系;容灾恢复设备在分别建立起数据处理执行任务与数据之间的第一血缘关系,以及,数据处理执行任务与数据处理任务之间的第二血缘关系之后,即针对该第一血缘关系和第二血缘关系进行融合处理以确定起该数据处理任务与该数据之间的血缘关系,从而构建得到关系链模型。105.如此,容灾恢复设备即可在进行容灾切换的过程中,通过预先基于数据与数据处理任务之间的血缘关系构建的系链模型,并结合工作流中任务节点各自任务参数的同步状态,来进行主集群发生灾难情况下切换容灾集群的容灾恢复操作,可以实现快速进行容灾切换和快速恢复的待重新执行的任务节点,达成了快速和精细化进行容灾切换的目的,从而提高了容灾恢复效率。106.进一步地,基于上述本发明数据的容灾恢复方法的第一实施例,提出本发明数据的容灾恢复方法的第三实施例,本实施例与上述第一实施例之间的主要区别在于,在本实施例中,在上述步骤s10,建立与预设主集群的灾备数据库之间的通信连接的步骤之前,本发明数据的容灾恢复方法,还可以包括:107.步骤s60,执行预设的数据同步任务以令所述预设主集群的数据库同步数据至所述灾备数据库。108.容灾恢复设备在与发生灾难的预设主集群的灾备数据库之间建立通信连接之前,先执行数据同步任务以令预设主集群的数据库,在该预设主集群提供服务执行数据处理任务的过程中,将数据同步至容灾集群中的灾备数据库以供后续快速进行容灾切换。109.需要说明的是,在本实施例中,数据同步任务为基于工作人员配置生成进行数据同步管理的任务。应当理解的是,基于实际应用的不同设计需要,在不同可行的实施方式当中,数据同步任务的配置生成方式以及具体内容等都可以不同,本发明数据的容灾恢复方法并不针对该数据同步任务的具体内容进行限定。110.进一步地,在一种可行的实施例中,步骤s60,可以包括:111.步骤s601,接收所述数据同步任务,并从所述预设主集群的数据库中读取所述数据同步任务指向的待同步元数据;112.容灾恢复设备在令预设主集群的数据库同步数据至灾备数据库的过程当中,先接收基于工作人员配置生成的数据同步任务,从而解析该数据同步任务来确定需要从该预设主集群的数据库中读取并同步至灾备数据库中的待同步元数据。113.步骤s602,执行所述数据同步任务以将所述待同步元数据拉取至所述灾备数据库中进行存储;114.容灾恢复设备在确定需要从该预设主集群的数据库中读取并同步至灾备数据库中的待同步元数据之后,即执行该数据同步任务以将该待同步元数据拉取至灾备数据库中对应的存储路径下进行存储。115.进一步地,在一种可行的实施例中,步骤s602,可以包括:116.步骤s6021,获取所述待同步元数据在所述预设主集群的数据库中第一存储路径;117.容灾恢复设备在将预设主集群的数据库中的待同步元数据,同步至灾备数据库的过程当中,容灾恢复设备在通过解析数据同步任务来确定需要同步的待同步元数据时,同步获取该待同步元数据在该预设主集群的数据库中的第一存储路径。118.具体地,例如,容灾恢复设备具体可以通过检测预设主集群的数据库中的资源管理器yarn(yetanotherresourcenegotiator,另一种资源协调者,也称作apachehadoopyarn,是一种新的hadoop资源管理器),针对该待同步数据(具体可以是一种hive表的数据)所管理的数据大小、存储时间、更新时间、存储路径等数据信息,来获取得到该该待同步元数据在该预设主集群的数据库中的第一存储路径。119.步骤s6022,确定所述灾备数据库中与所述第一存储路径相对应的第二存储路径;120.容灾恢复设备在获取得到该待同步元数据在预设主集群的数据库中的第一存储路径之后,即可基于该第一存储路径在灾备数据库当中确定一与该第一存储路径相对应的第二存储路径。121.具体地,例如,容灾恢复设备可基于预先构建好的预设主集群的数据库与灾备数据库之间用于同步数据的关联关系,如,该关联关系具体可以为预先专门为该关联关系建立的一张关系表,直接以该第一存储路径在该关系表当中,检测并确定出在灾备数据库当中,与该第一存储路径相对应以存储该第一存储路径下待同步元数据的第二存储路径。122.在另一种可行的实施例中,容灾恢复设备在获取得到待同步元数据在预设主集群的数据库中的第一存储路径之后,还可以实时的基于灾备数据库当前空余的存储空间,即时生成一存储路径并建立好该存储路径与第一存储路径之间的相互对应的关联关系,然后,将该存储路径确定为在灾备数据库当中存储该第一存储路径下待同步元数据的第二存储路径。123.步骤s6023,按照第二存储路径将所述待同步元数据存储在所述灾备数据库中。124.容灾恢复设备在确定好灾备数据库当中与第一存储路径相对应的第二存储路径之后,容灾恢复设备即可按照该第二存储路径,将预设主集群的数据库中,存储在该第一存储路径下的待存储数据,拉取存储在该灾备数据库当中的第二存储路径之下。125.具体地,例如,容灾恢复设备在确定好灾备数据库当中与第一存储路径相对应的第二存储路径之后,可按照该第一存储路径先从预设主集群的数据库当中拉取出需要同步的待同步元数据,然后将该待同步元数据输入至灾备数据库的资源管理器yarn当中,以令该资源管理器yarn按照该第二存储路径,对该待同步元数据进行存储。126.步骤s603,监控所述数据同步任务的执行状态并针对所述预设主集群的数据库和所述灾备数据库各自存储的数据进行一致性验证。127.容灾恢复设备通过持续的监测该数据同步任务的执行状态,以在每一个数据同步任务执行完毕时,进一步针对该预设主集群的数据库和灾备数据库各自所存储的数据进行一致性验证,从而确保将预设主集群的数据库中的待同步元数据,完整地同步至灾备数据库当中。128.具体地,例如,请参照如图10所示的数据同步流程,容灾恢复设备通过接收工作人员的配置数据来生成数据同步任务。然后,容灾恢复设备基于调度系统—transports调度该数据同步任务进行执行以通过多线程的方式从预设主集群(idc1)存储元数据的数据库—mysql中读取元数据,并将读取到的该元数据作为该数据同步任务指向的待同步元数据,写入到容灾集群(idc2)存储元数据的灾备数据库中。再然后,容灾恢复设备进一步基于调度系统—transports在容灾集群(idc2)上提交容灾数据同步任务—distcpjob作业到yarn中,并基于调度执行该distcpjob作业,以实现将预设主集群(idc1)中需要同步的hive表的数据,拉取到容灾集群(idc2)对应hive表的存储路径下(hdfs目录)。最后,容灾恢复设备还基于调度系统—transports轮询监控所调度的数据同步任务的执行状态,并收集预设主集群(idc1)的数据库src‑hdfs和容灾集群中的灾备数据库dest‑hdfs上所存储的同步的统计数据,从而验证该预设主集群(idc1)和容灾集群(idc2)两边的数据是否一致。129.进一步地,在另一种可行的实施例中,容灾恢复设备在执行数据同步任务以令所述预设主集群的数据库同步数据至所述灾备数据库之前,还预先定义数据容灾同步的规则,从而,容灾恢复设备在基于调度系统执行数据同步任务进行预设主集群与容灾集群的数据同步过程中,即按照该数据容灾同步的规则执行该数据同步任务。130.需要说明的是,在本实施例中,容灾恢复设备通过定义需要进行数据同步的预设主集群和容灾集群各自对应的集群、数据库和数据表,以及,需要进行数据同步的时间和策略以形成数据容灾同步的规则。具体地,例如,容灾恢复设备定义的数据容灾同步的规则如下表所示:[0131][0132]上表中,源集群和目标集群即分别为本实施例中所述的预设主集群和容灾集群。[0133]进一步地,在一种可行的实施例中,上述第一实施例中的步骤s40中,同步状态包括:同步完成和未同步,“根据所述同步状态确定各所述任务节点中待重新执行的目标节点”的步骤,可以包括:[0134]步骤s401,若各所述任务节点中第一任务节点的任务参数的同步状态为未同步,则确定所述第一任务节点为待重新执行的目标节点;[0135]容灾恢复设备在获取得到预设主集群于发生灾难时,正在执行的工作流当中,各个任务节点各自的任务参数之后,即进一步检测该各个任务节点各自任务参数的同步状态为同步完成还是未同步,从而,在检测到该各个任务节点当中,第一任务节点的任务参数的同步状态为未同步时,直接将该第一任务节点确定为需要在容灾集群下重跑以待重新执行的目标节点。[0136]步骤s402,若所述第一任务节点的父节点为待重新执行的节点时,则确定所述第一任务节点为所述目标节点;[0137]容灾恢复设备在检测各个任务节点各自任务参数的同步状态为同步完成还是未同步,来确定各个任务节点的同时,还通过检测该各个任务节点的父节点是否为已经确定的需要在容灾集群下重跑以待重新执行的目标节点,如此,在检测到第一任务节点的父节点为待重新执行的目标节点时,即直接将该第一任务节点确定为需要在容灾集群下重跑以待重新执行的目标节点。[0138]具体地,例如,容灾恢复设备通过深度优先的方式遍历获取到的预设主集群在发生灾难时,该预设主集群的调度系统正在执行的每一个工作流,如果容灾恢复设备遍历到当前工作流中第一任务节点的所有父节点的状态已经被标记为无需重跑(disableexecute),并且,该第一任务节点的任务参数—输入数据和输出数据的同步状态也为同步完成,则容灾恢复设备确定该第一任务节点非为需进行重跑以重新调度执行的目标节点,并将该第一任务节点也标记为无需重跑(disableexecute)的状态。而如果,容灾恢复设备遍历到当前工作流的第一任务节点的父节点中,有某个父节点的状态被标记为需重新执行(enableexecute),或者,容灾恢复设备遍历到的该第一任务节点的任务参数——输入数据和输出数据的同步状态为未同步,则容灾恢复设备即直接确定该第一任务节点为需进行重跑以重新调度执行的目标节点,并将该第一任务节点标记为需重新执行(enableexecute)。[0139]本发明实施例提供一种数据的容灾恢复方法,通过容灾恢复设备在与发生灾难的预设主集群的灾备数据库之间建立通信连接之前,先执行数据同步任务以令预设主集群的数据库,在该预设主集群提供服务执行数据处理任务的过程中,将数据同步至容灾集群中的灾备数据库以供后续快速进行容灾切换。而容灾恢复设备在令预设主集群的数据库同步数据至灾备数据库的过程当中,先接收基于工作人员配置生成的数据同步任务,从而解析该数据同步任务来确定需要从该预设主集群的数据库中读取并同步至灾备数据库中的待同步元数据,容灾恢复设备在确定需要从该预设主集群的数据库中读取并同步至灾备数据库中的待同步元数据之后,即执行该数据同步任务以将该待同步元数据拉取至灾备数据库中对应的存储路径下进行存储。然后,容灾恢复设备通过持续的监测该数据同步任务的执行状态,以在每一个数据同步任务执行完毕时,进一步针对该预设主集群的数据库和灾备数据库各自所存储的数据进行一致性验证,从而确保将预设主集群的数据库中的待同步元数据,完整地同步至灾备数据库当中。[0140]如此,容灾恢复设备即可在进行容灾切换的过程中,即可通过预先基于数据与数据处理任务之间的血缘关系构建的系链模型,并结合工作流中任务节点各自任务参数的同步状态,来进行主集群发生灾难情况下切换容灾集群的容灾恢复操作,可以实现快速进行容灾切换和快速恢复的待重新执行的任务节点,达成了快速和精细化进行容灾切换的目的,从而提高了容灾恢复效率。[0141]进一步地,本发明还提供一种数据的容灾恢复系统。请参照图13,图13为本发明数据的容灾恢复系统一实施例的功能模块示意图。如图13所示,本发明数据的容灾恢复系统,包括:[0142]连接模块10,用于建立与预设主集群的灾备数据库之间的通信连接;[0143]工作流读取模块20,用于通过所述通信连接读取所述预设主集群执行的工作流;[0144]获取模块30,用于根据预设的关系链模型获取所述工作流中各任务节点的任务参数,其中,所述关系链模型基于数据与数据处理任务之间的血缘关系构建得到;[0145]恢复模块40,用于检测所述任务参数的同步状态,以根据所述同步状态确定各所述任务节点中待重新执行的目标节点,并触发容灾恢复机制执行所述目标节点。[0146]进一步地,本发明数据的容灾恢复系统,还包括:[0147]关系链构建模块,用于基于数据与数据处理任务之间的血缘关系构建关系链模型。[0148]进一步地,关系链构建模块,包括:[0149]第一构建单元,用于从所述预设主集群中获取血缘数据建立数据处理执行任务与数据之间的第一血缘关系;[0150]第二构建单元,用于解析对象简谱文件建立所述数据处理执行任务与数据处理任务之间的第二血缘关系;[0151]第三构建单元,用于融合所述第一血缘关系和所述第二血缘关系确定所述数据与所述数据处理任务之间的血缘关系以构建得到关系链模型。[0152]进一步地,所述任务参数包括所述任务节点的输入数据和输出数据,获取模块30,包括:[0153]确定单元,用于确定所述工作流的各所述任务节点;[0154]获取单元,用于根据各所述任务节点分别构建查询语句从所述关系链模型中索引各所述任务节点各自的输入数据和输出数据。[0155]进一步地,本发明数据的容灾恢复系统,还包括:[0156]数据同步模块,用于执行预设的数据同步任务以令所述预设主集群的数据库同步数据至所述灾备数据库。[0157]进一步地,数据同步模块,包括:[0158]接收单元,用于接收所述数据同步任务,并从所述预设主集群的数据库中读取所述数据同步任务指向的待同步元数据;[0159]任务执行单元,用于执行所述数据同步任务以将所述待同步元数据拉取至所述灾备数据库中进行存储;[0160]验证单元,用于监控所述数据同步任务的执行状态并针对所述预设主集群的数据库和所述灾备数据库各自存储的数据进行一致性验证。[0161]进一步地,任务执行单元,包括:[0162]路径获取子单元,用于获取所述待同步元数据在所述预设主集群的数据库中第一存储路径;以及,确定所述灾备数据库中与所述第一存储路径相对应的第二存储路径;[0163]数据存储子单元,用于按照第二存储路径将所述待同步元数据存储在所述灾备数据库中。[0164]进一步地,所述同步状态包括:同步完成和未同步,恢复模块40,包括:[0165]第一重跑节点确定单元,用于若各所述任务节点中第一任务节点的任务参数的同步状态为未同步,则确定所述第一任务节点为待重新执行的目标节点;[0166]第二重跑节点确定单元若所述第一任务节点的父节点为待重新执行的节点时,则确定所述第一任务节点为所述目标节点。[0167]其中,上述数据的容灾恢复系统中任务调度节点的各个模块的功能实现,与上述数据的容灾恢复方法实施例中各步骤相对应,其功能和实现过程在此处不再一一赘述。[0168]本发明还提供一种计算机存储介质,该计算机存储介质上存储有数据的容灾恢复程序,所述数据的容灾恢复程序被处理器执行时实现如以上任一项实施例所述的数据的容灾恢复方法的步骤。[0169]本发明计算机存储介质的具体实施例与上述数据的容灾恢复方法各实施例基本相同,在此不作赘述。[0170]本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现如以上任一项实施例所述的数据的容灾恢复方法的步骤。[0171]本发明计算机存储介质的具体实施例与上述数据的容灾恢复方法各实施例基本相同,在此不作赘述。[0172]需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。[0173]上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。[0174]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。[0175]以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的
技术领域
:,均同理包括在本发明的专利保护范围内。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献