CN111324667B - 一种数据同步方法、装置、电子设备及存储介质 - Google Patents

一种数据同步方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN111324667B
CN111324667B CN202010096899.7A CN202010096899A CN111324667B CN 111324667 B CN111324667 B CN 111324667B CN 202010096899 A CN202010096899 A CN 202010096899A CN 111324667 B CN111324667 B CN 111324667B
Authority
CN
China
Prior art keywords
task
subtask
instruction
processing node
target data
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.)
Active
Application number
CN202010096899.7A
Other languages
English (en)
Other versions
CN111324667A (zh
Inventor
冯赞锋
曹舰航
苏治武
尹武松
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Dajia Internet Information Technology Co Ltd
Original Assignee
Beijing Dajia Internet Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Dajia Internet Information Technology Co Ltd filed Critical Beijing Dajia Internet Information Technology Co Ltd
Priority to CN202010096899.7A priority Critical patent/CN111324667B/zh
Publication of CN111324667A publication Critical patent/CN111324667A/zh
Application granted granted Critical
Publication of CN111324667B publication Critical patent/CN111324667B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/275Synchronous replication

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开关于一种数据同步方法、装置、电子设备及存储介质,涉及数据处理技术领域,该数据同步方法应用于客户端、协调服务器以及任务处理节点,包括:客户端响应于在用户界面输入的任务管理操作,生成相应的任务管理指令;其中所述任务管理操作用于管理将源数据同步至目标数据系统中的任务;将所述任务管理指令发送给协调服务器,以使所述协调服务器根据所述任务管理指令管理各个子任务处理节点的任务。通过该方法,解决了相关技术中对于从多种不同的数据源获取数据,需要针对不同数据源的不同的配置文件,故此导致运维和管理的成本十分高的问题。

Description

一种数据同步方法、装置、电子设备及存储介质
技术领域
本公开涉及数据处理技术领域,特别涉及一种数据同步方法、装置、电子设备及存储介质。
背景技术
随着当前互联网技术的发展,互联网中具有许多不同的数据源,例如数据库、文件服务器、Kafka(一个开源流处理平台)等。当需要将各种不同的数据源的数据充分利用集群进行高速运算和存储的时候,由于数据源的种类多并且数据量庞大,故此需要一个可靠的系统或框架来实现。
相关技术中,可选的,存在Apache Flume系统,该系统是一个分布式,可靠且可用的系统,可有效地从不同的数据源的数据移动到一个集中式的数据存储区。或者,可选的,相关技术中存在一个通用的数据提取框架如Gobblin框架,可从各种数据源提取大量数据到分布式系统上,并通过该分布式系统管理所有不同数据源的元数据。但无论何种任务,对于从多种不同的数据源获取数据,需要运维人员维护不同数据源的各自的配置文件,当数据源较多时,需要维护多个配置文件来实现对不同数据源的任务的管理,包括任务分配和任务处理,故此基于配置文件的形式管理任务的方式操作复杂,对运维人员的技术要求较高,导致运维和管理的成本较高。
发明内容
本公开提供了一种数据同步方法、装置、电子设备及存储介质,用以至少解决相关技术中,对于从多种不同的数据源获取数据,需要针对不同数据源的不同的配置文件,故此导致运维和管理的成本十分高的问题。
根据本公开实施例的第一方面,提供一种数据同步方法,应用于客户端,包括:
响应于在用户界面输入的任务管理操作,生成相应的任务管理指令;其中所述任务管理操作用于管理将源数据同步至目标数据系统中的任务;
将所述任务管理指令发送给协调服务器,以使所述协调服务器根据所述任务管理指令管理各个子任务处理节点的任务。
在一个实施例中,所述任务管理操作包括以下中的一种:新增任务、变更已有任务、删除已有任务。
在一个实施例中,所述方法还包括:
获取各子任务处理节点的任务处理状态并在所述用户界面中展示。
在一个实施例中,所述任务处理状态包括已完成任务、未完成任务。
在一个实施例中,所述方法还包括:
根据所述任务处理状态确定各任务从创建到完成所需的时长,并和期望时长进行比较;
在所述用户界面中展示所述比较结果。
根据本公开实施例的第二方面,提供一种数据同步方法,应用于协调服务器,包括:
接收客户端发送的任务管理指令,所述任务管理指令为所述客户端响应于在用户界面输入的任务管理操作生成的;其中,所述任务管理操作用于管理将源数据同步至目标数据系统中的任务;
根据所述任务管理指令,管理各子任务处理节点的任务。
在一个实施例中,所述方法还包括:
获取各个子任务处理节点的任务处理状态;
将各子任务处理节点的任务处理状态,发送给所述客户端展示。
在一个实施例中,所述任务管理指令包括以下中的一种:新增任务指令、变更已有任务指令、删除已有任务指令。
在一个实施例中,若所述任务管理指令为所述新增任务指令,则所述根据所述任务管理指令,管理各子任务处理节点的任务,包括:
根据所述新增任务指令,对新增任务进行分解,得到至少一个子任务;
并根据各个子任务处理节点的任务处理状态,选择至少一个子任务处理节点;并,
将所述至少一个子任务分发给选择的所述至少一个子任务处理节点。
在一个实施例中,若所述任务管理指令为所述变更已有任务指令,则所述根据所述任务管理指令,管理各子任务处理节点的任务,包括:
根据所述变更已有任务指令,确定待变更任务标识以及变更后的任务标识;
根据各个子任务处理节点的任务处理状态中的已有任务标识,确定持有所述待变更任务标识的子任务处理节点作为待管理节点;
将所述待管理节点中的所述待变更任务标识对应的任务更新为所述变更后的任务标识对应的任务。
在一个实施例中,若所述任务管理指令为所述删除已有任务指令,则所述根据所述任务管理指令,管理各个子任务处理节点的任务,包括:
根据所述删除已有任务指令,确定待删除任务标识;
根据各个子任务处理节点的任务处理状态中的已有任务标识,确定持有所述待删除任务标识的子任务处理节点作为待管理节点;
将所述待管理节点中的所述待删除任务标识对应的任务删除。
在一个实施例中,所述获取各个子任务处理节点的任务处理状态之后,所述方法还包括:
监听各子任务处理节点的存活状态;
若监听到任一子任务处理节点发生故障,将发生故障的子任务处理节点的任务迁移到其他子任务处理节点。
在一个实施例中,所述方法还包括:
控制各个子任务处理节点按照指定周期,将指定周期内处理完的任务发布至目标数据系统中。
根据本公开实施例的第三方面,提供一种数据同步方法,应用于子任务处理节点,包括:
从协调服务器接收用于将源数据同步至目标数据系统中的任务;
执行接收到的任务,并,配合所述协调服务器执行任务管理指令以完成任务管理,其中,所述任务管理指令是客户端响应于在用户界面输入的任务管理操作而生成并发送给所述协调服务器的。
在一个实施例中,所述执行接收到的任务,包括:
读取所述任务的原始二进制数据,所述原始二进制数据是所述任务的源数据经序列化操作之后得到的;并,
从转换信息服务器中读取与所述任务的源数据类型以及所述目标数据系统的目标数据类型对应的描述文件,其中,所述描述文件供所述转换信息服务器中生成与所述目标数据系统对应的目标表结构的表;
根据所述描述文件将所述原始二进制数据映射与所述目标表结构对应的目标数据;并,
将所述目标数据写入到所述目标表结构对应的表中。
在一个实施例中,所述方法还包括:
发送针对所述任务的任务处理状态给状态管理器,以使所述状态管理器提交所述任务处理状态给所述协调服务器。
根据本公开实施例的第四方面,提供一种数据同步装置,应用于客户端,包括:
生成模块,被配置为执行响应于在用户界面输入的任务管理操作,生成相应的任务管理指令;其中所述任务管理操作用于管理将源数据同步至目标数据系统中的任务;
第一发送模块,被配置为执行将所述任务管理指令发送给协调服务器,以使所述协调服务器根据所述任务管理指令管理各个子任务处理节点的任务。
在一个实施例中,所述任务管理操作包括以下中的一种:新增任务、变更已有任务、删除已有任务。
在一个实施例中,所述装置还包括:
第一展示模块,被配置为执行获取各子任务处理节点的任务处理状态并在所述用户界面中展示。
在一个实施例中,所述任务处理状态包括已完成任务、未完成任务。
在一个实施例中,所述装置还包括:
比较模块,被配置为执行根据所述任务处理状态确定各任务从创建到完成所需的时长,并和期望时长进行比较;
第二展示模块,被配置为执行在所述用户界面中展示所述比较结果。
根据本公开实施例的第五方面,提供一种数据同步装置,应用于协调服务器,包括:
第一接收模块,被配置为执行接收客户端发送的任务管理指令,所述任务管理指令为所述客户端响应于在用户界面输入的任务管理操作生成的;其中,所述任务管理操作用于管理将源数据同步至目标数据系统中的任务;
管理模块,被配置为执行根据所述任务管理指令,管理各子任务处理节点的任务。
在一个实施例中,所述装置还包括:
获取模块,被配置为执行获取各个子任务处理节点的任务处理状态;
第二发送模块,被配置为执行将各子任务处理节点的任务处理状态,发送给所述客户端展示。
在一个实施例中,所述任务管理指令包括以下中的一种:新增任务指令、变更已有任务指令、删除已有任务指令。
在一个实施例中,若所述任务管理指令为所述新增任务指令,则所述管理模块,被配置为执行根据所述任务管理指令,管理各子任务处理节点的任务,包括:
根据所述新增任务指令,对新增任务进行分解,得到至少一个子任务;
并根据各个子任务处理节点的任务处理状态,选择至少一个子任务处理节点;并,
将所述至少一个子任务分发给选择的所述至少一个子任务处理节点。
在一个实施例中,若所述任务管理指令为所述变更已有任务指令,则所述管理模块,被配置为执行根据所述任务管理指令,管理各子任务处理节点的任务,包括:
根据所述变更已有任务指令,确定待变更任务标识以及变更后的任务标识;
根据各个子任务处理节点的任务处理状态中的已有任务标识,确定持有所述待变更任务标识的子任务处理节点作为待管理节点;
将所述待管理节点中的所述待变更任务标识对应的任务更新为所述变更后的任务标识对应的任务。
在一个实施例中,若所述任务管理指令为所述删除已有任务指令,则所述管理模块,被配置为执行根据所述任务管理指令,管理各个子任务处理节点的任务,包括:
根据所述删除已有任务指令,确定待删除任务标识;
根据各个子任务处理节点的任务处理状态中的已有任务标识,确定持有所述待删除任务标识的子任务处理节点作为待管理节点;
将所述待管理节点中的所述待删除任务标识对应的任务删除。
在一个实施例中,所述装置还包括:
监听模块,被配置为获取各个子任务处理节点的任务处理状态之后执行监听各子任务处理节点的存活状态;
迁移模块,被配置为获取各个子任务处理节点的任务处理状态之后执行若监听到任一子任务处理节点发生故障,将发生故障的子任务处理节点的任务迁移到其他子任务处理节点。
在一个实施例中,所述装置还包括:
发布模块,被配置为执行控制各个子任务处理节点按照指定周期,将指定周期内处理完的任务发布至目标数据系统中。
根据本公开实施例的第六方面,提供一种数据同步装置,应用于子任务处理节点,包括:
第二接收模块,被配置为执行从协调服务器接收用于将源数据同步至目标数据系统中的任务;
执行模块,被配置为执行接收到的任务,并,配合所述协调服务器执行任务管理指令以完成任务管理,其中,所述任务管理指令是客户端响应于在用户界面输入的任务管理操作而生成并发送给所述协调服务器的。
在一个实施例中,所述执行模块,被配置为执行接收到的任务,包括:
读取所述任务的原始二进制数据,所述原始二进制数据是所述任务的源数据经序列化操作之后得到的;并,
从转换信息服务器中读取与所述任务的源数据类型以及所述目标数据系统的目标数据类型对应的描述文件,其中,所述描述文件供所述转换信息服务器中生成与所述目标数据系统对应的目标表结构的表;
根据所述描述文件将所述原始二进制数据映射与所述目标表结构对应的目标数据;并,
将所述目标数据写入到所述目标表结构对应的表中。
在一个实施例中,所述装置还包括:
第三发送模块,被配置为执行发送针对所述任务的任务处理状态给状态管理器,以使所述状态管理器提交所述任务处理状态给所述协调服务器。
根据本公开实施例的第七方面,提供一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如第一方面、第二方面和第三方面所述的方法。
根据本公开实施例的第八方面,提供一种计算机存储介质,所述计算机存储介质存储有计算机可执行指令,所述计算机可执行指令用于执行如第一方面、第二方面和第三方面所述的方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
本公开关于一种数据同步方法、装置、电子设备及存储介质,应用于客户端、协调服务器以及任务处理节点,包括:客户端响应于在用户界面输入的任务管理操作,生成相应的任务管理指令;其中所述任务管理操作用于管理将源数据同步至目标数据系统中的任务;将所述任务管理指令发送给协调服务器,以使所述协调服务器根据所述任务管理指令管理各个子任务处理节点的任务。通过该方法,解决了相关技术中对于从多种不同的数据源获取数据,需要针对不同数据源的不同的配置文件,故此导致运维和管理的成本十分高的问题。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1为本公开实施例提供的一种终端设备的结构图;
图2A为本公开实施例提供的一种数据同步方法的应用场景示意图;
图2B为本公开实施例提供的一种数据同步方法的框架图;
图2C为本公开实施例提供的另一种数据同步方法的框架图;
图3为本公开实施例的一种用户界面的结构示意图;
图4为本公开实施例的一种用户界面的界面展示图;
图5为本公开实施例的一种协调服务器的结构示意图;
图6为本公开实施例的一种子任务处理节点的结构示意图;
图7为本公开实施例的一种转换信息服务器的结构示意图;
图8为本公开实施例的一种状态管理器的结构示意图;
图9A为本公开实施例提供的一种数据同步系统的结构示意图;
图9B为本公开实施例提供的一种数据同步方法的流程示意图;
图9C为本公开实施例提供的一种数据同步方法的部分流程示意图;
图10为本公开实施例提供的一种数据同步方法的应用于客户端的流程示意图;
图11为本公开实施例提供的一种数据同步方法的应用于协调服务器的流程示意图;
图12为本公开实施例提供的一种各个子任务处理节点周期上报的示意图;
图13为本公开实施例提供的一种数据同步方法的应用于子任务处理节点的流程示意图;
图14为本公开实施例提供的一种数据同步装置的应用于客户端的结构示意图;
图15为本公开实施例提供的一种数据同步装置的应用于协调服务器的结构示意图;
图16为本公开实施例提供的一种数据同步装置的应用于子任务处理节点的结构示意图;
图17为本公开实施例提供的一种集群数据库系统的结构示意图;
图18为本公开实施例提供的一种数据库系统的结构示意图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
本公开实施例涉及的多个,是指大于或等于两个。
本公开实施例涉及的终端设备,又可以称为用户设备(user equipment,UE),用户设备上可以安装各种应用,例如本公开所说的客户端。终端设备可以是智能手机、平板电脑、各类可穿戴设备、车载设备等。终端设备中可以安装各种应用程序,比如微信、地图等。本公开实施例提供了一种数据同步方法,该方法适用于终端设备中。图1示出了一种可能的终端设备的结构图。参阅图1所示,所述终端设备100包括:射频(Radio Frequency,RF)电路110、电源120、处理器130、存储器140、输入单元150、显示单元160、摄像头170、通信接口180、以及无线保真(Wireless Fidelity,WiFi)模块190等部件。本领域技术人员可以理解,图1中示出的终端设备的结构并不构成对终端设备的限定,本公开实施例提供的终端设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图1对所述终端设备100的各个构成部件进行具体的介绍:
所述RF电路110可用于通信或通话过程中,数据的接收和发送。特别地,所述RF电路110在接收到基站的下行数据后,发送给所述处理器130处理;另外,将待发送的上行数据发送给基站。通常,所述RF电路110包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low Noise Amplifier,LNA)、双工器等。
此外,RF电路110还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(Global System of Mobilecommunication,GSM)、通用分组无线服务(General Packet Radio Service,GPRS)、码分多址(Code Division Multiple Access,CDMA)、宽带码分多址(Wideband Code DivisionMultiple Access,WCDMA)、长期演进(Long Term Evolution,LTE)、电子邮件、短消息服务(Short Messaging Service,SMS)等。
WiFi技术属于短距离无线传输技术,所述终端设备100通过WiFi模块190可以连接接入点(Access Point,AP),从而实现数据网络的访问。所述WiFi模块190可用于通信过程中,数据的接收和发送。
所述终端设备100可以通过所述通信接口180与其他设备实现物理连接。在一个实施例中,所述通信接口180与所述其他设备的通信接口通过电缆连接,实现所述终端设备100和其他设备之间的数据传输。
由于在本公开实施例中,所述终端设备100能够实现通信业务,向其他联系人发送信息,因此所述终端设备100需要具有数据传输功能,即所述终端设备100内部需要包含通信模块。虽然图1示出了所述RF电路110、所述WiFi模块190、和所述通信接口180等通信模块,但是可以理解的是,所述终端设备100中存在上述部件中的至少一个或者其他用于实现通信的通信模块(如蓝牙模块),以进行数据传输。
例如,当所述终端设备100为手机时,所述终端设备100可以包含所述RF电路110,还可以包含所述WiFi模块190;当所述终端设备100为计算机时,所述终端设备100可以包含所述通信接口180,还可以包含所述WiFi模块190;当所述终端设备100为平板电脑时,所述终端设备100可以包含所述WiFi模块。
所述存储器140可用于存储软件程序以及模块。所述处理器130通过运行存储在所述存储器140的软件程序以及模块,从而执行所述终端设备100的各种功能应用以及数据处理。
在一个实施例中,所述存储器140可以主要包括存储程序区和存储数据区。其中,存储程序区可存储操作系统、各种应用程序(比如通信应用)以及人脸识别模块等;存储数据区可存储根据所述终端设备的使用所创建的数据(比如各种数据同步任务,可访问的源数据库,可访问的目标数据库、不同运维人员的操作权限,图片、视频文件等多媒体文件,以及人脸信息模板)等。
此外,所述存储器140可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
所述输入单元150可用于接收用户输入的数字或字符信息,以及产生与所述终端设备100的用户设置以及功能控制有关的键信号输入。
在一个实施例中,输入单元150可包括触控面板151以及其他输入设备152。
其中,所述触控面板151,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在所述触控面板151上或在所述触控面板151附近的操作),并根据预先设定的程式驱动相应的连接装置。在一个实施例中,所述触控面板151可以包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给所述处理器130,并能接收所述处理器130发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现所述触控面板151。
在一个实施例中,所述其他输入设备152可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
所述显示单元160可用于显示由用户输入的信息或提供给用户的信息以及所述终端设备100的各种菜单。所述显示单元160即为所述终端设备100的显示系统,用于呈现界面,实现人机交互。
所述显示单元160可以包括显示面板161。在一个实施例中,所述显示面板161可以采用液晶显示屏(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置。
进一步的,所述触控面板151可覆盖所述显示面板161,当所述触控面板151检测到在其上或附近的触摸操作后,传送给所述处理器130以确定触摸事件的类型,随后所述处理器130根据触摸事件的类型在所述显示面板161上提供相应的视觉输出,例如可输出用于管理各种数据同步任务的管理界面。
虽然在图1中,所述触控面板151与所述显示面板161是作为两个独立的部件来实现所述终端设备100的输入和输入功能,但是在某些实施例中,可以将所述触控面板151与所述显示面板161集成而实现所述终端设备100的输入和输出功能。
所述处理器130是所述终端设备100的控制中心,利用各种接口和线路连接各个部件,通过运行或执行存储在所述存储器140内的软件程序和/或模块,以及调用存储在所述存储器140内的数据,执行所述终端设备100的各种功能和处理数据,从而实现基于所述终端设备的多种业务。
在一个实施例中,所述处理器130可包括一个或多个处理单元。在一个实施例中,所述处理器130可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到所述处理器130中。
所述摄像头170,用于实现所述终端设备100的拍摄功能,拍摄图片或视频。所述摄像头170还可以用于实现终端设备100的扫描功能,对扫描对象(二维码/条形码)进行扫描。
所述终端设备100还包括用于给各个部件供电的电源120(比如电池)。在一个实施例中,所述电源120可以通过电源管理系统与所述处理器130逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗等功能。
尽管未示出,所述终端设备100还可以包括至少一种传感器、音频电路等,在此不再赘述。
随着当前互联网技术的发展,互联网中具有许多不同的数据源,例如数据库、文件服务器、Kafka等。当需要将各种不同的数据源的数据充分利用集群进行高速运算和存储的时候,由于数据源的种类多并且数据量庞大,故此需要一个可靠的系统或框架来实现。
相关技术中,可选的,存在一种系统为Apache Flume系统,是一个分布式,可靠且可用的系统,可有效地从不同的数据源的数据移动到一个集中式的数据存储区。或者,存在一个通用的数据提取框架如Gobblin框架,可从各种数据源提取大量数据到分布式系统上,并通过该分布式系统管理所有不同数据源的元数据。但无论何种任务,对于从多种不同的数据源获取数据,需要针对不同数据源的不同的配置文件,故此导致运维和管理的成本十分高。
有鉴于此,本公开提供一种数据同步方法。该方法可以应用于数据库系统(Database System)。数据库系统是为适应数据处理的需要而发展起来的一种较为理想的数据处理系统。数据库系统一般由以下三部分组成:(1)数据库(database,DB),指长期存储在计算机内的,有组织,可共享的数据的集合。数据库中的数据按一定的数学模型组织、描述和存储,具有较小的冗余,较高的数据独立性和易扩展性,并可为各种用户共享。(2)硬件,包括存储数据所需的数据处理器,例如内存和/或磁盘。(3)软件,包括DBMS(databasemanagement system,数据库管理系统),DBMS是数据库系统的核心软件,是用于科学地组织和存储数据,以及高效获取和维护数据的系统软件,数据库引擎是DBMS的核心内容。本公开中的转换信息服务器以及提供数据同步的客户端设备可构成数据库系统,下面结合图示对本公开提供的数据同步方法进行说明。
参阅图2A,本公开实施例提供的一种数据同步方法的应用场景示意图,该场景包括用户20、客户端21、转换信息服务器22、运维人员23和终端24。
该方法中,可提供一个用户界面,用户或运维人员可通过这个界面实时进行任务的管理和监控,从而实现对于数据同步的可视化,以及便于进行运维和管理,在用户界面之后,有相应的技术完成用户通过界面安排的任务,无需通过配置文件实现任务的管理,对运维人员的专业要求也降低,任务的管理实现可视化,从而降低管理和运维的成本。
例如,用户20可通过客户端21上的用户界面输入源数据,客户端21根据用户输入的任务管理操作,生成相应的任务管理指令并发送给协调服务器,以使所述协调服务器根据所述任务管理指令管理各个子任务处理节点的任务。协调服务器接收到客户端发送的任务管理指令之后,会根据所述任务管理指令,管理各子任务处理节点的任务。当各子任务处理节点从协调服务器接收用于将源数据同步至目标数据系统中的任务之后,执行接收到的任务,即将源数据迁移到目标数据系统中。在子任务处理节点执行接收到的任务时,需要从转换信息服务器22中读取与所述任务的源数据类型以及所述目标数据系统的目标数据类型对应的描述文件,用以生成目标数据。
其中客户端21和转换信息服务器22可通过通信网络进行通信连接,该网络可以为局域网、广域网等。
转换信息服务器22可以为任何能够支持相应的数据库处理的服务器设备。
实施时,前述子任务处理节点执行接收到的任务可由运维人员23通过终端24进行监控,从而实现对于本公开实现数据同步过程的运维,以保障数据同步任务的顺利执行。
本公开提供的一种数据同步方法包括几个主要的部分:用户界面,也可称WebApp;协调服务器,也可称Coordinator;子任务处理节点,也可称Worker;转换信息服务器,也可称Schema Service服务器;状态管理器,也可称State Manager。在一个实施例中,参阅图2B,为本公开实施例提供的一种数据同步方法的框架图,包括:客户端B1,其中客户端B1包含用户界面;协调服务器B2;多个子任务处理节点B3。在另一个实施例中,参阅图2C,为本公开实施例提供的另一种数据同步方法的框架图,包括:客户端B1,其中客户端包含用户界面;协调服务器B2;多个子任务处理节点B3;转换信息服务器B4;状态管理器B5;其中状态管理器B5是可选的,子任务处理节点也可发送各自的任务处理状态给协调服务器B2或者客户端B1。为更方便的理解本公开的技术方案,以下首先对这几个主要的部分进行说明:
一、用户界面
参阅图3,为本公开实施例的一种用户界面的结构示意图,该界面用于填入源数据、展示任务处理状态、展示任务完成所需时长和期望时长的比较结果,参阅图4,为本公开实施例的一种用户界面的界面展示图,其中,为便于适应不同的源数据类型以及目标数据系统的数据类型,用户界面可支撑运维人员输入用于转换数据类型的文件,可选的,例如可通过.proto文件的形式实现将源数据类型转换成目标数据类型,以便于存储至目标数据系统中。
该用户界面包括:CURD、Metadata、监控大屏Dashboard以及Event&SLA。实施时,CURD用于进行任务的管理,包括但不限于:新增任务、变更已有任务、删除已有任务;用户界面中的Metadata用于记录任务的总数量和任务相关信息、源数据集群(例如当前可支持哪些源数据,当前采用的源数据包括哪些等)、目标数据集群(例如当前可支持的目标数据库,以及当前可采用的目标数据库等)、目标表创建者(例如可以是维护目标数据库的协调服务器、也可以是执行相应任务的子任务处理节点,还可以是任务创建者)以及数据量(例如可以是源数据的数据量,目标数据的数据量等可根据实际需求确认业务所需的需要展示的信息);监控大屏Dashboard用于提供监控所有任务的任务处理状态,例如当前正在运行的任务信息,失败任务信息;Event&SLA的Event表示生成Event事件,例如新增一个任务时会形成一个Event事件,该事件可用于形成运行日志,以便于运维人员查看;Event&SLA的SLA为评估系统,用于评估整个系统的相关情况,例如延时情况(可用于表示一个任务的从创建到完成所需的时长)。
此外,在一个实施例中,用户界面可通过多个如图1所述的用户设备同时进行监控、控制、输入、存储和评估,从而实现用户界面可提供的功能的水平扩展,以实现不同的运维人员和用户实施管理和运维。例如,不同的功能可交由负责不同业务的运维人员管理,例如任务的创建和任务处理进度的监控可交由数据生成制作的运维人员,而整个系统运行性能可交由系统运维人员查看和维护。
二、协调服务器
参阅图5,为本公开实施例的一种协调服务器的结构示意图,协调服务器用于根据客户端生成的任务管理指令和子任务处理节点的任务处理状态,管理子任务处理节点。该协调服务器包括:scheduler、publisher以及监视器(也可称Monitor)。实施时,scheduler负责接收到状态管理器发送的子任务处理节点的任务处理状态后,对于子任务处理节点的执行任务进行管理;publisher负责控制各个子任务处理节点按照指定周期,将指定周期内处理完的任务发布至目标数据系统中,例如设置每间隔固定时长发送一次,或者每得到固定任务数量的处理结果后发送一次以便于将源数据迁移至目标数据系统的目标数据库,用以实现数据的同步,保证一致性以及任务失败时可实现对失败任务上次发送的数据进行恢复。
此外,在一个实施例中,协调服务器一般存在一个主协调服务器和一个备用的协调服务器,当主协调服务器对于子任务处理节点的任务处理不过来,或者主协调服务器出现故障的时候,可通过备用的协调服务器保障本公开的执行。
三、子任务处理节点
参阅图6,为本公开实施例的一种子任务处理节点的结构示意图,子任务处理节点用于执行协调服务器分配的任务,包括:Fetcher、Driver、Transformation以及Writer。实施时,Fetcher用于接收或读取源数据序列化之后的原始二进制数据;Driver用于从转换信息服务器中读取与子任务处理节点待处理任务的源数据类型以及目标数据系统的目标数据类型对应的描述文件;Transformation则用于根据从Driver中读取到的描述文件将从Fetcher中接收到的原始二进制数据映射成与目标表结构对应的目标数据;最后,将得到的目标数据进行反序列化之后,通过Writer将得到的目标数据写入目标表结构对应的表中。
此外,在一个实施例中,子任务处理节点可实现水平扩展,即可存在多个子任务处理节点来执行协调服务器的任务管理指令,从而保证各子任务处理节点运行的高效和可靠。
四、转换信息服务器
参阅图7,为本公开实施例的一种转换信息服务器的结构示意图,包括:描述文件,也可称Descriptor;仓库,也可称Git Repo以及Metadata。实施时,描述文件用于供转换信息服务器中生成与所述目标数据系统对应的目标表结构的表;仓库用于存储前述用户页面填入的源数据,例如.proto文件;转换信息服务器中的Metadata用于存储读取到的子任务处理节点待处理任务的源数据类型以及目标数据系统的目标数据类型对应的描述文件。
五、状态管理器
参阅图8,为本公开实施例的一种状态管理器的结构示意图,用于接收到各子任务处理节点的任务处理状态后,将子任务处理节点的任务处理状态反馈给协调服务器,以便于协调服务器对于子任务处理节点的任务进行协调和管理,包括:读取状态、提交状态。实施时,读取状态用于获取各子任务处理节点的任务处理状态;提交状态用于将获取到的各子任务处理节点的任务处理状态提交给协调服务器。
以上是对本公开的一种数据同步方法需要的各部分的具体作用进行的说明,参阅图9A,为本公开实施例提供的一种数据同步系统的结构示意图,用来说明本公开各部分的具体实施方式。此外,参阅图9B,为本公开关于图9A中的结构示意图相对应的流程示意图,用来说明本公开的实施,包括:
步骤901:客户端响应于在用户界面输入的任务管理操作,生成相应的任务管理指令;并将任务管理指令发送给协调服务器。
其中,任务管理操作用于管理将源数据同步至目标数据系统中的任务。将任务管理指令发送给协调服务器,是为了使协调服务器根据该任务管理指令管理各个子任务处理节点的任务。
步骤902:客户端响应于用户操作,接收输入的描述文件并分发给转换信息服务器保存。
实施时,源数据可支持多种不同的类型,例如Kafka系统的消息队列MQ、MySQL(一种关系型数据库)等源数据。
此外,步骤901和步骤902不限定执行顺序。
步骤903:转换信息服务器获取到描述文件后保存,并建立描述文件所针对的源数据类型和目标数据类型与描述文件之间的对应关系。
步骤904:转换信息服务器根据源数据的描述文件生成与目标数据系统对应的目标表结构的表。
其中,描述文件供所述转换信息服务器中生成与所述目标数据系统对应的目标表结构的表,并且生成的目标表结构的表是一个空表,用于各子任务处理节点将生成的目标数据填入到该表中。
当子任务处理节点接收到协调服务器用于将源数据同步至目标数据系统中的任务之后,执行以下步骤。
步骤905:子任务处理节点读取到对源数据序列化后的原始二进制数据。
步骤906:子任务处理节点从转换信息服务器中读取与所述任务的源数据类型以及目标数据系统的目标数据类型对应的描述文件。
其中,步骤905和步骤906不限定执行顺序。
步骤907:根据所述描述文件将所述原始二进制数据映射与所述目标表结构对应的目标数据;并将所述目标数据写入到所述目标表结构对应的表中。
在一个实施例中,在本公开方法的执行中,还包括状态管理器,用来接受各子任务处理节点的任务处理状态,参阅图9C,为本公开的一种数据同步方法的部分流程示意图,其实施方式包括:
步骤90a:各子任务处理节点发送针对各自任务的任务处理状态给状态管理器。
步骤90b:状态管理器提交各子任务处理节点的任务处理状态给协调服务器。
步骤90c:协调服务器接收到各子任务处理节点的任务处理状态之后,根据该任务处理状态对各子任务处理节点的任务进行管理。
例如,协调服务器监听各子任务处理节点的存活状态;若监听到任一子任务处理节点发生故障,将发生故障的子任务处理节点的任务迁移到其他子任务处理节点。
下面采用另一实施例对本公开提供的一种数据同步方法进一步说明,参阅图10,为本公开实施例提供的一种数据同步方法应用于客户端的流程示意图,包括:
步骤1001:响应于在用户界面输入的任务管理操作,生成相应的任务管理指令;其中所述任务管理操作用于管理将源数据同步至目标数据系统中的任务;
其中,任务管理操作包括以下中的一种:新增任务、变更已有任务、删除已有任务。例如,当任务管理操作为新增任务时,生成新增任务指令;同理,当任务管理操作为变更已有任务时,生成变更已有任务指令,当任务管理操作为删除已有任务时,生成删除已有任务指令。
步骤1002:将所述任务管理指令发送给协调服务器,以使所述协调服务器根据所述任务管理指令管理各个子任务处理节点的任务。
在一个实施例中,若所述任务管理指令为新增任务指令,将该新增任务指令发送给协调服务器,则协调服务器会根据该新增任务指令对新增任务进行分解,得到至少一个子任务。并且,根据各个子任务处理节点的任务处理状态,选择至少一个子任务处理节点;并,将所述至少一个子任务分发给选择的所述至少一个子任务处理节点。通过协调服务器根据客户端的任务管理指令对于各子任务管理节点任务的管理,可实现对于该任务管理指令的有效分配和管理,从而保障从源数据同步至目标系统中的任务高效、可靠的完成。
此外,获取各子任务处理节点的任务处理状态并在所述用户界面中展示;其中,该任务处理状态包括已完成任务、未完成任务。并且,可根据该任务处理状态确定各任务从创建到完成所需的时长,并和期望时长进行比较;以及,在所述用户界面中展示所述比较结果。通过用户界面的展示,可实现界面化管理,从而减少人工运维成本并且提升运维效率;此外,各任务处理状态通过该用户界面清晰的展示,便于监听异常和故障的产生;并且,通过实际任务完成时长和期望时长的比较结果的展示,便于监控系统目前的状况,以便于及时发现和解决问题。
需要说明的是,在用户界面中对各子任务处理节点的任务处理状态进行展示,除了通过协调服务器获取到各子任务处理节点的任务处理状态发送到用户界面中展示;可选的,还可通过各子任务处理节点的主动上报,从而获取到各子任务处理节点的任务处理状态;再或者,通过状态管理器的发送,从而获取到各子任务处理节点的任务处理状态。对于用户界面获取到各子任务处理节点的任务处理状态的实施方式在此不做限定。
参阅图11,为本公开实施例提供的一种数据同步方法应用于协调服务器的流程示意图,包括:
步骤1101:接收客户端发送的任务管理指令,所述任务管理指令为所述客户端响应于在用户界面输入的任务管理操作生成的;其中,所述任务管理操作用于管理将源数据同步至目标数据系统中的任务;
实施时,客户端发送的任务管理指令对应的包括新增任务指令、变更已有任务指令、删除已有任务指令中的一种。
步骤1102:根据所述任务管理指令,管理各子任务处理节点的任务。
实施时,为更有效地管理各子任务处理节点的任务,还需要获取各个子任务处理节点的任务处理状态,以便于协调服务器根据各个子任务处理节点的任务处理状态结合任务管理指令管理各子任务处理节点的任务。此外,当协调服务器监听各子任务处理节点的存活状态时;若监听到任一子任务处理节点发生故障,协调服务器可及时将发生故障的子任务处理节点的任务迁移到其他子任务处理节点。通过本实施例,可及时发现各子任务处理节点出现故障,并解决,保障任务的完成。
在一个实施例中,若所述任务管理指令为所述新增任务指令,则协调服务器根据该新增任务指令,对新增任务进行分解,得到至少一个子任务;并根据各个子任务处理节点的任务处理状态,选择至少一个子任务处理节点;并将所述至少一个子任务分发给选择的所述至少一个子任务处理节点。通过对于新增任务的分解,可跟有效和快速的完成任务。
在另一个实施例中,若所述任务管理指令为所述变更已有任务指令,则协调服务器根据该变更已有任务指令,确定待变更任务标识以及变更后的任务标识;并且根据各个子任务处理节点的任务处理状态中的已有任务标识,确定持有所述待变更任务标识的子任务处理节点作为待管理节点;最后将所述待管理节点中的所述待变更任务标识对应的任务更新为所述变更后的任务标识对应的任务。通过该实施例,可实现当出现变更任务时,协调服务器可及时对各子任务处理节点中的对应任务进行变更和协调。
在又一个实施例中,若所述任务管理指令为所述删除已有任务指令,则协调服务器根据该删除已有任务指令,确定待删除任务标识;并且根据各个子任务处理节点的任务处理状态中的已有任务标识,确定持有所述待删除任务标识的子任务处理节点作为待管理节点;最后将所述待管理节点中的所述待删除任务标识对应的任务删除。通过本实施例,当客户端响应到用户界面中需要删除任务时,及时通知协调服务器对于各子任务处理节点中的任务执行对应删除操作。
此外,协调服务器可以控制各个子任务处理节点按照指定周期,将指定周期内处理完的任务发布至目标数据系统中。例如,控制各个子任务处理节点每10分钟对本10分钟内完成的任务发布到目标数据系统中,参阅图12,为本公开实施例提供的一种各个子任务处理节点周期上报的示意图。或者,还可控制各个子任务处理节点没处理完固定的数据量对本处理完的数据量发布到目标数据系统中。通过各个子任务处理节点的周期性地发布当前处理完的任务,可保障当某周期的任务失败时,可对该失败的周期的上一发布的周期进行恢复,总而保障之前发布的数据已完成同步,而未因该周期的失败导致同步任务的失败;并且,一个子任务处理节点的任务故障不影响其他子任务处理节点的任务的执行,故此,极大地降低了故障导致的数据丢失率。
参阅图13,为本公开实施例提供的一种数据同步方法应用于子任务处理节点的流程示意图,包括:
步骤1301:从协调服务器接收用于将源数据同步至目标数据系统中的任务;
步骤1302:执行接收到的任务,并,配合所述协调服务器执行任务管理指令以完成任务管理,其中,所述任务管理指令是客户端响应于在用户界面输入的任务管理操作而生成并发送给所述协调服务器的。
实施时,子任务处理节点根据接收到的任务,该任务的目的是实现将源数据同步至目标数据系统中。子任务根据该任务需要读取该任务对应的源数据经序列化操作之后得到的原始二进制数据;并且从转换信息服务器中读取与所述任务的源数据类型以及所述目标数据系统的目标数据类型对应的描述文件,其中,该描述文件供所述转换信息服务器中生成与所述目标数据系统对应的目标表结构的表。各子任务处理节点接收到原始二进制数据和描述文件后,根据该描述文件将原始二进制数据映射成目标表结构对应的目标数据;并将映射得到的目标数据写入到目标表结构对应的表中。具体的,转换信息服务器可根据描述文件生成目标表结构的空表,而各子任务处理节点映射成目标数据填入到该表中,从而实现将源数据按照目标数据系统要求的目标数据类型进行存储,从而完成同步任务。
此外,各子任务处理节点会发送针对对应任务的任务处理状态给状态管理器,以使所述状态管理器提交所述任务处理状态给所述协调服务器。从而能使协调服务器根据各子任务处理节点的任务处理状态进行管理,以保障任务的完成。
通过本公开提供的一种数据同步方法,首先,当有需要将源数据同步至目标数据系统中的任务时,可在用户界面输入任务管理操作;其次,客户端响应到用户界面输入的任务管理操作之后,生成相应的任务管理指令并发送给协调服务器;协调服务器接收到该任务管理指令后,根据该执行管理各子任务处理节点的任务;最后,各子任务处理节点接收到协调服务器分配的任务执行。因此,通过本方法,实现了最大的数据同步的自动化,减少了人工运维成本;并且,通过协调服务器的管理,极大地降低了任务处理时间,使得相同的时间可处理更多的数据;以及,通过分各子任务处理节点并周期性发布已完成任务的实施方式,当其中某一子任务处理节点的某一周期内的任务同步失败时,不影响其他的任务;此外,本方法可支持多种不同的数据源。
基于相同的发明构思,参阅图14,为本公开实施例提供的一种数据同步装置的应用于客户端的结构示意图,该装置包括:生成模块1401以及第一发送模块1402。
生成模块1401,被配置为执行响应于在用户界面输入的任务管理操作,生成相应的任务管理指令;其中所述任务管理操作用于管理将源数据同步至目标数据系统中的任务;
第一发送模块1402,被配置为执行将所述任务管理指令发送给协调服务器,以使所述协调服务器根据所述任务管理指令管理各个子任务处理节点的任务。
在一个实施例中,所述任务管理操作包括以下中的一种:新增任务、变更已有任务、删除已有任务。
在一个实施例中,所述装置还包括:
第一展示模块,被配置为执行获取各子任务处理节点的任务处理状态并在所述用户界面中展示。
在一个实施例中,所述任务处理状态包括已完成任务、未完成任务。
在一个实施例中,所述装置还包括:
比较模块,被配置为执行根据所述任务处理状态确定各任务从创建到完成所需的时长,并和期望时长进行比较;
第二展示模块,被配置为执行在所述用户界面中展示所述比较结果。
基于相同的发明构思,参阅图15,为本公开实施例提供的一种数据同步装置的应用于协调服务器的结构示意图,该装置包括:第一接收模块1501以及管理模块1502。
第一接收模块1501,被配置为执行接收客户端发送的任务管理指令,所述任务管理指令为所述客户端响应于在用户界面输入的任务管理操作生成的;其中,所述任务管理操作用于管理将源数据同步至目标数据系统中的任务;
管理模块1502,被配置为执行根据所述任务管理指令,管理各子任务处理节点的任务。
在一个实施例中,所述装置还包括:
获取模块,被配置为执行获取各个子任务处理节点的任务处理状态;
第二发送模块,被配置为执行将各子任务处理节点的任务处理状态,发送给所述客户端展示。
在一个实施例中,所述任务管理指令包括以下中的一种:新增任务指令、变更已有任务指令、删除已有任务指令。
在一个实施例中,若所述任务管理指令为所述新增任务指令,则所述管理模块1502,被配置为执行根据所述任务管理指令,管理各子任务处理节点的任务,包括:
根据所述新增任务指令,对新增任务进行分解,得到至少一个子任务;
并根据各个子任务处理节点的任务处理状态,选择至少一个子任务处理节点;并,
将所述至少一个子任务分发给选择的所述至少一个子任务处理节点。
在一个实施例中,若所述任务管理指令为所述变更已有任务指令,则所述管理模块1502,被配置为执行根据所述任务管理指令,管理各子任务处理节点的任务,包括:
根据所述变更已有任务指令,确定待变更任务标识以及变更后的任务标识;
根据各个子任务处理节点的任务处理状态中的已有任务标识,确定持有所述待变更任务标识的子任务处理节点作为待管理节点;
将所述待管理节点中的所述待变更任务标识对应的任务更新为所述变更后的任务标识对应的任务。
在一个实施例中,若所述任务管理指令为所述删除已有任务指令,则所述管理模块1502,被配置为执行根据所述任务管理指令,管理各个子任务处理节点的任务,包括:
根据所述删除已有任务指令,确定待删除任务标识;
根据各个子任务处理节点的任务处理状态中的已有任务标识,确定持有所述待删除任务标识的子任务处理节点作为待管理节点;
将所述待管理节点中的所述待删除任务标识对应的任务删除。
在一个实施例中,所述装置还包括:
监听模块,被配置为获取各个子任务处理节点的任务处理状态之后执行监听各子任务处理节点的存活状态;
迁移模块,被配置为获取各个子任务处理节点的任务处理状态之后执行若监听到任一子任务处理节点发生故障,将发生故障的子任务处理节点的任务迁移到其他子任务处理节点。
在一个实施例中,所述装置还包括:
发布模块,被配置为执行控制各个子任务处理节点按照指定周期,将指定周期内处理完的任务发布至目标数据系统中。
基于相同的发明构思,参阅图16,为本公开实施例提供的一种数据同步装置的应用于子任务处理节点的结构示意图,该装置包括:第二接收模块1601以及执行模块1602。
第二接收模块1601,被配置为执行从协调服务器接收用于将源数据同步至目标数据系统中的任务;
执行模块1602,被配置为执行接收到的任务,并,配合所述协调服务器执行任务管理指令以完成任务管理,其中,所述任务管理指令是客户端响应于在用户界面输入的任务管理操作而生成并发送给所述协调服务器的。
在一个实施例中,所述执行模块1602,被配置为执行接收到的任务,包括:
读取所述任务的原始二进制数据,所述原始二进制数据是所述任务的源数据经序列化操作之后得到的;并,
从转换信息服务器中读取与所述任务的源数据类型以及所述目标数据系统的目标数据类型对应的描述文件,其中,所述描述文件供所述转换信息服务器中生成与所述目标数据系统对应的目标表结构的表;
根据所述描述文件将所述原始二进制数据映射与所述目标表结构对应的目标数据;并,
将所述目标数据写入到所述目标表结构对应的表中。
在一个实施例中,所述装置还包括:
第三发送模块,被配置为执行发送针对所述任务的任务处理状态给状态管理器,以使所述状态管理器提交所述任务处理状态给所述协调服务器。
参见图17,本公开实施例还提供一种集群数据库系统500,包括:包括硬件层507和运行在硬件层507之上的虚拟机监控器(VMM)501,以及多个虚拟机502。一个虚拟机可以作为集群数据库系统500的一个数据节点。可选第,还可以指定一个虚拟机作为协调节点。
具体的,虚拟机502是通过虚拟机软件在公共硬件资源上模拟出的虚拟的计算机,虚拟机上可以安装操作系统和应用程序,虚拟机还可访问网络资源。对于在虚拟机中运行的应用程序而言,虚拟机就像是在真正的计算机中进行工作。
硬件层507:虚拟化环境运行的硬件平台,可以由一个或多个物理主机的硬件资源抽象得到的。其中,硬件层可包括多种硬件,例如包括处理器504(例如CPU)和存储器505,还可以包括网卡503(例如RDMA网卡)、高速/低速输入/输出(I/O,Input/Output)设备,及具有特定处理功能的其它设备。
虚拟机502基于VMM,以及硬件层507提供的硬件资源,运行可执行程序,以实现本公开实施例中的各子任务处理节点的部分或全部功能。为了简洁,在此不再赘述。
进一步地,该集群数据库系统500还可以包括宿主机(Host):作为管理层,用以完成硬件资源的管理、分配;为虚拟机呈现虚拟硬件平台;实现虚拟机的调度和隔离。其中,Host可能是虚拟机监控器(VMM);也有可能是由VMM和1个特权虚拟机的结合。其中,虚拟硬件平台对其上运行的各个虚拟机提供各种硬件资源,如提供虚拟处理器(如VCPU)、虚拟内存、虚拟磁盘、虚拟网卡等等。其中,该虚拟磁盘可对应Host的一个文件或者一个逻辑块设备。虚拟机运行在Host为其准备的虚拟硬件平台上,Host上运行一个或多个虚拟机。虚拟机502的VCPU通过执行存储在其对应的虚拟内存中的可执行程序,以实现或者执行本公开上述各方法实施例中所描述的方法步骤。例如,实现本公开实施例中的各子任务处理节点的部分或全部功能。
参见图18,本公开实施例还提供一种数据库系统,包括:数据库服务器800,基于与数据库服务器800通过通信网络连接的客户端设备100。其中,
客户端设备100的硬件层606上运行有客户端操作系统604,操作系统604上运行有应用程序602;数据库服务器800的硬件层816上运行有操作系统814,以及在操作系统814上运行有数据库管理系统812。应用程序602经由通信网络与在数据库服务器800上运行的数据库管理系统812连接并且访问或者操作存储在数据存储器818中的数据库,例如,通过用户界面查询、更新或删除数据库中的数据,或者导入新的数据至数据库。
硬件层606和816包含操作系统和应用程序运行所需的基本硬件单元,例如,处理器,例如CPU,内存(Memory)、输入/输出设备、网络接口等。
数据存储器818可以是数据库服务器800的外部存储器,比如硬盘、磁盘、存储阵列,或存储服务器等,与数据库服务器800通信连接。或者,数据存储器818也可以集成在数据库服务器800内部,与处理器和I/O设备通过总线或其它内部通信方式交互数据。
数据库服务器800的内存中存储有可执行代码,该可执行代码在被处理器执行时被配置为实现数据库管理系统812的组件和功能。数据库管理系统812具体可以实现本公开实施例中的协调服务器、状态管理器以及转换信息服务器的部分或全部功能,此处不再赘述。
应理解,在本公开的各种实施例中,“可执行程序”应被广泛地解释为包括但不限于:指令,指令集,代码,代码段,子程序,软件模块,应用,软件包,线程,进程,函数,固件,中间件等。上述实施例描述的方法步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本公开实施例的实上施过程构成任何限定。
此外,尽管在附图中以特定顺序描述了本公开方法的操作,但是,这并非要求或者暗示必须按照所述特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
本领域内的技术人员应明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在所述计算机可读存储器中的指令产生包括指令装置的制造品,所述指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (30)

1.一种数据同步方法,其特征在于,应用于客户端,所述方法包括:
响应于在用户界面输入的任务管理操作,生成相应的任务管理指令;其中所述任务管理操作用于管理将源数据同步至目标数据系统中的任务;
将所述任务管理指令发送给协调服务器,以使所述协调服务器根据所述任务管理指令管理各个子任务处理节点的任务,以及控制各个子任务处理节点按照指定周期读取所述任务的原始二进制数据,并从转换信息服务器中读取与所述任务的源数据类型以及所述目标数据系统的目标数据类型对应的描述文件;以及控制各个子任务处理节点根据所述描述文件将所述原始二进制数据映射与目标表结构对应的目标数据,并将所述目标数据写入到所述目标表结构对应的表中,以完成任务管理并按照指定周期,将指定周期内处理完的任务发布至目标数据系统中;所述原始二进制数据是所述任务的源数据经序列化操作之后得到的;所述描述文件供所述转换信息服务器中生成与所述目标数据系统对应的目标表结构的表。
2.根据权利要求1所述的方法,其特征在于,所述任务管理操作包括以下中的一种:新增任务、变更已有任务、删除已有任务。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取各子任务处理节点的任务处理状态并在所述用户界面中展示。
4.根据权利要求3所述的方法,其特征在于,所述任务处理状态包括已完成任务、未完成任务。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
根据所述任务处理状态确定各任务从创建到完成所需的时长,并和期望时长进行比较;
在所述用户界面中展示比较结果。
6.一种数据同步方法,其特征在于,应用于协调服务器,所述方法包括:
接收客户端发送的任务管理指令,所述任务管理指令为所述客户端响应于在用户界面输入的任务管理操作生成的;其中,所述任务管理操作用于管理将源数据同步至目标数据系统中的任务;
根据所述任务管理指令,管理各子任务处理节点的任务;
控制各个子任务处理节点按照指定周期读取所述任务的原始二进制数据,并从转换信息服务器中读取与所述任务的源数据类型以及所述目标数据系统的目标数据类型对应的描述文件;以及控制各个子任务处理节点根据所述描述文件将所述原始二进制数据映射与目标表结构对应的目标数据,并将所述目标数据写入到所述目标表结构对应的表中,以完成任务管理并按照指定周期,将指定周期内处理完的任务发布至目标数据系统中;所述原始二进制数据是所述任务的源数据经序列化操作之后得到的;所述描述文件供所述转换信息服务器中生成与所述目标数据系统对应的目标表结构的表。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
获取各个子任务处理节点的任务处理状态;
将各子任务处理节点的任务处理状态,发送给所述客户端展示。
8.根据权利要求7所述的方法,其特征在于,所述任务管理指令包括以下中的一种:新增任务指令、变更已有任务指令、删除已有任务指令。
9.根据权利要求8所述的方法,其特征在于,若所述任务管理指令为所述新增任务指令,则所述根据所述任务管理指令,管理各子任务处理节点的任务,包括:
根据所述新增任务指令,对新增任务进行分解,得到至少一个子任务;
并根据各个子任务处理节点的任务处理状态,选择至少一个子任务处理节点;并,
将所述至少一个子任务分发给选择的所述至少一个子任务处理节点。
10.根据权利要求8所述的方法,其特征在于,若所述任务管理指令为所述变更已有任务指令,则所述根据所述任务管理指令,管理各子任务处理节点的任务,包括:
根据所述变更已有任务指令,确定待变更任务标识以及变更后的任务标识;
根据各个子任务处理节点的任务处理状态中的已有任务标识,确定持有所述待变更任务标识的子任务处理节点作为待管理节点;
将所述待管理节点中的所述待变更任务标识对应的任务更新为所述变更后的任务标识对应的任务。
11.根据权利要求8所述的方法,其特征在于,若所述任务管理指令为所述删除已有任务指令,则所述根据所述任务管理指令,管理各个子任务处理节点的任务,包括:
根据所述删除已有任务指令,确定待删除任务标识;
根据各个子任务处理节点的任务处理状态中的已有任务标识,确定持有所述待删除任务标识的子任务处理节点作为待管理节点;
将所述待管理节点中的所述待删除任务标识对应的任务删除。
12.根据权利要求7所述的方法,其特征在于,所述获取各个子任务处理节点的任务处理状态之后,所述方法还包括:
监听各子任务处理节点的存活状态;
若监听到任一子任务处理节点发生故障,将发生故障的子任务处理节点的任务迁移到其他子任务处理节点。
13.一种数据同步方法,其特征在于,应用于子任务处理节点,所述方法包括:
从协调服务器接收用于将源数据同步至目标数据系统中的任务;
读取所述任务的原始二进制数据,所述原始二进制数据是所述任务的源数据经序列化操作之后得到的;并从转换信息服务器中读取与所述任务的源数据类型以及所述目标数据系统的目标数据类型对应的描述文件,其中,所述描述文件供所述转换信息服务器中生成与所述目标数据系统对应的目标表结构的表;
根据所述描述文件将所述原始二进制数据映射与所述目标表结构对应的目标数据;并将所述目标数据写入到所述目标表结构对应的表中;
配合所述协调服务器执行任务管理指令以完成任务管理,以及配合所述协调服务器按照指定周期,将指定周期内处理完的任务发布至目标数据系统中;其中,所述任务管理指令是客户端响应于在用户界面输入的任务管理操作而生成并发送给所述协调服务器的。
14.根据权利要求13所述的方法,其特征在于,所述方法还包括:
发送针对所述任务的任务处理状态给状态管理器,以使所述状态管理器提交所述任务处理状态给所述协调服务器。
15.一种数据同步装置,其特征在于,应用于客户端,所述装置包括:
生成模块,被配置为执行响应于在用户界面输入的任务管理操作,生成相应的任务管理指令;其中所述任务管理操作用于管理将源数据同步至目标数据系统中的任务;
第一发送模块,被配置为执行将所述任务管理指令发送给协调服务器,以使所述协调服务器根据所述任务管理指令管理各个子任务处理节点的任务,以及控制各个子任务处理节点按照指定周期读取所述任务的原始二进制数据,并从转换信息服务器中读取与所述任务的源数据类型以及所述目标数据系统的目标数据类型对应的描述文件;以及控制各个子任务处理节点根据所述描述文件将所述原始二进制数据映射与目标表结构对应的目标数据,并将所述目标数据写入到所述目标表结构对应的表中,以完成任务管理并按照指定周期,将指定周期内处理完的任务发布至目标数据系统中;所述原始二进制数据是所述任务的源数据经序列化操作之后得到的;所述描述文件供所述转换信息服务器中生成与所述目标数据系统对应的目标表结构的表。
16.根据权利要求15所述的装置,其特征在于,所述任务管理操作包括以下中的一种:新增任务、变更已有任务、删除已有任务。
17.根据权利要求15所述的装置,其特征在于,所述装置还包括:
第一展示模块,被配置为执行获取各子任务处理节点的任务处理状态并在所述用户界面中展示。
18.根据权利要求17所述的装置,其特征在于,所述任务处理状态包括已完成任务、未完成任务。
19.根据权利要求17所述的装置,其特征在于,所述装置还包括:
比较模块,被配置为执行根据所述任务处理状态确定各任务从创建到完成所需的时长,并和期望时长进行比较;
第二展示模块,被配置为执行在所述用户界面中展示比较结果。
20.一种数据同步装置,其特征在于,应用于协调服务器,所述装置包括:
第一接收模块,被配置为执行接收客户端发送的任务管理指令,所述任务管理指令为所述客户端响应于在用户界面输入的任务管理操作生成的;其中,所述任务管理操作用于管理将源数据同步至目标数据系统中的任务;
管理模块,被配置为执行根据所述任务管理指令,管理各子任务处理节点的任务;
发布模块,被配置为执行控制各个子任务处理节点按照指定周期读取所述任务的原始二进制数据,并从转换信息服务器中读取与所述任务的源数据类型以及所述目标数据系统的目标数据类型对应的描述文件;以及控制各个子任务处理节点根据所述描述文件将所述原始二进制数据映射与目标表结构对应的目标数据,并将所述目标数据写入到所述目标表结构对应的表中,以完成任务管理并按照指定周期,将指定周期内处理完的任务发布至目标数据系统中;所述原始二进制数据是所述任务的源数据经序列化操作之后得到的;所述描述文件供所述转换信息服务器中生成与所述目标数据系统对应的目标表结构的表。
21.根据权利要求20所述的装置,其特征在于,所述装置还包括:
获取模块,被配置为执行获取各个子任务处理节点的任务处理状态;
第二发送模块,被配置为执行将各子任务处理节点的任务处理状态,发送给所述客户端展示。
22.根据权利要求21所述的装置,其特征在于,所述任务管理指令包括以下中的一种:新增任务指令、变更已有任务指令、删除已有任务指令。
23.根据权利要求22所述的装置,其特征在于,若所述任务管理指令为所述新增任务指令,则所述管理模块,被配置为执行根据所述任务管理指令,管理各子任务处理节点的任务,包括:
根据所述新增任务指令,对新增任务进行分解,得到至少一个子任务;
并根据各个子任务处理节点的任务处理状态,选择至少一个子任务处理节点;并,
将所述至少一个子任务分发给选择的所述至少一个子任务处理节点。
24.根据权利要求22所述的装置,其特征在于,若所述任务管理指令为所述变更已有任务指令,则所述管理模块,被配置为执行根据所述任务管理指令,管理各子任务处理节点的任务,包括:
根据所述变更已有任务指令,确定待变更任务标识以及变更后的任务标识;
根据各个子任务处理节点的任务处理状态中的已有任务标识,确定持有所述待变更任务标识的子任务处理节点作为待管理节点;
将所述待管理节点中的所述待变更任务标识对应的任务更新为所述变更后的任务标识对应的任务。
25.根据权利要求22所述的装置,其特征在于,若所述任务管理指令为所述删除已有任务指令,则所述管理模块,被配置为执行根据所述任务管理指令,管理各个子任务处理节点的任务,包括:
根据所述删除已有任务指令,确定待删除任务标识;
根据各个子任务处理节点的任务处理状态中的已有任务标识,确定持有所述待删除任务标识的子任务处理节点作为待管理节点;
将所述待管理节点中的所述待删除任务标识对应的任务删除。
26.根据权利要求20所述的装置,其特征在于,所述装置还包括:
监听模块,被配置为获取各个子任务处理节点的任务处理状态之后执行监听各子任务处理节点的存活状态;
迁移模块,被配置为获取各个子任务处理节点的任务处理状态之后执行若监听到任一子任务处理节点发生故障,将发生故障的子任务处理节点的任务迁移到其他子任务处理节点。
27.一种数据同步装置,其特征在于,应用于子任务处理节点,所述装置包括:
第二接收模块,被配置为执行从协调服务器接收用于将源数据同步至目标数据系统中的任务;
执行模块,被配置为读取所述任务的原始二进制数据,所述原始二进制数据是所述任务的源数据经序列化操作之后得到的;并从转换信息服务器中读取与所述任务的源数据类型以及所述目标数据系统的目标数据类型对应的描述文件,其中,所述描述文件供所述转换信息服务器中生成与所述目标数据系统对应的目标表结构的表;根据所述描述文件将所述原始二进制数据映射与所述目标表结构对应的目标数据;并,将所述目标数据写入到所述目标表结构对应的表中;配合所述协调服务器执行任务管理指令以完成任务管理,以及配合所述协调服务器按照指定周期,将指定周期内处理完的任务发布至目标数据系统中;其中,所述任务管理指令是客户端响应于在用户界面输入的任务管理操作而生成并发送给所述协调服务器的。
28.根据权利要求27所述的装置,其特征在于,所述装置还包括:
第三发送模块,被配置为执行发送针对所述任务的任务处理状态给状态管理器,以使所述状态管理器提交所述任务处理状态给所述协调服务器。
29.一种电子设备,其特征在于,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1-14中任一权利要求所述的方法。
30.一种计算机存储介质,所述计算机存储介质存储有计算机可执行指令,其特征在于,所述计算机可执行指令用于执行如权利要求1-14中任一权利要求所述的方法。
CN202010096899.7A 2020-02-17 2020-02-17 一种数据同步方法、装置、电子设备及存储介质 Active CN111324667B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010096899.7A CN111324667B (zh) 2020-02-17 2020-02-17 一种数据同步方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010096899.7A CN111324667B (zh) 2020-02-17 2020-02-17 一种数据同步方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN111324667A CN111324667A (zh) 2020-06-23
CN111324667B true CN111324667B (zh) 2024-05-14

Family

ID=71172107

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010096899.7A Active CN111324667B (zh) 2020-02-17 2020-02-17 一种数据同步方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN111324667B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11836534B2 (en) * 2021-01-26 2023-12-05 International Business Machines Corporation Prediction of proficient resources for performing unprecedented workloads using models
CN112966065A (zh) * 2021-05-10 2021-06-15 炬星科技(深圳)有限公司 导航地图数据管理方法、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106713487A (zh) * 2017-01-16 2017-05-24 腾讯科技(深圳)有限公司 数据的同步方法和装置
CN108304473A (zh) * 2017-12-28 2018-07-20 石化盈科信息技术有限责任公司 数据源之间的数据传输方法和系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10795747B2 (en) * 2018-05-17 2020-10-06 Microsoft Technology Licensing, Llc File synchronizing service status monitoring and error handling

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106713487A (zh) * 2017-01-16 2017-05-24 腾讯科技(深圳)有限公司 数据的同步方法和装置
CN108304473A (zh) * 2017-12-28 2018-07-20 石化盈科信息技术有限责任公司 数据源之间的数据传输方法和系统

Also Published As

Publication number Publication date
CN111324667A (zh) 2020-06-23

Similar Documents

Publication Publication Date Title
CN109976667B (zh) 一种镜像管理方法、装置及系统
US20170235815A1 (en) Entity database browser
CN112104723B (zh) 一种多集群的数据处理系统及方法
CN108513657B (zh) 数据转换方法及备份服务器
CN104486255B (zh) 业务资源调度方法和装置
CN111625383B (zh) 进程异常事件处理方法、装置、电子设备及存储介质
US9143394B2 (en) System and method for graph based K-redundant resiliency for IT cloud
CN111930521A (zh) 用于部署应用的方法、装置、电子设备及可读存储介质
CN112667362B (zh) Kubernetes上部署Kubernetes虚拟机集群的方法与系统
CN103607435A (zh) 一种基于云计算的医学图像存储系统及方法
CN103458020B (zh) 一种基于xcp的云平台的监控方法及系统
CN109408115A (zh) 一种基于容器环境中迁移对象的方法及计算系统
CN104536869A (zh) 移动终端及其资源管理方法
CN107423404B (zh) 流程实例数据同步处理方法和装置
CN111324667B (zh) 一种数据同步方法、装置、电子设备及存储介质
CN111897638A (zh) 分布式任务调度方法及系统
WO2018192478A1 (zh) 云管理平台、虚拟机管理方法及其系统
CN103077034B (zh) 混合虚拟化平台java应用迁移方法与系统
CN108074210B (zh) 一种用于云渲染的对象获取系统和方法
CN102929769A (zh) 一种基于代理服务的虚拟机内部数据采集方法
CN108073350A (zh) 一种用于云渲染的对象存储系统和方法
CN110502392A (zh) 云平台管理和监控系统
CN104573428B (zh) 一种提高服务器集群资源有效性的方法及系统
CN113051102B (zh) 文件备份方法、装置、系统、存储介质和计算机设备
KR20130140508A (ko) 로그 정보 수집 장치

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