CN112287027A - 数据库同步方法、装置、设备及存储介质 - Google Patents
数据库同步方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112287027A CN112287027A CN202011186500.0A CN202011186500A CN112287027A CN 112287027 A CN112287027 A CN 112287027A CN 202011186500 A CN202011186500 A CN 202011186500A CN 112287027 A CN112287027 A CN 112287027A
- Authority
- CN
- China
- Prior art keywords
- database
- data
- characteristic
- characteristic index
- unique identifier
- 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 57
- 230000001360 synchronised effect Effects 0.000 claims abstract description 19
- 238000012545 processing Methods 0.000 claims description 26
- 238000004891 communication Methods 0.000 claims description 17
- 238000004458 analytical method Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 10
- 238000004422 calculation algorithm Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 description 16
- 239000003795 chemical substances by application Substances 0.000 description 14
- 238000004364 calculation method Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000005012 migration Effects 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000007670 refining Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种数据库同步方法、装置、设备及存储介质,方法包括:获取待同步的来源数据库和目标数据库;分别获得来源数据库和目标数据库的用于指示表的描述信息的第一特征指标;分别获得来源数据库和目标数据库的用于指示表中字段的描述信息的第二特征指标;分别获得来源数据库和目标数据库的第三特征指标;第三特征指标用于指示数据以及数据所属的表中的字段;根据来源数据库和目标数据库各自的第一特征指标、第二特征指标和第三特征指标,获得用于指示来源数据库和目标数据库之间差异的差异特征指标;根据差异特征指标,对来源数据库和目标数据库进行同步。本申请用以解决现有数据库同步耗费时间长、耗费大量人力且容易出错的问题。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种数据库同步方法、装置、设备及存储介质。
背景技术
在大型的复杂业务***中,为了兼容不同的客户业务需求,常常会同时存在多个运行中的数据库版本。为了减少各数据库版本间的耦合,保证数据独立性,各版本的数据库通常是独立存储和维护的,但当出现版本升级、变迁、合并时,又需要在不同版本的数据库间实现数据的同步,可能是全量数据的同步,也可能是部分数据的同步。
现有的解决方案,通常是将两个版本的数据进行全量的对比后,根据实际情况,人为或利用工具来实现指定数据的同步。该方式存在以下两个缺陷:
1.大型业务***中的数据通常是海量的,要完成一次全量的数据对比,耗费的时间非常长;
2.当两个数据库版本间的数据存在结构性差异时,想要合并部分数据而非全量数据,将变得非常困难,需要先有人单独处理结构性差异,操作过程将耗费大量人力,且很容易出错。
发明内容
本申请提供了一种数据库同步方法、装置、设备及存储介质,用以解决现有数据库同步耗费时间长、耗费大量人力且容易出错的问题。
第一方面,本申请实施例提供了一种数据库同步方法,包括:
获取待同步的来源数据库和目标数据库;
分别获得所述来源数据库和所述目标数据库的第一特征指标;其中,所述第一特征指标用于指示表的描述信息;
分别获得所述来源数据库和所述目标数据库的第二特征指标;其中,所述第二特征指标用于指示表中字段的描述信息;
分别获得所述来源数据库和所述目标数据库的第三特征指标;其中,所述第三特征指标用于指示数据以及数据所属的表中的字段;
根据所述来源数据库和所述目标数据库各自的所述第一特征指标、所述第二特征指标和所述第三特征指标,获得用于指示所述来源数据库和所述目标数据库之间差异的差异特征指标;
根据所述差异特征指标,对所述来源数据库和所述目标数据库进行同步。
可选地,所述表的描述信息中包括所述表的唯一标识;
所述字段的描述信息中包括所述字段的唯一标识;
所述第三特征指标中包括所述数据的特征值,以及所述数据对应的全局唯一标识,所述全局唯一标识根据所述表的唯一标识和所述字段的唯一标识确定,用于指示所述数据所属的表中的字段。
可选地,所述分别获得所述来源数据库和所述目标数据库的第一特征指标,包括:
获得所述来源数据库中每张表的描述信息,存入所述来源数据库对应的第一特征指标的存储列表中;获得所述目标数据库中每张表的描述信息,存入所述目标数据库对应的第一特征指标的存储列表中;
所述分别获得所述来源数据库和所述目标数据库的第二特征指标,包括:
获得所述来源数据库中每个字段的描述信息,存入所述来源数据库对应的第二特征指标的存储列表中;获得所述目标数据库中每个字段的描述信息,存入所述目标数据库对应的第二特征指标的存储列表中;
所述分别获得所述来源数据库和所述目标数据库的第三特征指标,包括:
获得所述来源数据库中第一数据的特征值,并根据所述第一数据所属的表的唯一标识以及所属字段的唯一标识,获得所述第一数据的全局唯一标识,将所述第一数据的特征值以及所述第一数据的全局唯一标识,对应保存至所述来源数据库对应的第三特征指标的存储列表中;
获得所述目标数据库中第二数据的特征值,并根据所述第二数据所属的表的唯一标识以及所属字段的唯一标识,获得所述第二数据的全局唯一标识,将所述第二数据的特征值以及所述第二数据的全局唯一标识,对应保存至所述目标数据库对应的第三特征指标的存储列表中。
可选地,所述表的描述信息中还包括所述表的表名;
所述字段的描述信息中还包括所述字段的字段名、所述字段的存储结构描述信息,以及所述字段所属表的唯一标识;
所述根据所述来源数据库和所述目标数据库各自的所述第一特征指标、所述第二特征指标和所述第三特征指标,获得用于指示所述来源数据库和所述目标数据库之间差异的差异特征指标,包括:
比较所述来源数据库和所述目标数据库的所述第三特征指标的存储列表,获得第一差异数据列表;
解析所述第一差异数据列表中的所述全局唯一标识,得到所述第一差异数据列表对应的所述表的唯一标识以及所述字段的唯一标识;
根据解析得到的所述表的唯一标识以及所述字段的唯一标识,所述第一特征指标的存储列表和所述第二特征指标的存储列表中,获得解析得到的所述表的唯一标识对应的表的描述信息,及解析得到的所述字段的唯一标识对应的字段的描述信息,保存至第二差异数据列表;
将所述第一差异数据列表中的所述全局唯一标识,以及解析得到的所述表的描述信息中的表名,保存至第三差异数据列表;
将所述第二差异数据列表和所述第三差异数据列表,作为所述差异特征指标。
可选地,所述根据所述差异特征指标,对所述来源数据库和所述目标数据库进行同步,包括:
根据所述第二差异数据列表中所述表的描述信息和所述字段的描述信息,将所述目标数据库中表的结构与所述来源数据库中表的结构同步;
根据所述第三差异数据列表中所述表名和所述全局唯一标识,从所述来源数据库中获取需要同步的第一数据,并同步至所述目标数据库。
可选地,所述分别获得所述来源数据库和所述目标数据库的第二特征指标之后,所述方法还包括:
分别对所述来源数据库和所述目标数据库进行以下处理:
获得所述第二特征指标的存储列表中第三数据的特征值;
获得所述第二特征指标的存储列表的唯一标识和字段的唯一标识,根据所述第二特征指标的存储列表的唯一标识和字段的唯一标识,生成所述第二特征指标的存储列表中字段的全局唯一标识;
将所述第二特征指标的存储列表中第三数据的特征值以及所述第三数据所属字段的全局唯一标识,对应保存至所述第三特征指标的存储列表中。
可选地,所述数据的特征值为采用特征值计算算法对所述数据进行计算得到。
可选地,所述方法还包括:
在所述来源数据库新增或所述目标数据库中新增删除表时,在发生表更新的数据库的所述第一特征指标的存储列表中,新增或删除表的描述信息;
在所述来源数据库或所述目标数据库中更新字段时,在发生字段更新的数据库的所述第二特征指标的存储列表中,更新字段的描述信息;并根据更新后的所述第二特征指标的存储列表,更新与所述发生字段更新的数据库对应的所述第三特征指标的存储列表;
在所述来源数据库或所述目标数据库中数据发生更新时,计算发生更新的所述第一数据的特征值,并更新至发生数据更新的数据库的所述第三特征指标的存储列表。
可选地,根据所述差异特征指标,对所述来源数据库和所述目标数据库进行同步之前,所述方法还包括:
通过前端用户操作界面显示所述差异特征指标;
获取通过所述前端用户操作界面从所述差异特征指标中选择的内容,将所述差异特征指标中未选中的内容删除。
第二方面,本申请实施例提供了一种数据库同步装置,包括:
第一获取模块,用于获取待同步的来源数据库和目标数据库;
第二获取模块,用于分别获得所述来源数据库和所述目标数据库的第一特征指标;其中,所述第一特征指标用于指示表的描述信息;
第三获取模块,用于分别获得所述来源数据库和所述目标数据库的第二特征指标;其中,所述第二特征指标用于指示表中字段的描述信息;
第四获取模块,用于分别获得所述来源数据库和所述目标数据库的第三特征指标;其中,所述第三特征指标用于指示数据以及数据所属的表中的字段;
第五获取模块,用于根据所述来源数据库和所述目标数据库各自的所述第一特征指标、所述第二特征指标和所述第三特征指标,获得用于指示所述来源数据库和所述目标数据库之间差异的差异特征指标;
同步模块,用于根据所述差异特征指标,对所述来源数据库和所述目标数据库进行同步。
第三方面,本申请实施例提供了一种电子设备,包括:处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述存储器中所存储的程序,实现第一方面所述的数据库同步方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的数据库同步方法。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:本申请实施例提供的该方法,通过获取来源数据库和目标数据库各自的第一特征指标、第二特征指标和第三特征指标,在第一特征指标中指示表的描述信息,在第二特征指标中指示字段的描述信息,以及在第三特征指标中指示数据以及数据所属表中的字段,通过来源数据库和目标数据库各自的第一特征指标、第二特征指标及第三特征指标,获得能够指示两个数据库数据差异的差异特征指标,按照该差异特征指标,即可直接对来源数据库和目标数据库中不同的数据进行同步。
同步过程中并不需要人为或利用工具指定需要同步的数据,并且,通过特征指标能够直接反映数据库的结构性特征以及数据库中数据的特征,通过特征指标的比对即可获知两个数据库的结构性差异,不需要人为单独处理,处理过程节约了人力资源,提高了同步效率,并且避免了人为处理可能导致的同步错误。降低了业务***多个版本数据库间的数据同步和迁移成本,解决了大型业务***多版本数据库的全量或部分同步问题。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中数据库同步***架构示意图;
图2为本申请实施例中数据库同步方法流程示意图;
图3为本申请实施例中根据第二特征指标的数据完善第三特征指标的方法流程示意图;
图4为本申请实施例中获得差异特征指标的方法流程示意图;
图5为本申请实施例中根据差异特征指标同步的过程示意图;
图6为本申请实施例中数据库同步装置的结构示意图;
图7为本申请实施例中电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例中,部分参数的定义如下:
表T1,用于保存数据库的第一特征指标,该第一特征指标用于指示数据库中每张表的描述信息,该表的描述中包括表的唯一标识(也称为唯一ID),也可以是包括表的唯一标识和表名,表1为表T1的结构示例。
表1 T1的表结构示例
表数据/表字段 | 数据1 | 数据2 | 数据3 | ... |
唯一ID | 1 | 2 | 3 | ... |
表名 | tableA | tableB | tableC | ... |
表T2,用于保存数据库的第二特征指标,该第二特征指标用于指示数据库中每张表中各字段描述信息,字段的描述信息中包括字段的唯一标识,也可以是包括字段的唯一标识、字段的字段名、字段的存储结构描述信息和字段所属表的唯一标识。
表2 T2的表结构示例
表T3,用于保存数据库的第三特征指标,该第三特征指标用于指示数据库中的数据以及数据所属的表中的字段,具体可以是保存数据的全局唯一标识(也称为全局唯一ID)和数据的特征值。
其中,该全局唯一标识可以是根据表的唯一标识和字段的唯一标识确定,例如,可以是表的唯一标识和字段的唯一标识的直接组合,组合得到的全局唯一标识的前N位直接来自表的唯一标识,后M位直接来自表中字段的唯一标识,将该前N位和后M位串接得到该全局唯一标识。
其中,数据的特征值,可以是采用哈希(Hash)、循环冗余校验(CRC)32或消息摘要算法(MD5)等对数据进行特征值计算得到。
表3 T3的表结构示例
表数据/表字段 | 数据1 | 数据2 | 数据3 | ... |
唯一ID | 10001 | 20012 | 30155 | ... |
特征值 | aefqsecq | lsgjxine | enpxrmsq | ... |
以上表T1、T2和T3共同定义了数据库的特征指标,能够描述数据库中的数据以及数据库的结构。
本申请实施例中,为了提高数据库同步的效率,降低人为参与度,节约人力资源,避免人为参与导致错误率高的问题,提出了一种数据库同步方法。该方法可以应用于能够调用待同步的来源数据库和目标数据库中所有数据的一个设备或多个设备,该设备可以是任意一种具有一定数据处理能力的设备,例如可以是任意一种形式的终端,也可以是服务器,或者是终端和服务器组合得到的数据同步***中。
具体地,如图1所示,该数据库同步***可以包括前端用户操作界面10、数据处理后台11和数据库更新代理12(数据库更新代理A、数据库更新代理B等)。
此处的数据库更新代理12根据需要可以是一个或多个,图中仅以数据库更新代理12为三个为例进行说明,但这并不表示数据库更新代理12的个数必须为3,这里并不限制数据库更新代理12的个数.
前端用户操作界面10,主要用于提供界面,获取用户通过该界面指定的来源数据库和目标数据库,提交差异计算指令到数据处理后台11;从数据处理后台11获取差异特征指标,并在界面上显示该差异特征指标,获取用户的更新指令后,获取更新数据使用的差异特征指标,将更新数据使用的差异特征指标传输给数据处理后台11;获取通过数据处理后台11返回的同步结果,并通过界面展示。
数据处理后台11,主要用于在获取到前端用户操作界面10提交的差异计算指令后,按照该来源数据库和目标数据库所属的数据库类型,创建数据库更新代理12;获取数据库更新代理12返回的差异特征指标后,将该差异特征指标返回给前端用户操作界面10;获取前端用户操作界面10传输的更新数据使用的差异特征指标,将该差异特征指标传输给数据库更新代理12。
数据库更新代理12,主要用于与来源数据库和目标数据库连接,按照差异计算指令,对来源数据库和目标数据库进行差异计算,得到差异特征指标,将差异特征指标返回给数据处理后台;获取数据处理后台11传输的更新数据使用的差异特征指标,按照该差异特征指标对目标数据库进行同步后,将同步结果通过数据处理后台11返回给前端用户操作界面10。
需要说明的是,本申请实施例所提供的数据库同步的方法流程适用于任意一种类型数据库中,两个数据库的数据同步,例如,待同步的两个数据库均属于MySQL数据库。
如图2所示,基于以上提出的数据库同步***,数据库同步的方法流程主要包括以下步骤:
步骤201,获取待同步的来源数据库和目标数据库。
一个具体实施例中,通过前端用户操作界面,获取用户输入的待同步的来源数据库的名称(也可以是其他能够唯一标识来源数据的标识参数)和目标数据库的名称(也可以是其他能够唯一标识目标数据库的标识参数),并通过该前端用户操作界面,发起差异计算指令,即发起同步流程。
数据处理后台,在获取到前端用户操作界面发起的差异计算指令后,根据来源数据库和目标数据库的类型,创建数据库更新代理。通过该数据库更新代理连接来源数据库和目标数据库,以读取来源数据库和目标数据库中的数据。
步骤202,分别获得来源数据库和目标数据库的第一特征指标;其中,第一特征指标用于指示表的描述信息。
一个具体实施例中,表的描述信息中至少包括表的唯一标识。
这里所指的表的唯一标识,可以是任意形式的能够唯一指示一张表的标识参数,例如,可以是能够唯一指示一张表的编号等。
具体地,获得来源数据库中每张表的描述信息,存入来源数据库对应的第一特征指标的存储列表中,即来源数据库对应的表T1;
获得目标数据库中每张表的描述信息,存入目标数据库对应的第一特征指标的存储列表中,即目标数据库对应的表T1。
步骤203,分别获得来源数据库和目标数据库的第二特征指标;其中,第二特征指标用于指示表中字段的描述信息。
一个具体实施例中,字段的描述信息中至少包括字段的唯一标识。
这里所指的字段的唯一标识,可以是任意形式的能够唯一指示一个字段的标识参数,例如,可以是能够唯一指示该字段的编号等。
具体地,获得来源数据库中每个字段的描述信息,存入来源数据库对应的第二特征指标的存储列表中,即来源数据库对应的表T2;
获得目标数据库中每个字段的描述信息,存入目标数据库对应的第二特征指标的存储列表中,即目标数据库对应的表T2。
步骤204,分别获得来源数据库和目标数据库的第三特征指标;其中,第三特征指标用于指示数据以及数据所属的表中的字段。
一个具体实施例中,第三特征指标中包括数据的特征值,以及数据对应的全局唯一标识,该全局唯一标识根据表的唯一标识和字段的唯一标识确定,用于指示数据所属的表中的字段。
具体地,获得来源数据库中第一数据的特征值,并根据第一数据所属的表的唯一标识以及所属字段的唯一标识,获得第一数据的全局唯一标识,将第一数据的特征值以及第一数据的全局唯一标识,对应保存至来源数据库对应的第三特征指标的存储列表中,即来源数据库对应的表T3;
获得目标数据库中第二数据的特征值,并根据第二数据所属的表的唯一标识以及所属字段的唯一标识,获得第二数据的全局唯一标识,将第二数据的特征值以及第二数据的全局唯一标识,对应保存至述目标数据库对应的第三特征指标的存储列表中,即目标数据库对应的表T3。
需要说明的是,这里将来源数据库中数据表示为第一数据,是泛指来源数据库中任意一个数据,将目标数据库中的数据表示为第二数据,是泛指目标数据库中的任意一个数据。
一个具体实施例中,为了能够在表T3中更加全面的反映数据库中的数据以及结构,在获得来源数据库或目标数据库的第二特征指标之后,进一步完善表T3的数据,来源数据库和目标数据库的处理过程相同,如图3所示,具体包括以下步骤:
步骤301,获得第二特征指标的存储列表中第三数据的特征值。
步骤302,获得第二特征指标的存储列表的唯一标识和字段的唯一标识,根据第二特征指标的存储列表的唯一标识和字段的唯一标识,生成第二特征指标的存储列表中字段的全局唯一标识。
步骤303,将第二特征指标的存储列表中第三数据的特征值以及第三数据所属字段的全局唯一标识,对应保存至第三特征指标的存储列表中。
通过将第二特征指标的存储列表中数据的特征值,以及各字段的全局唯一标识,保存至第三特征指标的存储列表中,使得第三特征指标的存储列表能够全面反映数据库中结构数据,后续采用第三特征指标的存储列表进行对比,得到的差异数据能够更加全面和准确。
步骤205,根据来源数据库和目标数据库各自的第一特征指标、第二特征指标和第三特征指标,获得用于指示来源数据库和目标数据库之间差异的差异特征指标。
其中,表的描述信息中还包括表的表名;
字段的描述信息中还包括字段的字段名、字段的存储结构描述信息,以及字段所属表的唯一标识。
一个具体实施例中,如图4所示,获得差异特征指标的具体过程主要包括:
步骤401,比较来源数据库和目标数据库的第三特征指标的存储列表,获得第一差异数据列表,表示为表F1。
步骤402,解析第一差异数据列表中的全局唯一标识,得到第一差异数据列表对应的表的唯一标识以及字段的唯一标识。
具体地,根据全局唯一标识的生成过程,反向解析全局唯一标识,获得表的唯一标识和字段的唯一标识。
步骤403,根据解析得到的表的唯一标识以及字段的唯一标识,从第一特征指标的存储列表和第二特征指标的存储列表中,获得解析得到的表的唯一标识对应的表的描述信息,及解析得到的字段的唯一标识对应的字段的描述信息,保存至第二差异数据列表,表示为表F2。
步骤404,将第一差异数据列表中的全局唯一标识,以及解析得到的表的描述信息中的表名,保存至第三差异数据列表,表示为表F3。
步骤405,将第二差异数据列表和第三差异数据列表,作为来源数据库和目标数据库之间的差异特征指标。
一个具体实施例中,数据库同步***的数据处理后台,通过对来源数据库和目标数据库进行特征计算和比对,得到差异特征指标后,并将该差异特征指标传输给前端用户操作界面,例如以消息的形式发送给前端用户操作界面。
通过列表的形式,在数据库同步***的前端用户操作界面显示差异特征指标,以便于用户根据显示的该差异特征指标,选择需要同步的数据,例如全量同步数据或部分同步数据。
步骤206,根据差异特征指标,对来源数据库和目标数据库进行同步。
一个具体实施例中,如图5所示,根据差异特征指标,对来源数据库和目标数据库进行同步的具体过程主要包括:
步骤501,根据第二差异数据列表中表的描述信息和字段的描述信息,将目标数据库中表的结构与来源数据库中表的结构同步;
步骤502,根据第三差异数据列表中表名和全局唯一标识,从来源数据库中获取需要同步的第一数据,并同步至目标数据库。
一个具体实施例中,在得到差异特征指标后,通过数据库同步***的前端用户操作界面显示该差异特征指标的列表。并且,在该前端用户操作界面上设置有单选和多选操作,用户通过设置的单选或多选操作,对显示的差异特征指标的列表中的项进行选取操作。
根据用户通过前端用户操作界面对该差异特征指标的列表的选取操作,获取从该差异特征指标的列表中选中的内容,将该差异特征指标的列表中未选中的内容删除,仅保留用户选中的内容,作为本次需要数据同步的差异特征指标。
通过该前端用户操作界面,向数据处理后台发起数据更新指令,数据处理后台调用对应的数据库更新代理,按照更新后的该差异特征指标的列表,对来源数据库和目标数据库进行同步。
当然,在获取到用户选中的为差异特征指标的列表中的全部内容时,确定对来源数据库和目标数据库进行全量同步,则不需要对差异特征指标的列表进行删减,直接按照该差异特征指标的列表对目标数据库进行更新即可。
数据库同步***的数据处理后台在完成数据同步后,向前端用户操作界面返回同步结果,并提示用户,例如以消息提示的方式提示用户查看。
一个具体实施例中,在来源数据库和目标数据库同步的过程中,如果数据库的数据或结构发生变化,则需要对数据库对应的特征指标进行更新,具体包括但不限于以下几种情况:
情况1,在来源数据库新增或目标数据库中新增删除表时,在发生表更新的数据库的第一特征指标的存储列表中,新增或删除表的描述信息;
情况2,在来源数据库或目标数据库中更新字段时,在发生字段更新的数据库的第二特征指标的存储列表中,更新字段的描述信息;并根据更新后的第二特征指标的存储列表,更新与该发生字段更新的数据库对应的第三特征指标的存储列表;
情况3,在来源数据库或目标数据库中数据发生更新时,计算发生更新的第一数据的特征值,并更新至发生数据更新的数据库的第三特征指标的存储列表。
在第一特征指标、第二特征指标和第三特征指标中任意一个更新后,重新计算来源数据库和目标数据库的差异特征指标,并按照该差异特征指标进行来源数据库和目标数据库的同步。
本申请实施例所提供的方法,通过获取来源数据库和目标数据库各自的第一特征指标、第二特征指标和第三特征指标,在第一特征指标中指示表的描述信息,在第二特征指标中指示字段的描述信息,以及在第三特征指标中指示数据以及数据所属表中的字段,通过来源数据库和目标数据库各自的第一特征指标、第二特征指标及第三特征指标,获得能够指示两个数据库数据差异的差异特征指标,按照该差异特征指标,即可直接对来源数据库和目标数据库中不同的数据进行同步。
同步过程中并不需要人为或利用工具指定需要同步的数据,并且,通过特征指标能够直接反映数据库的结构性特征以及数据库中数据的特征,通过特征指标的比对即可获知两个数据库的结构性差异,不需要人为单独处理,处理过程节约了人力资源,提高了同步效率,并且避免了人为处理可能导致的同步错误。降低了业务***多个版本数据库间的数据同步和迁移成本,解决了大型业务***多版本数据库的全量或部分同步问题。
基于同一构思,本申请实施例中提供了一种数据库同步装置,该装置的具体实施可参见方法实施例部分的描述,重复之处不再赘述,如图6所示,该装置主要包括:
第一获取模块601,用于获取待同步的来源数据库和目标数据库;
第二获取模块602,用于分别获得所述来源数据库和所述目标数据库的第一特征指标;其中,所述第一特征指标用于指示表的描述信息;
第三获取模块603,用于分别获得所述来源数据库和所述目标数据库的第二特征指标;其中,所述第二特征指标用于指示表中字段的描述信息;
第四获取模块604,用于分别获得所述来源数据库和所述目标数据库的第三特征指标;其中,所述第三特征指标用于指示数据以及数据所属的表中的字段;
第五获取模块605,用于根据所述来源数据库和所述目标数据库各自的所述第一特征指标、所述第二特征指标和所述第三特征指标,获得用于指示所述来源数据库和所述目标数据库之间差异的差异特征指标;
同步模块606,用于根据所述差异特征指标,对所述来源数据库和所述目标数据库进行同步。
基于同一构思,本申请实施例中还提供了一种电子设备,如图7所示,该电子设备主要包括:处理器701、通信接口702、存储器703和通信总线704,其中,处理器701、通信接口702和存储器703通过通信总线704完成相互间的通信。其中,存储器703中存储有可被至处理器701执行的程序,处理器701执行存储器703中存储的程序,实现如下步骤:获取待同步的来源数据库和目标数据库;
分别获得所述来源数据库和所述目标数据库的第一特征指标;其中,所述第一特征指标用于指示表的描述信息;
分别获得所述来源数据库和所述目标数据库的第二特征指标;其中,所述第二特征指标用于指示表中字段的描述信息;
分别获得所述来源数据库和所述目标数据库的第三特征指标;其中,所述第三特征指标用于指示数据以及数据所属的表中的字段;
根据所述来源数据库和所述目标数据库各自的所述第一特征指标、所述第二特征指标和所述第三特征指标,获得用于指示所述来源数据库和所述目标数据库之间差异的差异特征指标;
根据所述差异特征指标,对所述来源数据库和所述目标数据库进行同步。
上述电子设备中提到的通信总线704可以是外设部件互连标准(PeripheralComponent Interconnect,简称PCI)总线或扩展工业标准结构(Extended IndustryStandard Architecture,简称EISA)总线等。该通信总线704可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口702用于上述电子设备与其他设备之间的通信。
存储器703可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器701的存储装置。
上述的处理器701可以是通用处理器,包括中央处理器(Central ProcessingUnit,简称CPU)、网络处理器(Network Processor,简称NP)等,还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当该计算机程序在计算机上运行时,使得计算机执行上述实施例中所描述的数据库同步方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。该计算机可以时通用计算机、专用计算机、计算机网络或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、微波等)方式向另外一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如软盘、硬盘、磁带等)、光介质(例如DVD)或者半导体介质(例如固态硬盘)等。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (12)
1.一种数据库同步方法,其特征在于,包括:
获取待同步的来源数据库和目标数据库;
分别获得所述来源数据库和所述目标数据库的第一特征指标;其中,所述第一特征指标用于指示表的描述信息;
分别获得所述来源数据库和所述目标数据库的第二特征指标;其中,所述第二特征指标用于指示表中字段的描述信息;
分别获得所述来源数据库和所述目标数据库的第三特征指标;其中,所述第三特征指标用于指示数据以及数据所属的表中的字段;
根据所述来源数据库和所述目标数据库各自的所述第一特征指标、所述第二特征指标和所述第三特征指标,获得用于指示所述来源数据库和所述目标数据库之间差异的差异特征指标;
根据所述差异特征指标,对所述来源数据库和所述目标数据库进行同步。
2.根据权利要求1所述的数据库同步方法,其特征在于,所述表的描述信息中包括所述表的唯一标识;
所述字段的描述信息中包括所述字段的唯一标识;
所述第三特征指标中包括所述数据的特征值,以及所述数据对应的全局唯一标识,所述全局唯一标识根据所述表的唯一标识和所述字段的唯一标识确定,用于指示所述数据所属的表中的字段。
3.根据权利要求2所述的数据库同步方法,其特征在于,所述分别获得所述来源数据库和所述目标数据库的第一特征指标,包括:
获得所述来源数据库中每张表的描述信息,存入所述来源数据库对应的第一特征指标的存储列表中;获得所述目标数据库中每张表的描述信息,存入所述目标数据库对应的第一特征指标的存储列表中;
所述分别获得所述来源数据库和所述目标数据库的第二特征指标,包括:
获得所述来源数据库中每个字段的描述信息,存入所述来源数据库对应的第二特征指标的存储列表中;获得所述目标数据库中每个字段的描述信息,存入所述目标数据库对应的第二特征指标的存储列表中;
所述分别获得所述来源数据库和所述目标数据库的第三特征指标,包括:
获得所述来源数据库中第一数据的特征值,并根据所述第一数据所属的表的唯一标识以及所属字段的唯一标识,获得所述第一数据的全局唯一标识,将所述第一数据的特征值以及所述第一数据的全局唯一标识,对应保存至所述来源数据库对应的第三特征指标的存储列表中;
获得所述目标数据库中第二数据的特征值,并根据所述第二数据所属的表的唯一标识以及所属字段的唯一标识,获得所述第二数据的全局唯一标识,将所述第二数据的特征值以及所述第二数据的全局唯一标识,对应保存至所述目标数据库对应的第三特征指标的存储列表中。
4.根据权利要求3所述的数据库同步方法,其特征在于,所述表的描述信息中还包括所述表的表名;
所述字段的描述信息中还包括所述字段的字段名、所述字段的存储结构描述信息,以及所述字段所属表的唯一标识;
所述根据所述来源数据库和所述目标数据库各自的所述第一特征指标、所述第二特征指标和所述第三特征指标,获得用于指示所述来源数据库和所述目标数据库之间差异的差异特征指标,包括:
比较所述来源数据库和所述目标数据库的所述第三特征指标的存储列表,获得第一差异数据列表;
解析所述第一差异数据列表中的所述全局唯一标识,得到所述第一差异数据列表对应的所述表的唯一标识以及所述字段的唯一标识;
根据解析得到的所述表的唯一标识以及所述字段的唯一标识,从所述第一特征指标的存储列表和所述第二特征指标的存储列表中,获得解析得到的所述表的唯一标识对应的表的描述信息,及解析得到的所述字段的唯一标识对应的字段的描述信息,保存至第二差异数据列表;
将所述第一差异数据列表中的所述全局唯一标识,以及解析得到的所述表的描述信息中的表名,保存至第三差异数据列表;
将所述第二差异数据列表和所述第三差异数据列表,作为所述差异特征指标。
5.根据权利要求4所述的数据库同步方法,其特征在于,所述根据所述差异特征指标,对所述来源数据库和所述目标数据库进行同步,包括:
根据所述第二差异数据列表中所述表的描述信息和所述字段的描述信息,将所述目标数据库中表的结构与所述来源数据库中表的结构同步;
根据所述第三差异数据列表中所述表名和所述全局唯一标识,从所述来源数据库中获取需要同步的第一数据,并同步至所述目标数据库。
6.根据权利要求3-5任一项所述的数据库同步方法,其特征在于,所述分别获得所述来源数据库和所述目标数据库的第二特征指标之后,所述方法还包括:
分别对所述来源数据库和所述目标数据库进行以下处理:
获得所述第二特征指标的存储列表中第三数据的特征值;
获得所述第二特征指标的存储列表的唯一标识和字段的唯一标识,根据所述第二特征指标的存储列表的唯一标识和字段的唯一标识,生成所述第二特征指标的存储列表中字段的全局唯一标识;
将所述第二特征指标的存储列表中第三数据的特征值以及所述第三数据所属字段的全局唯一标识,对应保存至所述第三特征指标的存储列表中。
7.根据权利要求2所述的数据库同步方法,其特征在于,所述数据的特征值为采用特征值计算算法对所述数据进行计算得到。
8.根据权利要求6所述的数据库同步方法,其特征在于,所述方法还包括:
在所述来源数据库新增或所述目标数据库中新增删除表时,在发生表更新的数据库的所述第一特征指标的存储列表中,新增或删除表的描述信息;
在所述来源数据库或所述目标数据库中更新字段时,在发生字段更新的数据库的所述第二特征指标的存储列表中,更新字段的描述信息;并根据更新后的所述第二特征指标的存储列表,更新与所述发生字段更新的数据库对应的所述第三特征指标的存储列表;
在所述来源数据库或所述目标数据库中数据发生更新时,计算发生更新的所述第一数据的特征值,并更新至发生数据更新的数据库的所述第三特征指标的存储列表。
9.根据权利要求1所述的数据库同步方法,其特征在于,根据所述差异特征指标,对所述来源数据库和所述目标数据库进行同步之前,所述方法还包括:
通过前端用户操作界面显示所述差异特征指标;
获取通过所述前端用户操作界面从所述差异特征指标中选择的内容,将所述差异特征指标中未选中的内容删除。
10.一种数据库同步装置,其特征在于,包括:
第一获取模块,用于获取待同步的来源数据库和目标数据库;
第二获取模块,用于分别获得所述来源数据库和所述目标数据库的第一特征指标;其中,所述第一特征指标用于指示表的描述信息;
第三获取模块,用于分别获得所述来源数据库和所述目标数据库的第二特征指标;其中,所述第二特征指标用于指示表中字段的描述信息;
第四获取模块,用于分别获得所述来源数据库和所述目标数据库的第三特征指标;其中,所述第三特征指标用于指示数据以及数据所属的表中的字段;
第五获取模块,用于根据所述来源数据库和所述目标数据库各自的所述第一特征指标、所述第二特征指标和所述第三特征指标,获得用于指示所述来源数据库和所述目标数据库之间差异的差异特征指标;
同步模块,用于根据所述差异特征指标,对所述来源数据库和所述目标数据库进行同步。
11.一种电子设备,其特征在于,包括:处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述存储器中所存储的程序,实现权利要求1至9任一项所述的数据库同步方法。
12.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至9任一项所述的数据库同步方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011186500.0A CN112287027B (zh) | 2020-10-29 | 2020-10-29 | 数据库同步方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011186500.0A CN112287027B (zh) | 2020-10-29 | 2020-10-29 | 数据库同步方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112287027A true CN112287027A (zh) | 2021-01-29 |
CN112287027B CN112287027B (zh) | 2024-04-23 |
Family
ID=74353690
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011186500.0A Active CN112287027B (zh) | 2020-10-29 | 2020-10-29 | 数据库同步方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112287027B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113535727A (zh) * | 2021-07-19 | 2021-10-22 | 北京数码大方科技股份有限公司 | 信息***的数据输出方法及数据输出装置、电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107895018A (zh) * | 2017-11-15 | 2018-04-10 | 广州视睿电子科技有限公司 | 数据库修改sql生成方法、***、存储介质及计算机设备 |
CN109885581A (zh) * | 2019-03-14 | 2019-06-14 | 苏州达家迎信息技术有限公司 | 数据库的同步方法、装置、设备及存储介质 |
US10616337B1 (en) * | 2017-01-17 | 2020-04-07 | Allscripts Software, Llc | Graphical user interface (GUI) that facilitates database migration |
CN111078672A (zh) * | 2019-12-20 | 2020-04-28 | 中国建设银行股份有限公司 | 数据库的数据对比方法及装置 |
CN111831755A (zh) * | 2020-07-23 | 2020-10-27 | 北京思特奇信息技术股份有限公司 | 一种跨数据库数据同步方法、***、介质及设备 |
-
2020
- 2020-10-29 CN CN202011186500.0A patent/CN112287027B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10616337B1 (en) * | 2017-01-17 | 2020-04-07 | Allscripts Software, Llc | Graphical user interface (GUI) that facilitates database migration |
CN107895018A (zh) * | 2017-11-15 | 2018-04-10 | 广州视睿电子科技有限公司 | 数据库修改sql生成方法、***、存储介质及计算机设备 |
CN109885581A (zh) * | 2019-03-14 | 2019-06-14 | 苏州达家迎信息技术有限公司 | 数据库的同步方法、装置、设备及存储介质 |
CN111078672A (zh) * | 2019-12-20 | 2020-04-28 | 中国建设银行股份有限公司 | 数据库的数据对比方法及装置 |
CN111831755A (zh) * | 2020-07-23 | 2020-10-27 | 北京思特奇信息技术股份有限公司 | 一种跨数据库数据同步方法、***、介质及设备 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113535727A (zh) * | 2021-07-19 | 2021-10-22 | 北京数码大方科技股份有限公司 | 信息***的数据输出方法及数据输出装置、电子设备 |
CN113535727B (zh) * | 2021-07-19 | 2024-04-09 | 北京数码大方科技股份有限公司 | 信息***的数据输出方法及数据输出装置、电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112287027B (zh) | 2024-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108958959B (zh) | 检测hive数据表的方法和装置 | |
CN108897874B (zh) | 用于处理数据的方法和装置 | |
CN110633977A (zh) | 支付异常处理方法、装置及终端设备 | |
CN111435406A (zh) | 一种纠正数据库语句拼写错误的方法和装置 | |
US20190050379A1 (en) | Method for providing data management service having automatic cell merging function and service providing server for performing the method | |
CN111966707A (zh) | 查询语句生成方法、装置、电子设备和计算机可读介质 | |
CN111737148A (zh) | 自动回归测试方法、装置、计算机设备及存储介质 | |
CN112287027A (zh) | 数据库同步方法、装置、设备及存储介质 | |
CN111309721A (zh) | 一种确定数据表关联关系的方法和装置 | |
CN108694172B (zh) | 信息输出方法和装置 | |
CN109597819B (zh) | 用于更新数据库的方法和装置 | |
CN109460318B (zh) | 一种可回滚档案采集数据的导入方法、计算机装置及计算机可读存储介质 | |
CN110716911B (zh) | 数据处理方法及装置、电子设备、存储介质 | |
CN115809228A (zh) | 数据比对方法、装置、存储介质及电子设备 | |
CN114443634A (zh) | 数据质量检核方法、装置、设备及存储介质 | |
US7149995B2 (en) | Graphical interface to layout processing components and connections | |
CN113780950A (zh) | 数据处理方法、装置、服务器和可读存储介质 | |
CN114860305A (zh) | 数据处理方法和装置 | |
CN116107971A (zh) | 模型的数据处理方法、装置、电子设备以及存储介质 | |
CN114020813A (zh) | 基于哈希算法的数据比对方法、装置、设备及存储介质 | |
US20170161359A1 (en) | Pattern-driven data generator | |
CN109697141B (zh) | 用于可视化测试的方法及装置 | |
CN108509455B (zh) | 数据表处理方法和装置 | |
WO2019071416A1 (zh) | 数据管理方法、终端及计算机可读介质 | |
CN113515504B (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 |