CN111309806A - 数据同步方法、装置、电子设备、存储介质 - Google Patents
数据同步方法、装置、电子设备、存储介质 Download PDFInfo
- Publication number
- CN111309806A CN111309806A CN202010080883.7A CN202010080883A CN111309806A CN 111309806 A CN111309806 A CN 111309806A CN 202010080883 A CN202010080883 A CN 202010080883A CN 111309806 A CN111309806 A CN 111309806A
- Authority
- CN
- China
- Prior art keywords
- data
- field
- length
- target data
- data table
- 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
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
- G06F16/258—Data format conversion from or to a database
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了数据同步方法、装置、电子设备、存储介质。方法包括:在将从源数据表获取的目标数据写入目的数据表失败的情况下,确定数据写入失败的原因;若所述原因为所述目标数据包含的数据项的数据长度大于所述目的数据表的字段长度,则将所述目的数据表的字段长度修改为不小于数据项的数据长度;将写入失败的目标数据重新写入所述目的数据表。从而,数据同步过程中,因一条或多条目标数据长度超长导致数据同步失败,会对目的数据表的字段长度进行自动修改,并将写入失败的目标数据重新写入目的数据表,直至将所有目标数据写入目的数据表,完成数据同步的整个过程。
Description
技术领域
本发明涉及数据处理技术领域,特别涉及数据同步方法、装置、电子设备、存储介质。
背景技术
现有技术中,不管是异构数据库的数据同步还是同构数据库的数据同步,若因数据过长导致数据同步失败,一般通过人工定位问题并手动修改表结构的字段长度以完成后续的数据同步。这种方式在数据表的字段数很多的情况下,不容易确定具体哪个字段的数据超长了,效率较低,且人工手动修改表结构容易出错。
发明内容
本发明提供了数据同步方法、装置、电子设备、存储介质,以解决现有技术中采用人工方式修改数据同步过程中数据表的字段长度效率低、易出错的缺陷。
具体地,本发明是通过如下技术方案实现的:
第一方面,提供一种数据同步方法,所述数据同步方法包括:
在将从源数据表获取的目标数据写入目的数据表失败的情况下,确定数据写入失败的原因;
若所述原因为所述目标数据包含的数据项的数据长度大于所述目的数据表的字段长度,则将所述目的数据表的字段长度修改为不小于数据项的数据长度;
将写入失败的目标数据重新写入所述目的数据表。
可选地,将所述目的数据表的字段长度修改为不小于数据项的数据长度,包括:
将写入失败的目标数据重复写入所述目的数据表;
在每次重复写入失败的情况下,增大所述目的数据表中每个字段的字段长度。
可选地,将所述目的数据表的字段长度修改为不小于数据项的数据长度,包括:
创建临时表,所述临时表与所述目的数据表具有相同的字段和字段长度;
将写入失败的目标数据重复写入所述临时表;
在每次重复写入失败的情况下,增大所述临时表中每个字段的字段长度,直至所述写入失败的目标数据成功写入所述临时表;
根据所述临时表的字段长度修改所述目的数据表的字段长度。
可选地,将所述目的数据表的字段长度修改为不小于数据项的数据长度,包括:
创建临时表,所述临时表与所述目的数据表具有相同的字段和字段长度;
针对所述临时表中的字段,将写入失败的目标数据中相匹配的数据项分别写入,并将与写入失败的数据项对应的字段确定为异常字段;
针对所述异常字段,重复写入对应的数据项,并在每次重复写入失败的情况下,增大所述异常字段的字段长度,直至所述数据项成功写入;
根据所述异常字段的字段长度修改所述目的数据表中对应字段的字段长度。
可选地,
所述源数据表存储于第一数据库,所述目的数据表存储于与所述第一数据库的类型不同的第二数据库;
或,所述源数据表存储于第一数据库,所述目的数据表存储于与所述第一数据库的类型相同的第二数据库。
可选地,所述源数据表存储于第一数据库,所述目的数据表存储于第二数据库;
将所述目的数据表的字段长度修改为大于等于数据项的数据长度,包括:
所述第二数据库发送针对写入失败的目标数据的数据长度获取请求至所述第一数据库;
所述第二数据库根据所述目的数据表的编码格式对所述第一数据库反馈的数据长度进行转换;
所述第二数据库根据转换后的数据长度修改所述目的数据表中对应字段的字段长度。
第二方面,提供一种数据同步装置,所述数据同步装置包括:
原因确定模块,用于在将从源数据表获取的目标数据写入目的数据表失败的情况下,确定数据写入失败的原因;
修改模块,若所述原因为所述目标数据包含的数据项的数据长度大于所述目的数据表的字段长度,用于将所述目的数据表的字段长度修改为不小于数据项的数据长度;
写入模块,用于将写入失败的目标数据重新写入所述目的数据表。
可选地,所述修改模块包括:
重复写入单元,用于将写入失败的目标数据重复写入所述目的数据表;
增加单元,用于在每次重复写入失败的情况下,增大所述目的数据表中每个字段的字段长度。
可选地,所述修改模块包括:
创建单元,用于创建临时表,所述临时表与所述目的数据表具有相同的字段和字段长度;
重复写入单元,用于将写入失败的目标数据重复写入所述临时表;
增加单元,用于在每次重复写入失败的情况下,增大所述临时表中每个字段的字段长度,直至所述写入失败的目标数据成功写入所述临时表;
修改单元,用于根据所述临时表的字段长度修改所述目的数据表的字段长度。
可选地,所述修改模块包括:
创建单元,创建临时表,所述临时表与所述目的数据表具有相同的字段和字段长度;
确定单元,用于针对所述临时表中的字段,将写入失败的目标数据中相匹配的数据项分别写入,并将与写入失败的数据项对应的字段确定为异常字段;
重复写入单元,用于针对所述异常字段,重复写入对应的数据项,并在每次重复写入失败的情况下,增大所述异常字段的字段长度,直至所述数据项成功写入;
修改单元,根据所述异常字段的字段长度修改所述目的数据表中对应字段的字段长度。
可选地,所述源数据表存储于第一数据库,所述目的数据表存储于第二数据库;
所述修改模块包括:
发送单元,用于发送针对写入失败的目标数据的数据长度获取请求至所述第一数据库;
转换单元,用于根据所述目的数据表的编码格式对所述第一数据库反馈的数据长度进行转换;
修改单元,用于根据转换后的数据长度修改所述目的数据表中对应字段的字段长度。
第三方面,提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现第一方面中任一项所述的数据同步方法。
第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面中任一项所述的数据同步方法的步骤。
本发明的实施例提供的技术方案可以包括以下有益效果:
本发明实施例中,若因一条或多条数据长度超长导致数据同步失败,会对目的数据表的字段长度进行自动修改,并将写入失败的数据重新写入目的数据表,直至将所有数据写入目的数据表,完成数据同步的整个过程。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是本发明一示例性实施例示出的一种数据同步方法的流程图;
图2是本发明一示例性实施例示出的另一种数据同步方法的流程图;
图3是本发明一示例性实施例示出的另一种数据同步方法的部分流程图;
图4是本发明一示例性实施例示出的另一种数据同步方法的部分流程图;
图5是本发明一示例性实施例示出的另一种数据同步方法的流程图;
图6是本发明一示例性实施例示出的一种数据同步装置的模块示意图;
图7是本发明一示例实施例示出的一种电子设备的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
在相关技术中,随着源数据库中的数据量不断增加,实际业务场景越来越复杂,在将源数据表中的数据同步至目的数据表的过程中,常常出现因数据中数据项的长度超过目的数据表的字段设置的长度,而导致数据同步失败的情况。
基于此,本发明实施例提供一种数据同步方法,用于在数据同步过程中,因数据长度超长导致数据同步失败的情况下,自动修改目的数据表的字段长度,以将写入失败的数据重新写入目的数据表。
其中,源数据表存储于源数据库,目的数据表存储于目的数据库。源数据库与目的数据库可以是相同类型的数据库,也可以是不同类型的数据库。
图1是本发明一示例性实施例示出的一种数据同步方法的流程图,应用于目的数据库,方法包括以下步骤:
步骤101、在将从源数据表获取的目标数据写入目的数据表失败的情况下,获取错误码和/或具体错误信息。
具体的,目的数据库可以调用getSQLState及getMessage方法获取错误码和具体错误信息。目标数据包括从源数据表获取的、经过ETL(萃取(extract)、转置(transform)和加载(load))的数据。
步骤102、根据错误码和/或具体错误信息判断数据写入失败的原因是否为目标数据超长。
步骤102中,若确定数据写入失败的原因为目标数据超长,也即写入失败的目标数据包含的至少一项数据项的数据长度大于目的数据表中对应字段的字段长度,则执行步骤103,否则执行与其他失败原因对应的维护措施。
步骤103、将目的数据表的字段长度修改为不小于目标数据中数据项的数据长度。
步骤103中,也即增大目的数据表中字段的字段长度,使得每个字段的字段长度均不小于目标数据中对应数据项的数据长度。
步骤104、将目标数据重新写入目的数据表。
从而,在数据同步过程中,若因一条或多条目标数据长度超长导致数据同步失败,本实施例中,会对目的数据表的字段长度进行自动修改,并将写入失败的目标数据重新写入目的数据表,直至将所有目标数据写入目的数据表,完成数据同步的整个过程。
在图1示出的数据同步方法的流程图的基础上,图2是本发明一示例性实施例示出的另一种数据同步方法的流程图,参见图2,方法包括以下步骤:
步骤201、在将从源数据表获取的目标数据写入目的数据表失败的情况下,获取错误码和/或具体错误信息。
其中,步骤201的具体实现过程与步骤101类似,此处不再赘述。
步骤202、根据错误码和/或具体错误信息判断数据写入失败的原因是否为目标数据超长。
步骤202中,若确定数据写入失败的原因为目标数据超长,也即目标数据包含的至少一项数据项的数据长度大于目的数据表中对应字段的字段长度,则执行步骤203,否则执行与其他失败原因对应的维护措施。
步骤203、增大目的数据表中每个字段的字段长度。
相关技术中,假设一个用户表有name、account、password三个字段,在将一条数据写入数据库的数据表时,sql语句为insert into User(‘王明','yangyuch un','2007070103'),也即在数据表中写入数据时,针对数据表的每个字段,同时写入数据的每个数据项,因此无法确定是哪个字段的字段长度小于目标数据中对应数据项的数据长度,导致的数据写入失败。可以理解地,为了将目标数据成功写入目的数据表,则需要增大目的数据表中每个字段的字段长度。
需要说明的是,对于增大字段的字段长度,每次可以但不限于以1个字节、2个字节或更多字节进行增加。以每次增加2个字节为例,若目的数据库中字段a、字段b、字段c的初始的字段长度分别为11、10和25,经过一次字段长度的增加之后,目的数据库中字段a、字段b、字段c的字段长度分别为13、12和27。
步骤204、将目标数据重新写入目的数据表。
步骤205、判断目标数据是否成功写入目的数据表。
若目标数据未能成功写入目的数据表,说明目的数据表的字段长度还是不满足目标数据的数据长度,则返回步骤203。若目标数据成功写入,则将下一条目标数据写入目的数据表,直至完成整个数据同步过程。
本实施例中,通过重复执行步骤203~步骤205,实现将目的数据表的字段长度修改为不小于目标数据中数据项的数据长度。
在另一个实施例中,还可以设置字段长度的上限,例如,将字段b的长度上限设置为30,若将字段b的字段长度修改为30之后,目标数据重新写入失败,可能是目标数据出现乱码,则生成报警提示,以提醒用户对目的数据库进行检修。
图3是本发明一示例性实施例示出的另一种数据同步方法的部分流程图,本实施例的具体实现方式与图2示出的数据同步方法基本相同,不同之处在于,本实施例中先借助临时表确定数据项的数据长度,再根据临时表中每个字段的字段长度修改目的数据表中每个字段的字段长度,具体的,参见图3,将目的数据表的字段长度修改为不小于数据项的数据长度的步骤,具体包括:
步骤301、创建临时表。
其中,临时表与目的数据表具有相同的表结构,包括具有相同的字段、字段长度、字段类型等。
步骤302、增大临时表的每个字段的字段长度。
本实施例中,采用与目的数据表相同的方式写入目标数据,也即针对数据表的每个字段,同时写入数据。为了将目标数据成功写入目的数据表,则需要增大目的数据表中每个字段的字段长度,以最终将目的数据表的每个字段长度均修改为不小于对应数据项的数据长度。
与步骤203类似的,对于增大临时表中字段的字段长度,每次可以但不限于以1个字节、2个字节或更多字节进行增加。
步骤303、将目标数据重新写入临时表。
以临时表有name、account、password三个字段为例,将一条目标数据写入临时表,sql语句为insert into User(‘王明','yangyuchun','2007070103')。
步骤304、判断目标数据是否成功写入临时表。
若目标数据未能成功写入目的数据表,说明临时表的字段长度还是不满足目标数据的数据长度,则返回步骤302。若目标数据成功写入,说明临时表的字段长度满足目标数据的数据长度,则执行步骤305。
步骤305、根据临时表的字段长度修改目的数据表的字段长度。
本实施例中,通过重复执行步骤302~步骤304,确定目标数据的数据长度,以实现将目的数据表的字段长度修改为不小于目标数据中数据项的数据长度。
步骤305中,可以将目的数据表中每个字段的字段长度修改为与临时表中对应字段的字段长度相同,也可以将目的数据表中每个字段的字段长度修改为大于临时表中对应字段的字段长度,以使目标数据能成功写入目的数据表。
在另一个实施例中,步骤305之后,还包括将临时表删除的步骤,以释放资源占用。
本实施例中,通过临时表确定写入失败的目标数据的数据长度,从而可以确保目的数据表在不中断数据同步任务的情况下,自动更新目的数据表相应字段的字段长度,完成数据同步。
图4是本发明一示例性实施例示出的另一种数据同步方法的部分流程图,本实施例的具体实现方式与图3示出的数据同步方法基本相同,不同之处在于,本实施例中将目标数据中的数据项依次写入临时表,具体的,参见图4,将目的数据表的字段长度修改为不小于数据项的数据长度的步骤,具体包括:
步骤401、创建临时表。
其中,临时表与目的数据表具有相同的字段和字段长度,临时表的所有字段允许为null(空)。
在数据同步过程中,目的数据表要写入的是一条包含所有字段的完整数据,目的数据表的全部或部分字段不允许为空,因此目的数据表中不能将一条完整数据的各个字段依次写入目的数据表,也就无法确定哪个字段的数据超长导致数据写入失败。本实施例中,借助临时表,并设置临时表的所有字段允许为null,从而可以将数据的每个字段单独写入临时表,以确认哪个字段的数据超长。
步骤402、针对临时表中的字段,将目标数据中相匹配的数据项分别写入,并将与写入失败的数据项对应的字段确定为异常字段。
以临时表有name、account、password三个字段,将一条目标数据写入临时表,sql语句为:
insert into User(name)(‘王明');
insert into User(accoun)('yangyuchun');
insert into User(password)('2007070103')。
本实施例中,目标数据中包含的数据项采用分别写入的方式,因此可以确定是临时表中哪个字段的长度小于对应数据项的数据长度导致数据写入失败。
步骤403、增大异常字段的字段长度,并重新写入写入失败的数据项。
需要说明的是,对于增大异常字段的字段长度,每次可以但不限于以1个字节、2个字节或更多字节进行增加。
步骤404、判断写入失败的数据项是否成功写入。
若未能成功写入,说明异常字段的字段长度还是不满足对应数据项的长度,则返回步骤403。若成功写入,说明异常字段的字段长度满足对应数据项的长度,则执行步骤405。
步骤405、若目标数据中每个数据项均写入临时表,则根据临时表的字段长度修改目的数据表的字段长度。
本实施例中,先确定是临时表中哪个字段的长度小于对应数据项的数据长度导致数据写入失败,再有针对性的修改目的数据表中对应字段的字段长度,不管在效率方面,还是准确度方面均有所提高。
在图1示出的数据同步方法的流程图的基础上,图5是本发明一示例性实施例示出的另一种数据同步方法的流程图,参见图5,方法包括以下步骤:
步骤501、在将从源数据表获取的目标数据写入目的数据表失败的情况下,目的数据库确定数据写入失败的原因。
步骤502、若原因为目标数据超长,则目的数据库生成针对目标数据的数据长度获取请求。
步骤503、目的数据库将数据长度获取请求发送至源数据库。
步骤504、目的数据库在接收到源数据库反馈的数据长度后,根据目的数据表的编码格式对源数据库反馈的数据长度进行转换。
其中,源数据库反馈的数据长度可以是目标数据的真实数据长度,也可以使用源数据表中对应字段的字段长度表征。对于数据长度的转换,可以但不限于在源数据库反馈的数据长度的基础上按照一定的比例增加字段长度。
可以理解的,即便源数据表与目的数据表采用相同的数据结构,因编码格式不同,会导致源数据表的字段长度与目的数据表的字段长度不同,因此,在获得源数据库反馈的数据长度后需要根据目的数据表的编码格式对数据长度进行转换。
步骤505、根据转换后的数据长度修改目的数据表中对应字段的字段长度。
与数据同步方法实施例相对应,本发明还提供了数据同步装置的实施例。
图6是本发明一示例性实施例示出的一种数据同步装置的模块示意图,该数据同步装置包括:原因确定模块61、修改模块62和写入模块63。
原因确定模块61用于在将从源数据表获取的目标数据写入目的数据表失败的情况下,确定数据写入失败的原因;
若所述原因为所述目标数据包含的数据项的数据长度大于所述目的数据表的字段长度,修改模块62用于将所述目的数据表的字段长度修改为不小于数据项的数据长度;
写入模块63用于将写入失败的目标数据重新写入所述目的数据表。
可选地,所述修改模块包括:
重复写入单元,用于将写入失败的目标数据重复写入所述目的数据表;
增加单元,用于在每次重复写入失败的情况下,增大所述目的数据表中每个字段的字段长度。
可选地,所述修改模块包括:
创建单元,用于创建临时表,所述临时表与所述目的数据表具有相同的字段和字段长度;
重复写入单元,用于将写入失败的目标数据重复写入所述临时表;
增加单元,用于在每次重复写入失败的情况下,增大所述临时表中每个字段的字段长度,直至所述写入失败的目标数据成功写入所述临时表;
修改单元,用于根据所述临时表的字段长度修改所述目的数据表的字段长度。
可选地,所述修改模块包括:
创建单元,创建临时表,所述临时表与所述目的数据表具有相同的字段和字段长度;
确定单元,用于针对所述临时表中的字段,将写入失败的目标数据中相匹配的数据项分别写入,并将与写入失败的数据项对应的字段确定为异常字段;
重复写入单元,用于针对所述异常字段,重复写入对应的数据项,并在每次重复写入失败的情况下,增大所述异常字段的字段长度,直至所述数据项成功写入;
修改单元,根据所述异常字段的字段长度修改所述目的数据表中对应字段的字段长度。
可选地,所述源数据表存储于第一数据库,所述目的数据表存储于第二数据库;
所述修改模块包括:
发送单元,用于发送针对写入失败的目标数据的数据长度获取请求至所述第一数据库;
转换单元,用于根据所述目的数据表的编码格式对所述第一数据库反馈的数据长度进行转换;
修改单元,用于根据转换后的数据长度修改所述目的数据表中对应字段的字段长度。
图7是本发明一示例实施例示出的一种电子设备的结构示意图,示出了适于用来实现本发明实施方式的示例性电子设备70的框图。图7显示的电子设备70仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图7所示,电子设备70可以以通用计算设备的形式表现,例如其可以为服务器设备。电子设备70的组件可以包括但不限于:上述至少一个处理器71、上述至少一个存储器72、连接不同***组件(包括存储器72和处理器71)的总线73。
总线73包括数据总线、地址总线和控制总线。
存储器72可以包括易失性存储器,例如随机存取存储器(RAM)721和/或高速缓存存储器722,还可以进一步包括只读存储器(ROM)723。
存储器72还可以包括具有一组(至少一个)程序模块724的程序工具725(或实用工具),这样的程序模块724包括但不限于:操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
处理器71通过运行存储在存储器72中的计算机程序,从而执行各种功能应用以及数据处理,例如上述任一实施例所提供的方法。
电子设备70也可以与一个或多个外部设备74(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(I/O)接口75进行。并且,模型生成的电子设备70还可以通过网络适配器76与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器76通过总线73与模型生成的电子设备70的其它模块通信。应当明白,尽管图中未示出,可以结合模型生成的电子设备70使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID(磁盘阵列)***、磁带驱动器以及数据备份存储***等。
应当注意,尽管在上文详细描述中提及了电子设备的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述任一实施例所提供的数据同步方法的步骤。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (13)
1.一种数据同步方法,其特征在于,所述数据同步方法包括:
在将从源数据表获取的目标数据写入目的数据表失败的情况下,确定数据写入失败的原因;
若所述原因为所述目标数据包含的数据项的数据长度大于所述目的数据表的字段长度,则将所述目的数据表的字段长度修改为不小于数据项的数据长度;
将写入失败的目标数据重新写入所述目的数据表。
2.如权利要求1所述的数据同步方法,其特征在于,将所述目的数据表的字段长度修改为不小于数据项的数据长度,包括:
将写入失败的目标数据重复写入所述目的数据表;
在每次重复写入失败的情况下,增大所述目的数据表中每个字段的字段长度。
3.如权利要求1所述的数据同步方法,其特征在于,将所述目的数据表的字段长度修改为不小于数据项的数据长度,包括:
创建临时表,所述临时表与所述目的数据表具有相同的字段和字段长度;
将写入失败的目标数据重复写入所述临时表;
在每次重复写入失败的情况下,增大所述临时表中每个字段的字段长度,直至所述写入失败的目标数据成功写入所述临时表;
根据所述临时表的字段长度修改所述目的数据表的字段长度。
4.如权利要求1所述的数据同步方法,其特征在于,将所述目的数据表的字段长度修改为不小于数据项的数据长度,包括:
创建临时表,所述临时表与所述目的数据表具有相同的字段和字段长度;
针对所述临时表中的字段,将写入失败的目标数据中相匹配的数据项分别写入,并将与写入失败的数据项对应的字段确定为异常字段;
针对所述异常字段,重复写入对应的数据项,并在每次重复写入失败的情况下,增大所述异常字段的字段长度,直至所述数据项成功写入;
根据所述异常字段的字段长度修改所述目的数据表中对应字段的字段长度。
5.如权利要求1所述的数据同步方法,其特征在于,
所述源数据表存储于第一数据库,所述目的数据表存储于与所述第一数据库的类型不同的第二数据库;
或,所述源数据表存储于第一数据库,所述目的数据表存储于与所述第一数据库的类型相同的第二数据库。
6.如权利要求1所述的数据同步方法,其特征在于,所述源数据表存储于第一数据库,所述目的数据表存储于第二数据库;
将所述目的数据表的字段长度修改为不小于数据项的数据长度,包括:
所述第二数据库发送针对写入失败的目标数据的数据长度获取请求至所述第一数据库;
所述第二数据库根据所述目的数据表的编码格式对所述第一数据库反馈的数据长度进行转换;
所述第二数据库根据转换后的数据长度修改所述目的数据表中对应字段的字段长度。
7.一种数据同步装置,其特征在于,所述数据同步装置包括:
原因确定模块,用于在将从源数据表获取的目标数据写入目的数据表失败的情况下,确定数据写入失败的原因;
修改模块,若所述原因为所述目标数据包含的数据项的数据长度大于所述目的数据表的字段长度,用于将所述目的数据表的字段长度修改为不小于数据项的数据长度;
写入模块,用于将写入失败的目标数据重新写入所述目的数据表。
8.如权利要求7所述的数据同步装置,其特征在于,所述修改模块包括:
重复写入单元,用于将写入失败的目标数据重复写入所述目的数据表;
增加单元,用于在每次重复写入失败的情况下,增大所述目的数据表中每个字段的字段长度。
9.如权利要求7所述的数据同步装置,其特征在于,所述修改模块包括:
创建单元,用于创建临时表,所述临时表与所述目的数据表具有相同的字段和字段长度;
重复写入单元,用于将写入失败的目标数据重复写入所述临时表;
增加单元,用于在每次重复写入失败的情况下,增大所述临时表中每个字段的字段长度,直至所述写入失败的目标数据成功写入所述临时表;
修改单元,用于根据所述临时表的字段长度修改所述目的数据表的字段长度。
10.如权利要求7所述的数据同步装置,其特征在于,所述修改模块包括:
创建单元,创建临时表,所述临时表与所述目的数据表具有相同的字段和字段长度;
确定单元,用于针对所述临时表中的字段,将写入失败的目标数据中相匹配的数据项分别写入,并将与写入失败的数据项对应的字段确定为异常字段;
重复写入单元,用于针对所述异常字段,重复写入对应的数据项,并在每次重复写入失败的情况下,增大所述异常字段的字段长度,直至所述数据项成功写入;
修改单元,根据所述异常字段的字段长度修改所述目的数据表中对应字段的字段长度。
11.如权利要求7所述的数据同步装置,其特征在于,所述源数据表存储于第一数据库,所述目的数据表存储于第二数据库;
所述修改模块包括:
发送单元,用于发送针对写入失败的目标数据的数据长度获取请求至所述第一数据库;
转换单元,用于根据所述目的数据表的编码格式对所述第一数据库反馈的数据长度进行转换;
修改单元,用于根据转换后的数据长度修改所述目的数据表中对应字段的字段长度。
12.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6任一项所述的数据同步方法。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6任一项所述的数据同步方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010080883.7A CN111309806B (zh) | 2020-02-05 | 2020-02-05 | 数据同步方法、装置、电子设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010080883.7A CN111309806B (zh) | 2020-02-05 | 2020-02-05 | 数据同步方法、装置、电子设备、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111309806A true CN111309806A (zh) | 2020-06-19 |
CN111309806B CN111309806B (zh) | 2021-07-23 |
Family
ID=71148991
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010080883.7A Active CN111309806B (zh) | 2020-02-05 | 2020-02-05 | 数据同步方法、装置、电子设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111309806B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106325933A (zh) * | 2016-08-24 | 2017-01-11 | 明算科技(北京)股份有限公司 | 批量数据同步方法和装置 |
US20170116272A1 (en) * | 2015-10-23 | 2017-04-27 | Oracle International Corporation | Efficient data retrieval in staged use of in-memory cursor duration temporary tables |
CN109086295A (zh) * | 2018-06-13 | 2018-12-25 | 中国平安人寿保险股份有限公司 | 数据同步方法、装置、计算机设备及存储介质 |
CN110413690A (zh) * | 2019-07-03 | 2019-11-05 | 杭州数梦工场科技有限公司 | 数据库的数据同步方法、服务器、电子设备、存储介质 |
CN110442648A (zh) * | 2019-07-30 | 2019-11-12 | 中国工商银行股份有限公司 | 数据同步方法和装置 |
CN110597786A (zh) * | 2019-09-03 | 2019-12-20 | 北京明略软件***有限公司 | 结构化数据治理方法及装置 |
CN110704475A (zh) * | 2019-09-29 | 2020-01-17 | 中国银行股份有限公司 | 一种etl加载表结构的比对方法及*** |
-
2020
- 2020-02-05 CN CN202010080883.7A patent/CN111309806B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170116272A1 (en) * | 2015-10-23 | 2017-04-27 | Oracle International Corporation | Efficient data retrieval in staged use of in-memory cursor duration temporary tables |
CN106325933A (zh) * | 2016-08-24 | 2017-01-11 | 明算科技(北京)股份有限公司 | 批量数据同步方法和装置 |
CN109086295A (zh) * | 2018-06-13 | 2018-12-25 | 中国平安人寿保险股份有限公司 | 数据同步方法、装置、计算机设备及存储介质 |
CN110413690A (zh) * | 2019-07-03 | 2019-11-05 | 杭州数梦工场科技有限公司 | 数据库的数据同步方法、服务器、电子设备、存储介质 |
CN110442648A (zh) * | 2019-07-30 | 2019-11-12 | 中国工商银行股份有限公司 | 数据同步方法和装置 |
CN110597786A (zh) * | 2019-09-03 | 2019-12-20 | 北京明略软件***有限公司 | 结构化数据治理方法及装置 |
CN110704475A (zh) * | 2019-09-29 | 2020-01-17 | 中国银行股份有限公司 | 一种etl加载表结构的比对方法及*** |
Non-Patent Citations (2)
Title |
---|
JIAQI ZHENG ET AL.: ""Chronus: Consistent Data Plane Updates in Timed SDNs"", 《INTERNATIONAL CONFERENCE ON DISTRIBUTED COMPUTING SYSTEMS》 * |
彭磊 等: ""大数据量Excel数据导入***的设计与实现"", 《现代电子技术》 * |
Also Published As
Publication number | Publication date |
---|---|
CN111309806B (zh) | 2021-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8065341B2 (en) | Systems and methods for efficient data transfer | |
US9959331B2 (en) | Content transfer | |
US20190370237A1 (en) | Versioning Validation for Data Transfer between Heterogeneous Data Stores | |
CN112287009A (zh) | 接口调用和接口数据入库方法、装置、设备及存储介质 | |
CN106503974B (zh) | 交易数据处理方法及装置 | |
CN111930489B (zh) | 一种任务调度方法、装置、设备及存储介质 | |
CN113515297B (zh) | 一种版本更新方法、装置、电子设备及存储介质 | |
CN109165209B (zh) | 数据库中对象类型的数据校验方法、装置、设备及介质 | |
CN110990346A (zh) | 基于区块链的文件数据处理方法、装置、设备及存储介质 | |
US20110276821A1 (en) | Method and system for migrating data from multiple sources | |
CN111818145B (zh) | 一种文件传输方法、装置、***、设备及存储介质 | |
WO2022068316A1 (zh) | 数据对账方法、装置、设备及存储介质 | |
US20100185589A1 (en) | Disaster recovery data sync | |
CN113468128A (zh) | 一种数据处理的方法、装置、电子设备及存储介质 | |
CN111258832A (zh) | 一种接口参数校验方法、装置、设备及介质 | |
CN113384896A (zh) | 基于Unity的资源打包方法、装置、设备及介质 | |
CN114996288A (zh) | 数据比对方法及装置、计算机存储介质、电子设备 | |
CN112559140A (zh) | 数据一致性的事务控制方法、***、设备及存储介质 | |
CN111309806B (zh) | 数据同步方法、装置、电子设备、存储介质 | |
CN113760491A (zh) | 一种任务调度***、方法、设备及存储介质 | |
CN112579632A (zh) | 一种数据核验方法、装置、设备和介质 | |
US20220083501A1 (en) | Flexible data ingestion | |
CN111324668B (zh) | 数据库数据同步处理方法、装置及存储介质 | |
CN112907345B (zh) | 基于标识码的票务结算的方法、***、设备以及介质 | |
CN113626423B (zh) | 业务数据库的日志管理方法、装置、*** |
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 |