CN113434598A - 实现数据双写的方法、装置与电子装置 - Google Patents
实现数据双写的方法、装置与电子装置 Download PDFInfo
- Publication number
- CN113434598A CN113434598A CN202110723372.7A CN202110723372A CN113434598A CN 113434598 A CN113434598 A CN 113434598A CN 202110723372 A CN202110723372 A CN 202110723372A CN 113434598 A CN113434598 A CN 113434598A
- Authority
- CN
- China
- Prior art keywords
- configuration file
- calling
- difference
- request
- target database
- 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
- 238000000034 method Methods 0.000 title claims abstract description 44
- 238000004590 computer program Methods 0.000 claims description 12
- 238000012545 processing Methods 0.000 claims description 4
- 238000012986 modification Methods 0.000 description 11
- 230000004048 modification Effects 0.000 description 11
- 230000005540 biological transmission Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
-
- 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种实现数据双写的方法、装置与电子装置。该方法包括获取所有的调用请求,调用请求存储在etl应用中,调用请求包括第一调用请求和第二调用请求,第一调用请求是指调用第一datax工具实现源数据库与第一目标数据库的同步的请求,第二调用请求是指调用第二datax工具实现源数据库与第二目标数据库的同步的请求;采用第一配置文件,调用第一datax工具,第一配置文件存储在etl应用中;根据第一调用请求、第二调用请求和第一配置文件,生成第二配置文件;采用第二配置文件,调用第二datax工具。本方案无需调整原有的etl应用或者新增新的etl应用就实现了数据的双写,加快了数据双写的速度。
Description
技术领域
本申请涉及数据库领域,具体而言,涉及一种实现数据双写的方法、装置、计算机可读的存储介质与电子装置。
背景技术
datax是阿里巴巴集团开源的离线数据同步工具,实现在多种异构数据源之间的数据同步功能。datax的开发方式是,先编写json格式的配置文件,配置文件中包含要进行数据同步的源数据信息和目标数据信息,通过将配置文件作为参数传递给datax工具执行,实现数据的同步。
etl应用:大数据的应用程序,本申请中特指通过调用datax实现异构数据源同步的应用程序。
通常调用datax的配置文件存储在etl应用中,大数据平台上经常会在生产环境线上运行着大量的etl应用,通过调用etl应用中的配置文件实现不同数据源之间的数据同步。在遇到机房搬迁或者平台迁移时,往往需要这些etl应用实现双写,即:既保持原有环境上的数据同步进行,又要将同样的数据同步到新平台或新机房一份。现有技术中在遇到机房搬迁或者平台迁移时,实现数据的双写,往往需要新增大量新etl应用或对原有的etl应用进行大规模调整。就需要投入大量的人力进行新应用程序的开发,花费大量的时间进行逐个测试部署。
针对相关技术中,在遇到机房搬迁或者平台迁移时,实现数据的双写,往往需要新增大量新etl应用或对原有的etl应用进行大规模调整等问题,尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种实现数据双写的方法、装置、计算机可读的存储介质与电子装置,以至少解决相关技术中,在遇到机房搬迁或者平台迁移时,实现数据的双写,往往需要新增大量新etl应用或对原有的etl应用进行大规模调整等问题。
根据本发明实施例的一个实施例,提供了一种实现数据双写的方法,包括:获取所有的调用请求,所述调用请求存储在etl应用中,所述调用请求包括第一调用请求和第二调用请求,所述第一调用请求是指调用第一datax工具实现源数据库与第一目标数据库的同步的请求,所述第二调用请求是指调用第二datax工具实现所述源数据库与第二目标数据库的同步的请求;采用第一配置文件,调用所述第一datax工具,所述第一配置文件存储在所述etl应用中;根据所述第一调用请求、所述第二调用请求和所述第一配置文件,生成第二配置文件;采用所述第二配置文件,调用所述第二datax工具。
在一个示例性实施例中,所述第一调用请求包括所述源数据库的地址、所述源数据库的库名、所述第一目标数据库的地址和所述第一目标数据库的库名,所述第二调用请求包括所述源数据库的地址、所述源数据库的库名、所述第二目标数据库的地址和所述第二目标数据库的库名。
在一个示例性实施例中,根据所述第一调用请求、所述第二调用请求和所述第一配置文件,生成第二配置文件,包括:获取地址差异,所述地址差异为所述第一目标数据库的地址与所述第二目标数据库的地址之间的差异;获取库名差异,所述库名差异为所述第一目标数据库的库名与所述第二目标数据库的库名之间的差异;至少根据所述地址差异和所述库名差异,对所述第一配置文件进行修改,得到所述第二配置文件。
在一个示例性实施例中,至少根据所述地址差异和所述库名差异,对所述第一配置文件进行修改,得到所述第二配置文件,包括:根据所述地址差异,对所述第一配置文件中的第一标志位进行修改;根据所述库名差异,对所述第一配置文件中的第二标志位进行修改,得到所述第二配置文件。
在一个示例性实施例中,所述第一调用请求还包括所述源数据库的账号信息和所述第一目标数据库的账号信息,所述第二调用请求还包括所述源数据库的账号信息和所述第二目标数据库的账号信息,至少根据所述地址差异和所述库名差异,对所述第一配置文件进行修改,得到所述第二配置文件,包括:获取账号信息差异,所述账号信息差异为所述第一目标数据库的账号信息与所述第二目标数据库的账号信息之间的差异;根据所述地址差异、所述库名差异和所述账号信息差异,对所述第一配置文件进行修改,得到所述第二配置文件。
在一个示例性实施例中,在采用所述第二配置文件,调用所述第二datax工具之后,所述方法还包括:删除所述第二配置文件。
在一个示例性实施例中,所述第一配置文件为第一JSON配置文件,所述第二配置文件为第二JSON配置文件。
根据本发明实施例的另一个实施例,还提供了一种实现数据双写的装置,包括:获取单元,用于获取所有的调用请求,所述调用请求存储在etl应用中,所述调用请求包括第一调用请求和第二调用请求,所述第一调用请求是指调用第一datax工具实现源数据库与第一目标数据库的同步的请求,所述第二调用请求是指调用第二datax工具实现所述源数据库与第二目标数据库的同步的请求;第一调用单元,用于采用第一配置文件,调用所述第一datax工具,所述第一配置文件存储在所述etl应用中;生成单元,用于根据所述第一调用请求、所述第二调用请求和所述第一配置文件,生成第二配置文件;第二调用单元,用于采用所述第二配置文件,调用所述第二datax工具。
根据本发明实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述实现数据双写的方法。
根据本发明实施例的又一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,上述处理器通过计算机程序执行上述的实现数据双写的方法。
在本发明实施例中,获取存储在etl应用中的所有的调用请求,采用etl应用中本来存储的第一配置文件,调用第一datax工具,实现源数据库与第一目标数据库的同步;根据上述第一调用请求、上述第二调用请求和上述第一配置文件,生成第二配置文件,再采用上述第二配置文件,调用上述第二datax工具,实现源数据库与第二目标数据库的同步的请求。即采用第一配置文件和第二配置文件实现了源数据库与第一目标数据库的同步、源数据库与第二目标数据库的同步,即实现了将源数据库中的数据写入第一目标数据库和第二目标数据库,也就是实现了数据的双写。其中,第一配置文件是etl应用中本申请存在的,第二配置文件是后续生成的,但是生成第二配置文件无需新增新的etl应用也无需对原有的etl应用(即存储有第一配置文件的应用)进行修改。简化了数据双写的流程,大大节约了时间。在节约人力的同时,也很大程度上保证了系统的稳定性。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明实施例的一种实现数据双写的方法的计算机终端的硬件结构框图;
图2是根据本发明实施例的实现数据双写的方法的流程图;
图3是根据本发明实施例的实现数据双写的系统示意图;
图4是根据本发明实施例的一种实现数据双写的装置的结构框图;
图5是根据本发明实施例的生成第二配置文件的流程图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请实施例所提供的方法实施例可以在计算机终端、计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图1是本发明实施例的一种实现数据双写的方法的计算机终端的硬件结构框图。如图1所示,计算机终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,在一个示例性实施例中,上述计算机终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述计算机终端的结构造成限定。例如,计算机终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示等同功能或比图1所示功能更多的不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的实现数据双写的方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种实现数据双写的方法,应用于上述计算机终端,图2是根据本发明实施例的实现数据双写的方法的流程图,该流程包括如下步骤:
步骤S202,获取所有的调用请求,上述调用请求存储在etl应用中,上述调用请求包括第一调用请求和第二调用请求,上述第一调用请求是指调用第一datax工具实现源数据库与第一目标数据库的同步的请求,上述第二调用请求是指调用第二datax工具实现上述源数据库与第二目标数据库的同步的请求;
步骤S204,采用第一配置文件,调用上述第一datax工具,上述第一配置文件存储在上述etl应用中;
步骤S206,根据上述第一调用请求、上述第二调用请求和上述第一配置文件,生成第二配置文件;
步骤S208,采用上述第二配置文件,调用上述第二datax工具。
通过上述步骤,获取存储在etl应用中的所有的调用请求,采用etl应用中本来存储的第一配置文件,调用第一datax工具,实现源数据库与第一目标数据库的同步;根据上述第一调用请求、上述第二调用请求和上述第一配置文件,生成第二配置文件,再采用上述第二配置文件,调用上述第二datax工具,实现源数据库与第二目标数据库的同步的请求。即采用第一配置文件和第二配置文件实现了源数据库与第一目标数据库的同步、源数据库与第二目标数据库的同步,即实现了将源数据库中的数据写入第一目标数据库和第二目标数据库,也就是实现了数据的双写。其中,第一配置文件是etl应用中本申请存在的,第二配置文件是后续生成的,但是生成第二配置文件无需新增新的etl应用也无需对原有的etl应用(即存储有第一配置文件的应用)进行修改。简化了数据双写的流程,大大节约了时间,节省了人力成本。由于不需要对etl应用进行大规模的上线下线操作,在节约人力的同时,也很大程度上保证了系统的稳定性。
需要说明的是:第一配置文件是原有的etl应用中本身存在的,即在不需要进行数据双写时,仅仅需要实现源数据库与第一目标数据库的同步,仅仅使用etl应用中的第一配置文件去调用第一datax工具即可。在有双写需求的情况下,现有技术中的方案是通过调整原有的etl应用或者新增新的etl应用去实现。但是,本申请中的方案无需对原有的etl应用进行调整也无需新增新的etl应用。仅仅是根据第一调用请求、上述第二调用请求和上述第一配置文件,生成第二配置文件,将第二配置文件存储在非etl应用中,例如可以将第二配置文件存储在中间件中,通过调用中间件中的第二配置文件就实现了调用第二datax工具。调整原有的etl应用或者新增新的etl应用需要花费大量的时间。本方案无需调整原有的etl应用或者新增新的etl应用,节省了时间,简化了流程,加快了数据双写的速度。
需要说明的是,上述源数据库、第一目标数据库和第二目标数据库是一种抽象化的概括。具体地,在机房搬迁时,源数据库表示A机房、第一目标数据库表示B机房、第二目标数据库表示C机房,需要将B机房中的数据迁移至C机房;在平台迁移时,源数据库表示A平台、第一目标数据库表示B平台、第二目标数据库表示C平台,需要将B平台中的数据迁移至C平台。
在一个示例性实施例中,上述第一调用请求包括上述源数据库的地址、上述源数据库的库名、上述第一目标数据库的地址和上述第一目标数据库的库名,上述第二调用请求包括上述源数据库的地址、上述源数据库的库名、上述第二目标数据库的地址和上述第二目标数据库的库名。
在一个示例性实施例中,根据上述第一调用请求、上述第二调用请求和上述第一配置文件,生成第二配置文件,如图5所示,包括:
步骤S10:获取地址差异,上述地址差异为上述第一目标数据库的地址与上述第二目标数据库的地址之间的差异;
步骤S12:获取库名差异,上述库名差异为上述第一目标数据库的库名与上述第二目标数据库的库名之间的差异;
步骤S14:至少根据上述地址差异和上述库名差异,对上述第一配置文件进行修改,得到上述第二配置文件。第一配置文件与第二配置文件的大小是相同的,存在差异的部分包括地址和库名。
在一个示例性实施例中,至少根据上述地址差异和上述库名差异,对上述第一配置文件进行修改,得到上述第二配置文件,包括:
步骤S20:根据上述地址差异,对上述第一配置文件中的第一标志位进行修改;
步骤S22:根据上述库名差异,对上述第一配置文件中的第二标志位进行修改,得到上述第二配置文件。即第一配置文件中的第一标志位中的信息表示地址信息,第一配置文件中的第二标志位中的信息表示库名信息,通过对第一标志位中的信息和第二标志位中的信息进行修改,可以得到第二配置文件。
在一个示例性实施例中,上述第一调用请求还包括上述源数据库的账号信息和上述第一目标数据库的账号信息,上述第二调用请求还包括上述源数据库的账号信息和上述第二目标数据库的账号信息,至少根据上述地址差异和上述库名差异,对上述第一配置文件进行修改,得到上述第二配置文件,包括:
步骤S30:获取账号信息差异,上述账号信息差异为上述第一目标数据库的账号信息与上述第二目标数据库的账号信息之间的差异;
步骤S32:根据上述地址差异、上述库名差异和上述账号信息差异,对上述第一配置文件进行修改,得到上述第二配置文件。第一配置文件和第二配置文件的差异主要体现在地址差异、上述库名差异和上述账号信息差异,所以根据地址差异、上述库名差异和上述账号信息差异对第一配置文件进行修改,可以得到第二配置文件。
具体地,根据上述地址差异、上述库名差异和上述账号信息差异,对上述第一配置文件进行修改,得到上述第二配置文件,包括:根据上述地址差异,对上述第一配置文件中的第一标志位进行修改;根据上述库名差异,对上述第一配置文件中的第二标志位进行修改,得到上述第二配置文件;根据上述账号信息差异,对上述第一配置文件中的第三标志位进行修改,得到上述第二配置文件。即通过对第一配置文件中对应位置的信息进行修改,可以得到第二配置文件。即第一配置文件中的第一标志位中的信息表示地址信息,第一配置文件中的第二标志位中的信息表示库名信息,第一配置文件中的第三标志位中的信息表示账号信息,通过对第一标志位中的信息、第二标志位中的信息和第三标志位中的信息进行修改,可以得到第二配置文件。
在一个示例性实施例中,在采用上述第二配置文件,调用上述第二datax工具之后,上述方法还包括:删除上述第二配置文件。以节省存储空间的资源。之后,再需要将源数据库中的数据写入新的目标数据库时,再根据原目标数据库和新的目标数据库的地址差异、库名差异和账号信息差异,生成新的配置文件。
在一个示例性实施例中,上述第一配置文件为第一JSON配置文件,上述第二配置文件为第二JSON配置文件。JSON是一种轻量级的数据交换格式。将第一配置文件设置为第一JSON配置文件,将第二配置文件设置为第二JSON配置文件,便于调用datax工具,且提高数据双写的效率。
为了更好的理解上述实现数据双写的方法的过程,以下再结合可选实施例对上述实现数据双写的实现方法流程进行说明,但不用于限定本发明实施例的技术方案。
在本实施例中提供了一种实现数据双写的系统,图3是根据本发明实施例的实现数据双写的系统示意图,如图3所示,该系统包括etl应用、中间件和datax工具,etl应用本身存在第一配置文件(xx.json),在需要实现数据双写的情况下,中间件从etl应用中获取第一配置文件,且以第一配置文件为参数调用第一datax工具,实现源数据库与第一目标数据库的同步;中间件根据etl应用中的第二调用请求、第一调用请求和第一配置文件生成第二配置文件(new_xx.json),第二配置文件与第一配置文件的差异主要体现在地址差异、库名差异和账号信息差异。再以第二配置文件作为参数调用第二datax工具,以实现源数据库与第二目标数据库的同步。即通过在etl应用与datax工具之间新增中间件,实现了数据的双写,且无需新增新的etl应用也无需对原有的etl应用(即存储有第一配置文件的应用)进行修改。简化了数据双写的流程,大大节约了时间。由于不需要对etl应用进行大规模的上线下线操作,在节约人力的同时,也很大程度上保证了系统的稳定性。
具体地,etl应用以透传的方式将第一配置文件发送至中间件,中间件接收到第一配置文件后,先采用第一配置文件调用第一datax工具,之后若遇到双写的需求,再生成第二配置文件,实现源数据库与第一目标数据库和第二目标数据库的同步。
优选地,再采用上述第二配置文件,调用上述第二datax工具之后,将第二配置文件(新生成的配置文件)删除,以节省中间件的资源。在将第二配置文件(新生成的配置文件)删除后,中间件返回执行状态信息给etl应用。
需要说明的是,本申请中的第一调用请求、第二调用请求、第一datax工具、第二datax工具、第一目标数据库以及第二目标数据库,仅仅是为了区别原请求和新请求、原datax工具和新datax工具、原目标数据库和新目标数据库。并不是一种绝对的表述。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。
图4是根据本发明实施例的一种实现数据双写的装置的结构框图;如图4所示,包括:
获取单元42,用于获取所有的调用请求,上述调用请求存储在etl应用中,上述调用请求包括第一调用请求和第二调用请求,上述第一调用请求是指调用第一datax工具实现源数据库与第一目标数据库的同步的请求,上述第二调用请求是指调用第二datax工具实现上述源数据库与第二目标数据库的同步的请求;
第一调用单元44,用于采用第一配置文件,调用上述第一datax工具,上述第一配置文件存储在上述etl应用中;
生成单元46,用于根据上述第一调用请求、上述第二调用请求和上述第一配置文件,生成第二配置文件,第二配置文件不在存储在etl应用中;
第二调用单元48,用于采用上述第二配置文件,调用上述第二datax工具。
通过上述实施例,获取单元获取存储在etl应用中的所有的调用请求,采用etl应用中本来存储的第一配置文件,第一调用单元调用第一datax工具,实现源数据库与第一目标数据库的同步;生成单元根据上述第一调用请求、上述第二调用请求和上述第一配置文件,生成第二配置文件,第二调用单元采用上述第二配置文件,调用上述第二datax工具,实现源数据库与第二目标数据库的同步的请求。即采用第一配置文件和第二配置文件实现了源数据库与第一目标数据库的同步、源数据库与第二目标数据库的同步,即实现了将源数据库中的数据写入第一目标数据库和第二目标数据库,也就是实现了数据的双写。其中,第一配置文件是etl应用中本申请存在的,第二配置文件是后续生成的,但是生成第二配置文件无需新增新的etl应用也无需对原有的etl应用(即存储有第一配置文件的应用)进行修改。简化了数据双写的流程,大大节约了时间。由于不需要对etl应用进行大规模的上线下线操作,在节约人力的同时,也很大程度上保证了系统的稳定性。
在一个示例性实施例中,生成单元包括第一获取模块、第二获取模块和修改模块,第一获取模块,用于获取地址差异,上述地址差异为上述第一目标数据库的地址与上述第二目标数据库的地址之间的差异;第二获取模块,用于获取库名差异,上述库名差异为上述第一目标数据库的库名与上述第二目标数据库的库名之间的差异;修改模块,用于至少根据上述地址差异和上述库名差异,对上述第一配置文件进行修改,得到上述第二配置文件。第一配置文件与第二配置文件的大小是相同的,存在差异的部分包括地址和库名。
在一个示例性实施例中,修改模块包括第一修改子模块和第二修改子模块,第一修改子模块用于根据上述地址差异,对上述第一配置文件中的第一标志位进行修改;第二修改子模块用于根据上述库名差异,对上述第一配置文件中的第二标志位进行修改,得到上述第二配置文件。即第一配置文件中的第一标志位中的信息表示地址信息,第一配置文件中的第二标志位中的信息表示库名信息,通过对第一标志位中的信息和第二标志位中的信息进行修改,可以得到第二配置文件。
在一个示例性实施例中,上述第一调用请求还包括上述源数据库的账号信息和上述第一目标数据库的账号信息,上述第二调用请求还包括上述源数据库的账号信息和上述第二目标数据库的账号信息,修改模块包括获取子模块和第三修改子模块,获取子模块用于获取账号信息差异,上述账号信息差异为上述第一目标数据库的账号信息与上述第二目标数据库的账号信息之间的差异;第三修改子模块用于根据上述地址差异、上述库名差异和上述账号信息差异,对上述第一配置文件进行修改,得到上述第二配置文件。第一配置文件和第二配置文件的差异主要体现在地址差异、上述库名差异和上述账号信息差异,所以根据地址差异、上述库名差异和上述账号信息差异对第一配置文件进行修改,可以得到第二配置文件。
在一个示例性实施例中,上述装置还包括删除单元,删除单元用于在采用上述第二配置文件,调用上述第二datax工具之后,删除上述第二配置文件。以节省存储空间的资源。
本发明的实施例还提供了一种存储介质,该存储介质包括存储的程序,其中,上述程序运行时执行上述任一项的方法。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的程序代码:
步骤S202,获取所有的调用请求,上述调用请求存储在etl应用中,上述调用请求包括第一调用请求和第二调用请求,上述第一调用请求是指调用第一datax工具实现源数据库与第一目标数据库的同步的请求,上述第二调用请求是指调用第二datax工具实现上述源数据库与第二目标数据库的同步的请求;
步骤S204,采用第一配置文件,调用上述第一datax工具,上述第一配置文件存储在上述etl应用中;
步骤S206,根据上述第一调用请求、上述第二调用请求和上述第一配置文件,生成第二配置文件;
步骤S208,采用上述第二配置文件,调用上述第二datax工具。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
步骤S202,获取所有的调用请求,上述调用请求存储在etl应用中,上述调用请求包括第一调用请求和第二调用请求,上述第一调用请求是指调用第一datax工具实现源数据库与第一目标数据库的同步的请求,上述第二调用请求是指调用第二datax工具实现上述源数据库与第二目标数据库的同步的请求;
步骤S204,采用第一配置文件,调用上述第一datax工具,上述第一配置文件存储在上述etl应用中;
步骤S206,根据上述第一调用请求、上述第二调用请求和上述第一配置文件,生成第二配置文件;
步骤S208,采用上述第二配置文件,调用上述第二datax工具。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种实现数据双写的方法,其特征在于,包括:
获取所有的调用请求,所述调用请求存储在etl应用中,所述调用请求包括第一调用请求和第二调用请求,所述第一调用请求是指调用第一datax工具实现源数据库与第一目标数据库的同步的请求,所述第二调用请求是指调用第二datax工具实现所述源数据库与第二目标数据库的同步的请求;
采用第一配置文件,调用所述第一datax工具,所述第一配置文件存储在所述etl应用中;
根据所述第一调用请求、所述第二调用请求和所述第一配置文件,生成第二配置文件;
采用所述第二配置文件,调用所述第二datax工具。
2.根据权利要求1所述的方法,其特征在于,所述第一调用请求包括所述源数据库的地址、所述源数据库的库名、所述第一目标数据库的地址和所述第一目标数据库的库名,所述第二调用请求包括所述源数据库的地址、所述源数据库的库名、所述第二目标数据库的地址和所述第二目标数据库的库名。
3.根据权利要求2所述的方法,其特征在于,根据所述第一调用请求、所述第二调用请求和所述第一配置文件,生成第二配置文件,包括:
获取地址差异,所述地址差异为所述第一目标数据库的地址与所述第二目标数据库的地址之间的差异;
获取库名差异,所述库名差异为所述第一目标数据库的库名与所述第二目标数据库的库名之间的差异;
至少根据所述地址差异和所述库名差异,对所述第一配置文件进行修改,得到所述第二配置文件。
4.根据权利要求3所述的方法,其特征在于,至少根据所述地址差异和所述库名差异,对所述第一配置文件进行修改,得到所述第二配置文件,包括:
根据所述地址差异,对所述第一配置文件中的第一标志位进行修改;
根据所述库名差异,对所述第一配置文件中的第二标志位进行修改,得到所述第二配置文件。
5.根据权利要求3所述的方法,其特征在于,所述第一调用请求还包括所述源数据库的账号信息和所述第一目标数据库的账号信息,所述第二调用请求还包括所述源数据库的账号信息和所述第二目标数据库的账号信息,至少根据所述地址差异和所述库名差异,对所述第一配置文件进行修改,得到所述第二配置文件,包括:
获取账号信息差异,所述账号信息差异为所述第一目标数据库的账号信息与所述第二目标数据库的账号信息之间的差异;
根据所述地址差异、所述库名差异和所述账号信息差异,对所述第一配置文件进行修改,得到所述第二配置文件。
6.根据权利要求1至5中任意一项所述的方法,其特征在于,在采用所述第二配置文件,调用所述第二datax工具之后,所述方法还包括:
删除所述第二配置文件。
7.根据权利要求1至5中任意一项所述的方法,其特征在于,所述第一配置文件为第一JSON配置文件,所述第二配置文件为第二JSON配置文件。
8.一种实现数据双写的装置,其特征在于,包括:
获取单元,用于获取所有的调用请求,所述调用请求存储在etl应用中,所述调用请求包括第一调用请求和第二调用请求,所述第一调用请求是指调用第一datax工具实现源数据库与第一目标数据库的同步的请求,所述第二调用请求是指调用第二datax工具实现所述源数据库与第二目标数据库的同步的请求;
第一调用单元,用于采用第一配置文件,调用所述第一datax工具,所述第一配置文件存储在所述etl应用中;
生成单元,用于根据所述第一调用请求、所述第二调用请求和所述第一配置文件,生成第二配置文件;
第二调用单元,用于采用所述第二配置文件,调用所述第二datax工具。
9.一种计算机可读的存储介质,其特征在于,所述计算机可读的存储介质包括存储的程序,其中,所述程序运行时执行上述权利要求1至7任一项中所述的方法。
10.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行所述权利要求1至7任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110723372.7A CN113434598B (zh) | 2021-06-28 | 2021-06-28 | 实现数据双写的方法、装置与电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110723372.7A CN113434598B (zh) | 2021-06-28 | 2021-06-28 | 实现数据双写的方法、装置与电子装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113434598A true CN113434598A (zh) | 2021-09-24 |
CN113434598B CN113434598B (zh) | 2024-03-22 |
Family
ID=77757465
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110723372.7A Active CN113434598B (zh) | 2021-06-28 | 2021-06-28 | 实现数据双写的方法、装置与电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113434598B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2009550A1 (en) * | 2007-06-27 | 2008-12-31 | Hitachi, Ltd. | Asynchronous remote copy system and control method for the same |
CN102999537A (zh) * | 2011-09-19 | 2013-03-27 | 阿里巴巴集团控股有限公司 | 一种数据迁移系统和方法 |
CN104166607A (zh) * | 2014-09-04 | 2014-11-26 | 北京国双科技有限公司 | 用于备份数据库的数据处理方法及装置 |
US20170091041A1 (en) * | 2015-09-25 | 2017-03-30 | Alibaba Group Holding Limited | Method and apparatus for transferring data between databases |
WO2017050176A1 (zh) * | 2015-09-25 | 2017-03-30 | 阿里巴巴集团控股有限公司 | 一种数据同步方法和装置 |
CN107368569A (zh) * | 2017-07-11 | 2017-11-21 | 人人行科技股份有限公司 | 数据差异对比方法和装置、存储介质以及处理器 |
CN107958082A (zh) * | 2017-12-15 | 2018-04-24 | 杭州有赞科技有限公司 | 数据库到数据仓库的离线增量同步方法及系统 |
CN110381149A (zh) * | 2019-07-24 | 2019-10-25 | 北京视界云天科技有限公司 | 数据分发方法、装置以及数据同步方法、装置 |
CN111078121A (zh) * | 2018-10-18 | 2020-04-28 | 深信服科技股份有限公司 | 一种分布式存储系统数据迁移方法、系统、及相关组件 |
CN111259066A (zh) * | 2020-01-17 | 2020-06-09 | 苏州思必驰信息科技有限公司 | 服务器集群数据同步方法及装置 |
-
2021
- 2021-06-28 CN CN202110723372.7A patent/CN113434598B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2009550A1 (en) * | 2007-06-27 | 2008-12-31 | Hitachi, Ltd. | Asynchronous remote copy system and control method for the same |
CN102999537A (zh) * | 2011-09-19 | 2013-03-27 | 阿里巴巴集团控股有限公司 | 一种数据迁移系统和方法 |
CN104166607A (zh) * | 2014-09-04 | 2014-11-26 | 北京国双科技有限公司 | 用于备份数据库的数据处理方法及装置 |
US20170091041A1 (en) * | 2015-09-25 | 2017-03-30 | Alibaba Group Holding Limited | Method and apparatus for transferring data between databases |
WO2017050176A1 (zh) * | 2015-09-25 | 2017-03-30 | 阿里巴巴集团控股有限公司 | 一种数据同步方法和装置 |
CN107368569A (zh) * | 2017-07-11 | 2017-11-21 | 人人行科技股份有限公司 | 数据差异对比方法和装置、存储介质以及处理器 |
CN107958082A (zh) * | 2017-12-15 | 2018-04-24 | 杭州有赞科技有限公司 | 数据库到数据仓库的离线增量同步方法及系统 |
CN111078121A (zh) * | 2018-10-18 | 2020-04-28 | 深信服科技股份有限公司 | 一种分布式存储系统数据迁移方法、系统、及相关组件 |
CN110381149A (zh) * | 2019-07-24 | 2019-10-25 | 北京视界云天科技有限公司 | 数据分发方法、装置以及数据同步方法、装置 |
CN111259066A (zh) * | 2020-01-17 | 2020-06-09 | 苏州思必驰信息科技有限公司 | 服务器集群数据同步方法及装置 |
Non-Patent Citations (2)
Title |
---|
GBLFY: "ETL异构数据源Datax_Oracle同步MySQL(全量)_04", Retrieved from the Internet <URL:https://blog.csdn.net/weixin_40816738/article/details/118148912> * |
王强: "电商平台与分销系统间的数据同步设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》, pages 138 - 285 * |
Also Published As
Publication number | Publication date |
---|---|
CN113434598B (zh) | 2024-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11061925B2 (en) | Multi-task scheduling method and system, application server and computer-readable storage medium | |
WO2018219178A1 (zh) | 数据同步方法、装置、服务器及存储介质 | |
CN110633284B (zh) | 数据库中表的变更方法及装置 | |
CN111399764B (zh) | 数据存储方法、读取方法、装置、设备及存储介质 | |
CN106657433B (zh) | 一种多网卡环境下物理网卡的命名方法和装置 | |
CN113220431A (zh) | 跨云的分布式数据任务调度方法、设备及存储介质 | |
CN110659165A (zh) | 一种多节点服务器自动化测试方法和装置 | |
CN110704122A (zh) | 插件加载方法及装置 | |
CN114546588A (zh) | 任务的部署方法、装置、存储介质及电子装置 | |
CN104717280A (zh) | 数据同步的标记方法和装置 | |
CN110798358B (zh) | 分布式服务标识方法、装置、计算机可读介质及电子设备 | |
CN117041284A (zh) | 一种基于接口云的外部接口管理方法、系统、设备及介质 | |
CN116627925A (zh) | 一种基于k8s环境的业务日志数据处理方法及装置 | |
CN113434598A (zh) | 实现数据双写的方法、装置与电子装置 | |
CN112084254A (zh) | 一种数据同步方法和系统 | |
CN107786661B (zh) | 信息同步方法 | |
CN112804313B (zh) | 基于跨域边缘节点的数据同步方法、装置、设备及介质 | |
CN115189931A (zh) | 一种分布式密钥管理方法、装置、设备、存储介质 | |
CN115277707A (zh) | 业务处理方法、装置、电子设备和存储介质 | |
CN113779122A (zh) | 导出数据的方法和装置 | |
CN111596933A (zh) | 文件处理方法、装置、电子设备及计算机可读存储介质 | |
CN111506646A (zh) | 数据同步方法、装置、系统、存储介质及处理器 | |
CN111090648A (zh) | 一种关系型数据库数据同步冲突解决方法 | |
CN112783544B (zh) | 一种子代码库的本地跟踪代码分支建立方法和终端 | |
CN117909414A (zh) | 基于XXL-JOB实现informix与MySQL数据库同步方法、装置、设备及介质 |
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 |