CN112231396A - 一种跨数据库增量同步数据的方法 - Google Patents
一种跨数据库增量同步数据的方法 Download PDFInfo
- Publication number
- CN112231396A CN112231396A CN202010968271.1A CN202010968271A CN112231396A CN 112231396 A CN112231396 A CN 112231396A CN 202010968271 A CN202010968271 A CN 202010968271A CN 112231396 A CN112231396 A CN 112231396A
- Authority
- CN
- China
- Prior art keywords
- database
- data
- source database
- statement
- generating
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 29
- 230000001360 synchronised effect Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012546 transfer 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/23—Updating
-
- 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/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
Abstract
本申请公开了一种跨数据库增量同步数据的方法,包括:根据源数据库与目标数据库建立配置文件,根据所述配置文件在所述源数据库中生成数据同步日志表;根据所述数据同步日志表判断所述源数据库中变化的数据,生成SQL语句,所述SQL语句包括:DELETE语句、UPDATE语句、INSERT语句;在所述目标数据库中执行所述SQL语句,将所述源数据库中变化的数据同步到所述目标数据库中。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种跨数据库增量同步数据的方法。
背景技术
在信息化社会,充分有效地管理和利用各类信息资源,是进行科学研究和决策管理的前提条件。数据库是管理信息系统、企业经营系统等信息系统的核心部分,是企业进行经营管理的重要部分。数据库的种类繁多,企业经营中使用的各种信息系统可能使用不同类型的数据库,为了充分利用各个信息系统的数据,实现数据共享,可能需要在各个不同类型的数据库之间进行数据的同步。
在现有技术中,数据库同步主要有两种方式:全量同步和增量同步,目前在各种不同数据库之间进行数据的同步,主要方法是把源数据库中的数据读取到内存,再把内存中的数据传输到目标数据库进行更新。
这种全量同步的方式使用数据库的整表数据进行传输,网络流量占用太大,数据传输速度慢且效率低。
发明内容
本发明提供了一种跨数据库增量同步数据的方法,解决了不同类型数据库之间数据快速同步的技术问题。
一种跨数据库增量同步数据的方法,其特征在于,包括:
根据源数据库与目标数据库建立配置文件,根据所述配置文件在所述源数据库中生成数据同步日志表;
根据所述数据同步日志表判断所述源数据库中变化的数据,生成SQL语句,所述SQL语句包括:DELETE语句、UPDATE语句、INSERT语句;
在所述目标数据库中执行所述SQL语句,将所述源数据库中变化的数据同步到所述目标数据库中。
可选地,所述配置文件,具体包括:所述配置文件中记录所述源数据库和所述目标数据库的参数信息;
其中,所述源数据库和所述目标数据库的参数信息包括:
所述源数据库和所述目标数据库的数据库类型、数据库服务名、数据库名称、登录用户和口令、表名、主键、字段名、字段类型及长度。
可选地,在源数据库中生成数据同步日志表之前,读取所述配置文件中的所述源数据库的数据库类型、数据库服务名、数据库名称、登录用户和口令,登录所述源数据库。
可选地,在源数据库中生成数据同步日志表,具体包括:读取所述配置文件中所述源数据库的表名、主键、字段名、字段类型及长度信息,根据此信息在源数据库中建立数据同步日志表;
所述源数据库中的每个表建立一个对应的数据同步日志表,用于记录并更新同步数据。
可选地,生成DELETE语句,具体包括:
根据所述源数据库中各个表的主键判断需要删除的数据,生成DELETE语句。
可选地,生成UPDATE语句,具体包括:根据所述源数据库中各个表的主键及其他字段判断需要更新的数据,生成UPDATE语句。
可选地,生成INSERT语句,具体包括:根据各表的主键及其他字段判断需要新增的数据,生成INSERT语句。
可选地,生成所述SQL语句的顺序按照DELETE语句、UPDATE语句、INSERT语句的顺序依次生成。
可选地,在执行所述SQL语句之前,读取配置文件中的所述目标数据库的数据库类型、数据库服务名、数据库名称、登录用户和口令,登录所述目标数据库。
可选地,在所述源数据库中执行生成的所述SQL语句,更新所述数据同步日志表,保持所述数据同步日志表中的数据与在所述源数据库中对应的表一致。
本发明提供了一种跨数据库增量同步数据的方法,能够使跨不同类型的数据库同步数据更快速便捷,只需简单设置数据库参数,就能自动实现数据的快速增量同步,避免了传统方式全表数据传输速度慢的弊端,减少了网络传输数据量,从而提高了数据同步的效率。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的数据同步日志表初始化流程示意图。
图2为本申请实施例提供的数据同步流程示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例对本申请进行清楚、完整的描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本发明的一种跨数据库增量同步数据的方法可用于学校、工厂、医院、企业等有大量数据处理的地方。在学校中,统计师生信息是学校实施教学、管理学生必不可少的工作,比如统计学生学号、年龄成绩等,哪位老师教授哪门学科,教哪个年级,教哪个班等信息同样需要记录,这样的统计工作需要大量的数据处理,本发明的跨数据库同步信息的方法,可以快速的更新系统数据,为教学工作的开展带来方便。在企业中,各个部门往往有不同的数据库,数据库种类繁多,而在经营过程中的用到的数据往往需要在各个部门的数据库之间同步,但源数据库与目标数据库的类型不同,传统方法的同步方式效率低、速度慢,严重影响工作进程。本发明恰好可以解决此问题。
一种跨数据库增量同步数据的方法,其特征在于,包括:
根据源数据库与目标数据库建立配置文件,根据所述配置文件在所述源数据库中生成数据同步日志表;
根据所述数据同步日志表判断所述源数据库中变化的数据,生成SQL语句,所述SQL语句包括:DELETE语句、UPDATE语句、INSERT语句;
在所述目标数据库中执行所述SQL语句,将所述源数据库中变化的数据同步到所述目标数据库中。
图1为本申请实施例提供的数据同步日志表初始化流程示意图,在本申请的一种实施例中,源数据库和目标数据库都记录着师生的数据信息,首先建立配置文件,配置文件中记录了需要同步数据的源数据库和目标数据库的参数信息,在进行数据同步时,修改其中的参数,就可以自动实现数据的快速增量同步,比如,老师要修改学生的考试成绩,打开配置文件中对应考生成绩的文件进行修改,保存好,源数据库中的数据便进行了更新。其次,读取配置文件中记录的源数据库的参数信息,登录源数据库,最后,在源数据库中建立数据同步日志表,数据同步日志表中的数据要与源数据库中的数据一致,至此,数据同步日志表初始化过程结束。
图2为本申请实施例提供的数据同步流程示意图,在源数据库中完成数据同步日志表的建立后,将数据同步日志表与源数据库中各表的主键和/或其他字段名判断源数据库中的数据的变化形式是删除、更新、还是新增,比如删除表中的学生信息、增加表中老师的信息,更新师生信息。根据数据变化的不同形式生成不同的SQL语句,若源数据库中删除了数据,则生成对应的DELETE语句,若源数据库中更新了数据,则生成对应的UPDATE语句,若源数据库中新增了数据,则生成对应的INSERT语句。登录目标数据库,将生成的SQL语句在目标数据库中执行,同步数据到目标数据库,最后,将源数据库中变化的数据同步到数据同步日志表,在目标数据库数据同步之后再更新数据同步日志表中的数据,可以加快目标数据库同步的速度,提升同步效率。
可选地,所述配置文件,具体包括:所述配置文件中记录所述源数据库和所述目标数据库的参数信息;其中,所述源数据库和所述目标数据库的参数信息包括:所述源数据库和所述目标数据库的数据库类型、数据库服务名、数据库名称、登录用户和口令、表名、主键、字段名、字段类型及长度。
在本申请的一种实施例中,建立配置文件是进行数据同步的首要环节,配置文件中记录源数据库和目标数据库的参数信息,这些参数信息具体包括:源数据库的数据库类型、数据库服务名、数据库名称、登录用户和口令、表名、主键、字段名、字段类型及长度等和目标数据库的数据库类型、数据库服务名、数据库名称、登录用户和口令、表名、主键、字段名、字段类型及长度等。这些参数信息用于数据库的登录,数据同步日志表的建立,是生成SQL语句必不可少的数据信息。
可选地,在源数据库中生成数据同步日志表之前,读取所述配置文件中的所述源数据库的数据库类型、数据库服务名、数据库名称、登录用户和口令,登录所述源数据库。
在本申请的一种实施例中,由于数据同步日志表在源数据库中建立,所以,建立数据同步日志表之前需先登录源数据库,登录源数据库的数据信息记录在配置文件中,在源数据库中生成数据同步日志表之前,读取配置文件中的源数据库的数据库类型、数据库服务名、数据库名称、登录用户和口令,登录源数据库,为建立数据同步日志表做准备。
可选地,在源数据库中生成数据同步日志表,具体包括:读取所述配置文件中所述源数据库的表名、主键、字段名、字段类型及长度信息,根据此信息在源数据库中建立数据同步日志表;所述源数据库中的每个表建立一个对应的数据同步日志表,用于记录并更新同步数据。
在本申请的一种实施例中,源数据库中的每个表都要建立一个对应的数据同步日志表,以保证源数据库中的全部数据都能同步到目标数据库,确保数据不丢失。明确数据同步日志表的各个属性信息,读取配置文件中源数据库的表名、主键、字段名、字段类型及长度信息,明确数据同步日志表的架构,根据这些信息对应源数据库中的每个表建立数据同步日志表,保证能清楚及时的记录数据变化情况,辅助生成SQL语句,便于数据的及时同步。
可选地,生成DELETE语句,具体包括:根据所述源数据库中各个表的主键判断需要删除的数据,生成DELETE语句。
在本申请的一种实施例中,主键,其值能唯一地标识表中的每一行,通过它可强制表的实体完整性,用于本记录的修改与删除,它可以唯一确定表中的一行数据,或者可以唯一确定一个实体。根据主键的这种特性,如果源数据库表中某一行数据删除,那么这行数据主键也将删除,比如,学校的某一位教师辞职,那么在源数据库中便将这位教师所在的行数据进行删除,但此时,数据同步日志表中辞职教师的此行数据还未删除,对比表中此行主键的变化,便可确定源数据库中删除的数据,于是,根据源数据库中删除的数据生成DELETE语句,用于将变化的数据同步到目标数据库中。
可选地,生成UPDATE语句,具体包括:根据所述源数据库中各个表的主键及其他字段判断需要更新的数据,生成UPDATE语句。
在本申请的一种实施例中,学校中每月会进行一次模拟考试,学生所得的成绩会在源数据库中更新,源数据库中的数据发生更新时,不需要删除某行数据,所以,主键在源数据库和数据同步日志表中都存在,而需要对表中的每行的字段值进行更新,生成SQL语句时,检查源数据库中各表的主键及其他字段,即检查源数据库中月考成绩所在列的字段值有何变化,于是,根据源数据库中更新的数据生成UPDATE语句,将变化的数据同步到目标数据库中。
可选地,生成INSERT语句,具体包括:根据各表的主键及其他字段判断需要新增的数据,生成INSERT语句。
在本申请的一种实施例中,当学校新增一名转校生时,源数据库中的表便会增加了一行新增人员的身份数据。检查源数据库中的表及其对应的数据同步日志表中的主键及其他字段,此时源数据库的表中存在主键,而对应的数据同步日志表中没有该数据的主键,根据检查结果,生成INSERT语句。
可选地,生成所述SQL语句的顺序按照DELETE语句、UPDATE语句、INSERT语句的顺序依次生成。
在本申请的一种实施例中,如果源数据库中既删除了数据,又更新了数据,同时又新增了数据,为了能够减少形成的SQL语句,提高运行数据的速度,按照DELETE语句、UPDATE语句、INSERT语句的顺序依次生成,生成的语句在目标数据库中依次执行。
在本申请的一种实施例中,如果只进行了数据的更新和新增,就先生成UPDATE语句,再生成INSERT语句,生成的语句按照UPDATE语句、INSERT语句依次执行。如果只有数据的新增,就只生成INSERT语句在目标数据库和数据同步日志表中执行。
可选地,在执行所述SQL语句之前,读取配置文件中的所述目标数据库的数据库类型、数据库服务名、数据库名称、登录用户和口令,登录所述目标数据库。
在本申请的一种实施例中,将数据同步到目标数据库之前需要先登录目标数据库,登录目标数据库的数据信息记录在配置文件中,读取配置文件中的目标数据库的数据库类型、数据库服务名、数据库名称、登录用户和口令,登录目标数据库,为数据同步做准备。
可选地,在所述源数据库中执行生成的所述SQL语句,更新所述数据同步日志表,保持所述数据同步日志表中的数据与在所述源数据库中对应的表一致。
在本申请的一种实施例中,将数据同步到目标数据库中之后,再在源数据库中执行生成的SQL语句,将数据同步到数据同步日志表中,保持个日志表中的数据与对应的原表一致,以便进行下一次进行数据同步。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种跨数据库增量同步数据的方法,其特征在于,包括:
根据源数据库与目标数据库建立配置文件,根据所述配置文件在所述源数据库中生成数据同步日志表;
根据所述数据同步日志表判断所述源数据库中变化的数据,生成SQL语句,所述SQL语句包括:DELETE语句、UPDATE语句、INSERT语句;
在所述目标数据库中执行所述SQL语句,将所述源数据库中变化的数据同步到所述目标数据库中。
2.根据权利要求1所述的方法,其特征在于,所述配置文件,具体包括:
所述配置文件中记录所述源数据库和所述目标数据库的参数信息;
其中,所述源数据库和所述目标数据库的参数信息包括:
所述源数据库和所述目标数据库的数据库类型、数据库服务名、数据库名称、登录用户和口令、表名、主键、字段名、字段类型及长度。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述源数据库中生成所述数据同步日志表之前,读取所述配置文件中的所述源数据库的数据库类型、数据库服务名、数据库名称、登录用户和口令,登录所述源数据库。
4.根据权利要求1所述的方法,其特征在于,在源数据库中生成数据同步日志表,具体包括:
读取所述配置文件中所述源数据库的表名、主键、字段名、字段类型及长度信息,根据此信息在源数据库中建立数据同步日志表;
所述源数据库中的每个表建立一个对应的数据同步日志表,用于记录并更新同步数据。
5.根据权利要求1所述的方法,其特征在于,生成DELETE语句,具体包括:
根据所述源数据库中各个表的主键判断需要删除的数据,生成DELETE语句。
6.根据权利要求1所述的方法,其特征在于,生成UPDATE语句,具体包括:
根据所述源数据库中各个表的主键及其他字段判断需要更新的数据,生成UPDATE语句。
7.根据权利要求1所述的方法,其特征在于,生成INSERT语句,具体包括:
根据各表的主键及其他字段判断需要新增的数据,生成INSERT语句。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
生成所述SQL语句的顺序按照DELETE语句、UPDATE语句、INSERT语句的顺序依次生成。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在执行所述SQL语句之前,读取配置文件中的所述目标数据库的数据库类型、数据库服务名、数据库名称、登录用户和口令,登录所述目标数据库。
10.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述源数据库中执行生成的所述SQL语句,更新所述数据同步日志表,保持所述数据同步日志表中的数据与在所述源数据库中对应的表一致。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010968271.1A CN112231396A (zh) | 2020-09-15 | 2020-09-15 | 一种跨数据库增量同步数据的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010968271.1A CN112231396A (zh) | 2020-09-15 | 2020-09-15 | 一种跨数据库增量同步数据的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112231396A true CN112231396A (zh) | 2021-01-15 |
Family
ID=74116285
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010968271.1A Pending CN112231396A (zh) | 2020-09-15 | 2020-09-15 | 一种跨数据库增量同步数据的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112231396A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113626423A (zh) * | 2021-06-29 | 2021-11-09 | 欧电云信息科技(江苏)有限公司 | 业务数据库的日志管理方法、装置、系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102346775A (zh) * | 2011-09-26 | 2012-02-08 | 苏州博远容天信息科技有限公司 | 一种基于日志的异构多源数据库同步方法 |
WO2019154394A1 (zh) * | 2018-02-12 | 2019-08-15 | 中兴通讯股份有限公司 | 分布式数据库集群系统、数据同步方法及存储介质 |
CN110543513A (zh) * | 2018-05-29 | 2019-12-06 | 中兴通讯股份有限公司 | 分布式数据库增量数据同步方法、设备及存储介质 |
CN111597257A (zh) * | 2020-05-09 | 2020-08-28 | 远光软件股份有限公司 | 数据库的同步方法、装置、存储介质及终端 |
-
2020
- 2020-09-15 CN CN202010968271.1A patent/CN112231396A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102346775A (zh) * | 2011-09-26 | 2012-02-08 | 苏州博远容天信息科技有限公司 | 一种基于日志的异构多源数据库同步方法 |
WO2019154394A1 (zh) * | 2018-02-12 | 2019-08-15 | 中兴通讯股份有限公司 | 分布式数据库集群系统、数据同步方法及存储介质 |
CN110543513A (zh) * | 2018-05-29 | 2019-12-06 | 中兴通讯股份有限公司 | 分布式数据库增量数据同步方法、设备及存储介质 |
CN111597257A (zh) * | 2020-05-09 | 2020-08-28 | 远光软件股份有限公司 | 数据库的同步方法、装置、存储介质及终端 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113626423A (zh) * | 2021-06-29 | 2021-11-09 | 欧电云信息科技(江苏)有限公司 | 业务数据库的日志管理方法、装置、系统 |
CN113626423B (zh) * | 2021-06-29 | 2024-01-30 | 欧电云信息科技(江苏)有限公司 | 业务数据库的日志管理方法、装置、系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10671671B2 (en) | Supporting tuples in log-based representations of graph databases | |
US20180144061A1 (en) | Edge store designs for graph databases | |
JPH0444982B2 (zh) | ||
CN108572996A (zh) | 数据库表结构的同步方法、装置、电子设备和存储介质 | |
CA2379930A1 (en) | Multi-model access to data | |
CN108319661A (zh) | 一种备件信息的结构化存储方法及装置 | |
CN113051347B (zh) | 异构数据库之间数据同步方法、系统、设备及存储介质 | |
US20180357330A1 (en) | Compound indexes for graph databases | |
Wang et al. | The construction of a digital resource library of English for higher education based on a cloud platform | |
CN113918663A (zh) | 一种基于命名规则和缓存机制的知识图谱构的操作方法 | |
CN112231396A (zh) | 一种跨数据库增量同步数据的方法 | |
Thelwall et al. | SlideShare presentations, citations, users, and trends: A professional site with academic and educational uses | |
CN110720097A (zh) | 图数据库中元组和边的功能性等价 | |
Bradford et al. | Barriers and enablers to auditors accepting generalized audit software | |
US20240054148A1 (en) | Systems and methods for a multi-hierarchy physical storage architecture for managing program and outcome data | |
US20160147738A1 (en) | System and method for multi-lingual translation | |
CN110889069A (zh) | 一种基于web在线学习的资源访问平台 | |
CN116340290A (zh) | 数据迁移方法、装置、电子设备及存储介质 | |
CN109840269A (zh) | 基于四层数据架构的数据关系可视化管理方法 | |
CN112632489A (zh) | 一种基于wiki技术的警用锁具知识共享方法及系统 | |
Zhen | An English mobile learning platform embedded in GSM-R wireless network communication | |
CN110837365A (zh) | 一种基于词根表的脚本辅助设计方法及装置 | |
Lin | Design and Implementation of WEB-based Computer Experiment Management System. | |
CN107943926A (zh) | 一种数据表的属性增加方法、装置及介质 | |
JP2002288156A (ja) | 論文作成支援方法 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210115 |
|
RJ01 | Rejection of invention patent application after publication |