CN115952185B - 一种数据处理方法及装置、设备及存储介质 - Google Patents
一种数据处理方法及装置、设备及存储介质 Download PDFInfo
- Publication number
- CN115952185B CN115952185B CN202310227247.6A CN202310227247A CN115952185B CN 115952185 B CN115952185 B CN 115952185B CN 202310227247 A CN202310227247 A CN 202310227247A CN 115952185 B CN115952185 B CN 115952185B
- Authority
- CN
- China
- Prior art keywords
- data
- primary key
- modified
- inconsistent
- type
- 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
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及一种数据处理方法及装置、设备及存储介质,所述方法包括:对预先部署的多个MYSQL数据库进行数据一致性校验,获取不同数据库中不一致的数据;获取所述不一致的数据对应的联合主键,并根据联合主键的类型确定所述不一致的数据中待修改数据;对待修改数据进行修改,并存储修改后数据;按照修改后数据对所述多个MYSQL数据库进行数据同步,能够解决数据库集群中由于联合主键类型不一致,导致数据修改或查询过程,索引失效和数据不一致的问题。
Description
技术领域
本公开涉及数据库数据处理技术领域,尤其涉及一种数据处理方法及装置、设备及存储介质。
背景技术
在多个数据库集群存储同一份业务数据的场景下,在部署多个MYSQL数据库集群之后,通过SQL代码验证数据一致性,在业务数据同步过程,对于单一主键冲突造成数据不一致的问题,相关技术中,通常通过以下方法解决:纯手工方式挨个替换MYSQL集群配置文件和集群MYSQL客户端配置,用于跳过冲突数据和错误编码等。
然而,如果数据库集群的单张表数据量达到了一亿条数据,修改配置的过程耗时非常长,并且由于修改数据过程中会锁表,频繁修改集群配置是非常大的安全隐患,容易造成核心业务功能崩溃,整个集群瘫痪,进而业务活动发现订单提交不了,订单查询异常,查询数据不一致等诸多问题,同时,如果无法解决数据冲突问题,前端页面查询数据不一致,导致用户订单查询下单过程存在问题,如明明用户已经下单了,但是查询不到订单详情等问题。另外,如果出现数据冲突问题,就需要投入大量的人力,物力资源,协同解决集群故障问题,业务问题等。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本公开的实施例提供了一种数据处理方法及装置、设备及存储介质。
第一方面,本公开的实施例提供了一种数据处理方法,包括:
对预先部署的多个MYSQL数据库进行数据一致性校验,获取不同数据库中不一致的数据;
获取所述不一致的数据对应的联合主键,并根据联合主键的类型确定所述不一致的数据中待修改数据;
对待修改数据进行修改,并存储修改后数据;
按照修改后数据对所述多个MYSQL数据库进行数据同步。
在一种可能的实施方式中,所述对预先部署的多个MYSQL数据库进行数据一致性校验,获取不同数据库中不一致的数据,包括:
从预先部署的每个MYSQL数据库中提取多个数据表,利用预设的数据校验工具(定制化PT-TABLE-CHECKSUM-数据一致性校验脚本),以数据表为单位,对比不同MYSQL数据库之间的数据;
获取数据不一致的数据表,将所有数据表的数据作为不同数据库中不一致的数据。
在一种可能的实施方式中,所述获取所述不一致的数据对应的联合主键,并根据联合主键的类型确定所述不一致的数据中待修改数据,包括:
对于数据不一致的每一个数据表,获取当前数据表对应的联合主键;
对于每一个联合主键,在联合主键的类型为整型与字符串的组合,或者字符串与字符串的组合的情况下,将联合主键及其在当前数据表查询的数据,作为待修改数据块。
在一种可能的实施方式中,所述对待修改数据进行修改,包括:
按照预设格式,对联合主键及其在当前数据表查询的数据进行预处理;
对预处理后的联合主键及其在当前数据表查询的数据进行类型转换;
将类型转换后的联合主键及其在当前数据表查询的数据,作为修改后数据。
在一种可能的实施方式中,所述按照预设格式,对联合主键及其在当前数据表查询的数据进行预处理,包括:
对联合主键及其在当前数据表查询的数据的整型进行格式转换,或者,
对联合主键及其在当前数据表查询的数据的字符串进行格式转换。
在一种可能的实施方式中,所述存储修改后数据,包括:
将预处理后的联合主键及其在当前数据表查询的数据,分别以字段名称的形式存储至字段列表数组池;
基于预设的字段名称与字段类型之间的对应关系,根据字段列表数组池中的字段名称获取对应的字段类型,存储至字段类型数组池中;
将字段列表数组池和字段类型数组池中的字段名称和对应的字段类型,用作后续的类型转换。
在一种可能的实施方式中,所述方法还包括:
对类型转换后的联合主键及其在当前数据表查询的数据进行数据修改状态的复核,以确保不同数据库中不一致的数据的修改完成。
第二方面,本公开的实施例提供了一种数据处理装置,包括:
校验模块,用于对预先部署的多个MYSQL数据库进行数据一致性校验,获取不同数据库中不一致的数据;
确定模块,用于获取所述不一致的数据对应的联合主键,并根据联合主键的类型确定所述不一致的数据中待修改数据;
修改模块,用于对待修改数据进行修改,并存储修改后数据;
同步模块,用于按照修改后数据对所述多个MYSQL数据库进行数据同步。
第三方面,本公开的实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述的数据处理方法。
第四方面,本公开的实施例提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述的数据处理方法。
本公开实施例提供的上述技术方案与现有技术相比至少具有如下优点的部分或全部:
本公开实施例所述的数据处理方法,对预先部署的多个MYSQL数据库进行数据一致性校验,获取不同数据库中不一致的数据;获取所述不一致的数据对应的联合主键,并根据联合主键的类型确定所述不一致的数据中待修改数据;对待修改数据进行修改,并存储修改后数据;按照修改后数据对所述多个MYSQL数据库进行数据同步,能够解决数据库集群中由于联合主键类型不一致,导致数据修改或查询过程,索引失效和数据不一致的问题。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1示意性示出了根据本公开实施例的数据处理方法流程示意图;
图2示意性示出了根据本公开实施例的数据处理的装置的结构框图;以及
图3示意性示出了根据本公开实施例的电子设备的结构框图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
参见图1,本公开的实施例提供了一种数据处理方法,包括:
S1,对预先部署的多个MYSQL数据库进行数据一致性校验,获取不同数据库中不一致的数据。
在一些实施例中,预先部署的多个MYSQL数据库可以是分布式多个异地容灾节点分别对应的数据库。
在一些实施例中,可以通过pt-table-checksum工具对源MYSQL数据库和目标MYSQL数据库进行数据一致性校验,源MYSQL数据库和目标MYSQL数据库的数据库和表结构都是一致的,其中,pt-table-checksum是Percona Toolkit工具系列中的一个,可以用来检测MySQL数据的一致性。其原理是,在源MYSQL数据库执行校验语句(binlog格式为statement),通过复制传递到目标MYSQL数据库,如果数据不一致,则源MYSQL数据库与目标MYSQL数据库会产生不同的校验值,其中,校验值包括Chunks校验值、Errors校验值、Rows校验值和Diff_row校验值,以此来判断主从数据是否一致。pt-table-checksum工具的原理是将对数据库锁包含的每个表切分成多个块(chunks),每个块包含多行数据,每次仅对一个块进行校验。它可以根据参数指定的每个块的校验执行时间,将表分成不同大小的块。将单个表切分成多个块进行校验,可以保证不会引起从库太大的延迟,也不会对服务器负载造成太大干扰。默认的每个块的校验执行时间是0.5s。pt-table-checksum会持续跟踪服务器执行校验语句的时间,并且会随着服务器性能的变化,来动态调整分块的大小。将表分块时,需要使用索引(优先使用主键或唯一键)。如果表没有索引,且表的行数量较小时,pt-table-checksum会将整个表作为一个数据块进行校验。pt-table-checksum会持续监控目标MYSQL数据库状态,如果目标MYSQL数据库复制延迟太大,校验会暂停,以等待目标MYSQL数据库追上源MYSQL数据库。如果目标MYSQL数据库发生错误,或者复制停止,它也会暂停及等待。pt-table-checksum对于校验过程中产生的错误是有复原能力的。如果正在执行校验的SQL被kill掉,这对pt-table-checksum来说不是一个致命的错误,它会重新执行被kill掉的查询语句;如果再次失败,则会跳过,继续进行表的下一个分块的校验。如果连接服务器失败,pt-table-checksum也会进行重连和继续进行校验。当在运行的过程中被完全终止后,可以使用--resume参数,继续从上次终止时正在处理的表的当前分块开始,继续校验。我们也可以使用CTRL-C按键来停止校验,pt-table-checksum会在完成对当前正在处理的分块的校验后,正常退出。之后也可以启动程序继续进行校验。当pt-table-checksum完成对一个表的所有分块的校验后,它会暂停并等待所有检测到的目标MYSQL数据库执行完这个表的校验语句。一旦目标MYSQL数据库执行完成,它会比对源MYSQL数据库、目标MYSQL数据库的校验结果是否一致,并输出一行结果。
在本实施例,步骤S1中,所述对预先部署的多个MYSQL数据库进行数据一致性校验,获取不同数据库中不一致的数据,包括:
从预先部署的每个MYSQL数据库中提取多个数据表,利用预设的数据校验工具,以数据表为单位,对比不同MYSQL数据库之间的数据;
获取数据不一致的数据表,将所有数据表的数据作为不同数据库中不一致的数据。
S2,获取所述不一致的数据对应的联合主键,并根据联合主键的类型确定所述不一致的数据中待修改数据。
在一些实施例中,每个MYSQL数据库包括多张表,每张表中的数据均对应有主键,主键的类型包括联合主键和单一主键,所述获取所述不一致的数据对应的联合主键,包括:
响应于所述不一致的数据存在与其对应的主键,获取所述不一致的数据对应的主键;
响应于所述主键为联合主键,执行根据联合主键的类型确定所述不一致的数据中待修改数据的步骤。
在本实施例,步骤S2中,所述获取所述不一致的数据对应的联合主键,并根据联合主键的类型确定所述不一致的数据中待修改数据,包括:
对于数据不一致的每一个数据表,获取当前数据表对应的联合主键;
对于每一个联合主键,在联合主键的类型为整型与字符串的组合,或者字符串与字符串的组合的情况下,将联合主键及其在当前数据表查询的数据,作为待修改数据块。
S3,对待修改数据进行修改,并存储修改后数据。
在本实施例,步骤S3中,所述对待修改数据进行修改,包括:
按照预设格式,对联合主键及其在当前数据表查询的数据进行预处理;
对预处理后的联合主键及其在当前数据表查询的数据进行类型转换;
将类型转换后的联合主键及其在当前数据表查询的数据,作为修改后数据。
在本实施例中,所述按照预设格式,对联合主键及其在当前数据表查询的数据进行预处理之后,所述方法还包括:
将预处理后的联合主键及其在当前数据表查询的数据存储至第一数据存储区,并将类型转换后的联合主键及其在当前数据表查询的数据存储至第二数据存储区,以将第二数据存储区的数据同步至多个MYSQL数据库。
在本实施例中,所述按照预设格式,对联合主键及其在当前数据表查询的数据进行预处理,包括:
对联合主键及其在当前数据表查询的数据的整型进行格式转换,或者,
对联合主键及其在当前数据表查询的数据的字符串进行格式转换。
在一些实施例中,在对数据的类型转换为将字符串转换为整型的情况下,预设格式可以是:整型类型+字符串类型的联合主键为:1+'1';字符串类型+字符串类型的联合主键为:'1'+'1'。
在本实施例中,对联合主键及其在当前数据表查询的数据的类型进行格式转换,为下一步对联合主键及其在当前数据表查询的数据的字符串进行类型转换做准备,以便在类型转换过程一次性完成,提高效率。
在一些实施例中,对预处理后的联合主键及其在当前数据表查询的数据进行类型转换,包括:
对于预处理后的联合主键及其在当前数据表查询的数据中的数据块,区分每个数据块的边界;
按照预设转换要求,对每个数据块的类型进行转换,其中,所述预设转换要求包括整型转换为字符串,或者字符串转换为整型。
在本实施例中,对联合主键及其在当前数据表查询的数据的类型进行类型转换,能够确保联合主键及其在当前数据表查询的数据的类型的一致性,比如,所有不一致数据对应的联合主键及其在当前数据表查询的数据的类型均为整型或者字符串,能够避免由于联合主键及其在当前数据表查询的数据由于数据类型不一致,导致不同数据库的数据查询结果不一致的问题。
在本实施例,步骤S3中,所述存储修改后数据,包括:
将预处理后的联合主键及其在当前数据表查询的数据,分别以字段名称的形式存储至字段列表数组池;
基于预设的字段名称与字段类型之间的对应关系,根据字段列表数组池中的字段名称获取对应的字段类型,存储至字段类型数组池中;
将字段列表数组池和字段类型数组池中的字段名称和对应的字段类型,用作后续的类型转换。
在本实施例中,将预处理后的联合主键及其在当前数据表查询的数据存储至字段列表数组池和字段类型数组池中,能够确保在字段列表数组池和字段类型数组池中,一次性对预处理后的联合主键及其在当前数据表查询的数据进行类型转换处理,提高数据处理的效率。
S4,按照修改后数据对所述多个MYSQL数据库进行数据同步。
在本实施例中,所述方法还包括:
对类型转换后的联合主键及其在当前数据表查询的数据进行数据修改状态的复核,以确保不同数据库中不一致的数据的修改完成。
本实施例的数据处理方法针对MYSQL集群内部因主键类型不同,大业务量环境背景下,数据修改过程存在数据冲突,数据漏改,修改错误,造成数据不一致,同时数据修改对数据库集群的压力等诸多问题,会造成整个后端集群数据库集群多个节点数据不一致问题,如分布式多个异地容灾节点的数据不一致问题,现通过三方面彻底解决此类问题,拆分业务端逻辑,拆分大的核心业务表数据,分摊大表修改对整个业务库的压力,同时分摊大表一致性校验问题,大化小方式快速校验,解决数据不一致性问题,对联合主键等复杂业务,也做了具体拆分,拆分逻辑在数据一致性校验规则中也提出来了策略方法。
参见图2,本公开的实施例提供了一种数据处理装置,包括:
校验模块21,用于对预先部署的多个MYSQL数据库进行数据一致性校验,获取不同数据库中不一致的数据;
确定模块22,用于获取所述不一致的数据对应的联合主键,并根据联合主键的类型确定所述不一致的数据中待修改数据;
修改模块23,用于对待修改数据进行修改,并存储修改后数据;
同步模块24,用于按照修改后数据对所述多个MYSQL数据库进行数据同步。
本实施例中,所述校验模块还用于:
从预先部署的每个MYSQL数据库中提取多个数据表,利用预设的数据校验工具,以数据表为单位,对比不同MYSQL数据库之间的数据;
获取数据不一致的数据表,将所有数据表的数据作为不同数据库中不一致的数据。
本实施例中,所述确定模块还用于:
对于数据不一致的每一个数据表,获取当前数据表对应的联合主键;
对于每一个联合主键,在联合主键的类型为整型与字符串的组合,或者字符串与字符串的组合的情况下,将联合主键及其在当前数据表查询的数据,作为待修改数据块。
本实施例中,所述修改模块还用于:
按照预设格式,对联合主键及其在当前数据表查询的数据进行预处理;
对预处理后的联合主键及其在当前数据表查询的数据进行类型转换;
将类型转换后的联合主键及其在当前数据表查询的数据,作为修改后数据。
本实施例中,所述修改模块还用于:
对联合主键及其在当前数据表查询的数据的整型进行格式转换,或者,
对联合主键及其在当前数据表查询的数据的字符串进行格式转换。
本实施例中,所述修改模块还用于:
将预处理后的联合主键及其在当前数据表查询的数据,分别以字段名称的形式存储至字段列表数组池;
基于预设的字段名称与字段类型之间的对应关系,根据字段列表数组池中的字段名称获取对应的字段类型,存储至字段类型数组池中;
将字段列表数组池和字段类型数组池中的字段名称和对应的字段类型,用作后续的类型转换。
本实施例中,所述数据处理装置还用于:
对类型转换后的联合主键及其在当前数据表查询的数据进行数据修改状态的复核,以确保不同数据库中不一致的数据的修改完成。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述第二个实施例中,校验模块21、确定模块22、修改模块23和同步模块24中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。校验模块21、确定模块22、修改模块23和同步模块24中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上***、基板上的***、封装上的***、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,校验模块21、确定模块22、修改模块23和同步模块24中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
参照图3所示,本公开的实施例提供的电子设备,包括处理器1110、通信接口1120、存储器1130和通信总线1140,其中,处理器1110,通信接口1120,存储器1130通过通信总线1140完成相互间的通信;
存储器1130,用于存放计算机程序;
处理器1110,用于执行存储器1130上所存放的程序时,实现如下所示数据处理方法:
对预先部署的多个MYSQL数据库进行数据一致性校验,获取不同数据库中不一致的数据;
获取所述不一致的数据对应的联合主键,并根据联合主键的类型确定所述不一致的数据中待修改数据;
对待修改数据进行修改,并存储修改后数据;
按照修改后数据对所述多个MYSQL数据库进行数据同步。
上述的通信总线1140可以是外设部件互连标准(PeripheralComponentInterconnect,简称PCI)总线或扩展工业标准结构(ExtendedIndustry StandardArchitecture,简称EISA)总线等。该通信总线1140可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口1120用于上述电子设备与其他设备之间的通信。
存储器1130可以包括随机存取存储器(Random AccessMemory,简称RAM),也可以包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。可选的,存储器1130还可以是至少一个位于远离前述处理器1110的存储装置。
上述的处理器1110可以是通用处理器,包括中央处理器(Central ProcessingUnit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本公开的实施例还提供了一种计算机可读存储介质。上述计算机可读存储介质上存储有计算机程序,上述计算机程序被处理器执行时实现如上所述的数据处理方法。
该计算机可读存储介质可以是上述实施例中描述的设备/装置中所包含的;也可以是单独存在,而未装配入该设备/装置中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的数据处理方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (7)
1.一种数据处理方法,其特征在于,所述方法包括:
对预先部署的多个MYSQL数据库进行数据一致性校验,获取不同数据库中不一致的数据;
获取所述不一致的数据对应的联合主键,并根据联合主键的类型确定所述不一致的数据中待修改数据;
对待修改数据进行修改,并存储修改后数据;
按照修改后数据对所述多个MYSQL数据库进行数据同步,
其中,每个MYSQL数据库包括多张表,每张表中的数据均对应有主键,主键的类型包括联合主键和单一主键,所述获取所述不一致的数据对应的联合主键,并根据联合主键的类型确定所述不一致的数据中待修改数据,包括:
对于数据不一致的每一个数据表,获取当前数据表对应的联合主键;
对于每一个联合主键,在联合主键的类型为整型与字符串的组合,或者字符串与字符串的组合的情况下,将联合主键及其在当前数据表查询的数据,作为待修改数据块,
其中,所述对待修改数据进行修改,包括:
按照预设格式,对联合主键及其在当前数据表查询的数据进行预处理;
对预处理后的联合主键及其在当前数据表查询的数据进行类型转换;
将类型转换后的联合主键及其在当前数据表查询的数据,作为修改后数据,
其中,所述按照预设格式,对联合主键及其在当前数据表查询的数据进行预处理,包括:
对联合主键及其在当前数据表查询的数据的整型进行格式转换,或者,
对联合主键及其在当前数据表查询的数据的字符串进行格式转换。
2.根据权利要求1所述的方法,其特征在于,所述对预先部署的多个MYSQL数据库进行数据一致性校验,获取不同数据库中不一致的数据,包括:
从预先部署的每个MYSQL数据库中提取多个数据表,利用预设的数据校验工具,以数据表为单位,对比不同MYSQL数据库之间的数据;
获取数据不一致的数据表,将所有数据表的数据作为不同数据库中不一致的数据。
3.根据权利要求1所述的方法,其特征在于,所述存储修改后数据,包括:
将预处理后的联合主键及其在当前数据表查询的数据,分别以字段名称的形式存储至字段列表数组池;
基于预设的字段名称与字段类型之间的对应关系,根据字段列表数组池中的字段名称获取对应的字段类型,存储至字段类型数组池中;
将字段列表数组池和字段类型数组池中的字段名称和对应的字段类型,用作后续的类型转换。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对类型转换后的联合主键及其在当前数据表查询的数据进行数据修改状态的复核,以确保不同数据库中不一致的数据的修改完成。
5.一种数据处理装置,其特征在于,包括:
校验模块,用于对预先部署的多个MYSQL数据库进行数据一致性校验,获取不同数据库中不一致的数据;
确定模块,用于获取所述不一致的数据对应的联合主键,并根据联合主键的类型确定所述不一致的数据中待修改数据;
修改模块,用于对待修改数据进行修改,并存储修改后数据;
同步模块,用于按照修改后数据对所述多个MYSQL数据库进行数据同步,
其中,每个MYSQL数据库包括多张表,每张表中的数据均对应有主键,主键的类型包括联合主键和单一主键,所述获取所述不一致的数据对应的联合主键,并根据联合主键的类型确定所述不一致的数据中待修改数据,包括:
对于数据不一致的每一个数据表,获取当前数据表对应的联合主键;
对于每一个联合主键,在联合主键的类型为整型与字符串的组合,或者字符串与字符串的组合的情况下,将联合主键及其在当前数据表查询的数据,作为待修改数据块,
其中,所述对待修改数据进行修改,包括:
按照预设格式,对联合主键及其在当前数据表查询的数据进行预处理;
对预处理后的联合主键及其在当前数据表查询的数据进行类型转换;
将类型转换后的联合主键及其在当前数据表查询的数据,作为修改后数据,
其中,所述按照预设格式,对联合主键及其在当前数据表查询的数据进行预处理,包括:
对联合主键及其在当前数据表查询的数据的整型进行格式转换,或者,
对联合主键及其在当前数据表查询的数据的字符串进行格式转换。
6.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-4中任一项所述的数据处理方法。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-4中任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310227247.6A CN115952185B (zh) | 2023-03-10 | 2023-03-10 | 一种数据处理方法及装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310227247.6A CN115952185B (zh) | 2023-03-10 | 2023-03-10 | 一种数据处理方法及装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115952185A CN115952185A (zh) | 2023-04-11 |
CN115952185B true CN115952185B (zh) | 2023-06-30 |
Family
ID=85891361
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310227247.6A Active CN115952185B (zh) | 2023-03-10 | 2023-03-10 | 一种数据处理方法及装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115952185B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116686512A (zh) * | 2023-08-01 | 2023-09-05 | 布比(北京)网络技术有限公司 | 农作物生产管理方法、装置、存储介质和电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8180799B1 (en) * | 2009-04-17 | 2012-05-15 | Formrouter Inc. | Dynamically creating tables to store received data |
CN111897813A (zh) * | 2020-07-08 | 2020-11-06 | 苏宁金融科技(南京)有限公司 | 针对数据库资源的流控方法及装置 |
CN113656377A (zh) * | 2021-08-23 | 2021-11-16 | 深圳市万睿智能科技有限公司 | 数据迁移的自动匹配方法、装置、计算机设备及存储介质 |
CN115113989A (zh) * | 2021-11-05 | 2022-09-27 | 腾讯科技(深圳)有限公司 | 事务执行方法、装置、计算设备及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8521758B2 (en) * | 2010-01-15 | 2013-08-27 | Salesforce.Com, Inc. | System and method of matching and merging records |
CN104252481B (zh) * | 2013-06-27 | 2018-10-19 | 阿里巴巴集团控股有限公司 | 主从数据库一致性的动态校验方法和装置 |
CN108153619A (zh) * | 2017-12-25 | 2018-06-12 | 杭州恩牛网络技术有限公司 | 一种数据校对方法和装置 |
CN112307062B (zh) * | 2020-09-18 | 2022-11-22 | 苏宁云计算有限公司 | 数据库聚合查询方法、装置及*** |
CN114547204A (zh) * | 2022-02-25 | 2022-05-27 | 金蝶软件(中国)有限公司 | 数据同步方法、装置、计算机设备和存储介质 |
CN115292415A (zh) * | 2022-08-17 | 2022-11-04 | 中国工商银行股份有限公司 | 一种数据库访问方法及装置 |
-
2023
- 2023-03-10 CN CN202310227247.6A patent/CN115952185B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8180799B1 (en) * | 2009-04-17 | 2012-05-15 | Formrouter Inc. | Dynamically creating tables to store received data |
CN111897813A (zh) * | 2020-07-08 | 2020-11-06 | 苏宁金融科技(南京)有限公司 | 针对数据库资源的流控方法及装置 |
CN113656377A (zh) * | 2021-08-23 | 2021-11-16 | 深圳市万睿智能科技有限公司 | 数据迁移的自动匹配方法、装置、计算机设备及存储介质 |
CN115113989A (zh) * | 2021-11-05 | 2022-09-27 | 腾讯科技(深圳)有限公司 | 事务执行方法、装置、计算设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
分布式实时轨迹存取***设计方法;张超;余祖应;宋筱轩;胡鹏;张文峰;;指挥信息***与技术(第03期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN115952185A (zh) | 2023-04-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9773027B2 (en) | Data loading tool | |
US8443357B2 (en) | Patching of multi-level data containers storing portions of pre-installed software | |
EP2240851A1 (en) | Methods and systems for generating availability management framework (amf) configurations | |
CN109445837B (zh) | 一种应用程序的发布方法及设备 | |
CN105550229A (zh) | 分布式存储***数据修复的方法和装置 | |
US10846284B1 (en) | View-based data mart management system | |
CN115952185B (zh) | 一种数据处理方法及装置、设备及存储介质 | |
CN109063005B (zh) | 一种数据迁移方法及***、存储介质、电子设备 | |
CN107451058B (zh) | 一种软件开发方法和装置 | |
CN113157651B (zh) | 一种安卓工程项目的资源文件批量重命名的方法、***、设备和介质 | |
US20200371902A1 (en) | Systems and methods for software regression detection | |
US20170109257A1 (en) | Use case driven stepping component automation framework | |
US10223205B2 (en) | Disaster recovery data sync | |
CN113360581A (zh) | 数据处理方法、装置及存储介质 | |
CN113468143A (zh) | 数据迁移方法、***、计算设备及存储介质 | |
US11347533B2 (en) | Enhanced virtual machine image management system | |
CN111552494A (zh) | 一种容器组的管理方法、设备、***及介质 | |
CN109213883B (zh) | 灾害模型群服务链编排方法及装置、终端、存储介质 | |
CN107526573B (zh) | 采用并行流水线处理遥感图像的方法 | |
CN115757172A (zh) | 测试执行方法、装置、存储介质及计算机设备 | |
CN112711466B (zh) | 悬挂事务巡检方法和装置、电子设备和存储介质 | |
CN108108472B (zh) | 数据处理方法以及服务器 | |
CN110109892B (zh) | 一种数据迁移方法、装置及电子设备 | |
US8359456B2 (en) | Generating random addresses for verification of distributed computerized devices | |
CN115525722B (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 |