CN112905706A - 数据库同步方法、装置、存储介质和计算机设备 - Google Patents
数据库同步方法、装置、存储介质和计算机设备 Download PDFInfo
- Publication number
- CN112905706A CN112905706A CN202110296610.0A CN202110296610A CN112905706A CN 112905706 A CN112905706 A CN 112905706A CN 202110296610 A CN202110296610 A CN 202110296610A CN 112905706 A CN112905706 A CN 112905706A
- Authority
- CN
- China
- Prior art keywords
- database
- target
- standard
- data
- table structure
- 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 57
- 230000008859 change Effects 0.000 claims abstract description 153
- 230000001360 synchronised effect Effects 0.000 claims abstract description 74
- 238000004590 computer program Methods 0.000 claims description 12
- 238000012216 screening Methods 0.000 claims description 11
- 238000006243 chemical reaction Methods 0.000 claims description 7
- 238000012545 processing Methods 0.000 claims description 7
- 230000008569 process Effects 0.000 description 14
- 238000013515 script Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000007876 drug discovery Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000011144 upstream manufacturing 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/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
技术领域
本申请涉及到数据同步技术领域,特别是涉及到一种数据库同步方法、装置、存储介质和计算机设备。
背景技术
随着公司业务的逐渐增加,通过建立业务数据库将公司各项业务的数据进行收集和维护,当公司总部获取各个分公司的业务数据信息或者采集方对各个公司的业务做大数据采集时,需要将公司总部或者采集方的数据库与各个公司的业务数据库保持同步。
现有的数据库同步一般是通过人工执行脚本去完成,当遇到多个数据库要同步时,脚本维护量特别大,扩展性不好,且处理能力有限,导致数据库同步的效率较低、出错率高。
发明内容
本申请的主要目的为提供一种数据库同步方法、装置、存储介质和计算机设备,旨在解决当前数据库同步方式效率低、出错率高的技术问题。
为了实现上述发明目的,本申请提出一种数据库同步方法,包括如下步骤:
确定标准数据库,提取所述标准数据库的标准表结构;
建立所述标准数据库与目标数据库的连接,将所述标准表结构与所述目标数据库的目标表结构进行比对,确定所述标准数据库中比对不一致的标准表结构,将所述比对不一致的标准表结构作为变更表结构;
将所述变更表结构发送给用户,获取用户选择的变更表结构,将所述用户选择的变更表结构作为目标变更表结构;
根据所述目标变更表结构提取出所述标准数据库的变更数据,将所述标准数据库的变更数据同步至所述目标数据库中。
优选地,所述将所述标准表结构与所述目标数据库的目标表结构进行比对的步骤,包括:
分别提取所述标准数据库的标准表结构中的元数据以及所述目标数据库的目标表结构中的元数据;
将所述标准数据库中的元数据与所述目标数据库中的元数据进行比对。
优选地,所述将所述标准数据库中的元数据与所述目标数据库中的元数据进行比对的步骤,包括:
将所述标准数据库中的元数据对应的逻辑结构与所述目标数据库中的元数据对应的逻辑结构进行比对;
根据比对结果筛选出逻辑结构不一致的标准表结构。
优选地,所述将所述目标变更表结构的数据同步至所述目标数据库中的步骤,包括:
当监测到同步至所述目标数据库的数量大于预设值时,多线程处理多个待同步的目标数据库;其中,每一线程处理的目标数据库的数量不超过预设阈值。
优选地,所述将所述标准数据库的变更数据同步至所述目标数据库中的步骤,包括:
获取所述变更数据的数据类型,将所述变更数据的数据类型转换为所述目标数据库的数据格式;
将转换数据格式后的所述变更数据同步至所述目标数据库中。
进一步地,所述将所述标准数据库的变更数据同步至所述目标数据库中的步骤之后,还包括:
将同步至所述目标数据库的目标变更表结构的表结构信息保存于缓存中间件;
当监测到所述标准数据库的变更数据再次变更时,根据所述缓存中间件的表结构信息,将再次变更的变更数据同步至所述目标数据库中。
优选地,所述当监测到所述标准数据库的变更数据再次变更时,根据所述缓存中间件的表结构信息,将再次变更的变更数据同步至所述目标数据库中的步骤,包括:
以预设时间间隔查询所述目标变更表结构是否新增数据变化信息;
当查询到所述目标变更表结构新增了数据变化信息时,确定所述标准数据库的变更数据发生再次变更;
根据所述缓存中间件的表结构信息,将查询到的所述目标变更表结构的数据变化信息批量写入所述目标数据库中。
可选地,当监测到同步至所述目标数据库中的变更数据具有多个时,所述将所述标准数据库的变更数据同步至所述目标数据库中的步骤,包括:
获取各个变更数据的数据量;
将各个变更数据的数据量与预设阈值进行比较;
根据比较结果,从所有变更数据中筛选出数据量大于或等于所述预设阈值的变更数据,得到第一变更数据,并将所述第一变更数据转换为JSON格式的数据,根据格式转换后的所述第一变更数据构建索引文件,利用所述索引文件将格式转换后的所述第一变更数据同步至所述目标数据库中,并在同步成功后,将所述第一变更数据的JSON格式转换为符合所述目标数据库的数据格式;
根据比较结果,从所有变更数据中筛选出数据量小于所述预设阈值的变更数据,得到第二变更数据,根据同步SQL语句,将所述第二变更数据插入到所述目标数据库中进行同步。
本申请还提供一种数据库同步装置,包括:
确定模块,用于确定标准数据库,提取所述标准数据库的标准表结构;
建立模块,用于建立所述标准数据库与至少一个目标数据库的连接,将所述标准表结构与任一所述目标数据库的目标表结构进行比对,确定所述标准数据库中比对不一致的标准表结构,得到多个变更表结构;
发送模块,用于将所述多个变更表结构发送给用户,获取用户选择的至少一个变更表结构,得到目标变更表结构;
同步模块,用于提取所述目标变更表结构的数据,将所述目标变更表结构的数据同步至所述目标数据库中。
本申请还提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。
本申请的数据库同步方法、装置、存储介质和计算机设备,通过确定标准数据库,提取标准数据库的标准表结构;建立标准数据库与目标数据库的连接,将标准表结构与目标数据库的目标表结构进行比对,确定所述标准数据库中比对不一致的标准表结构,并将比对不一致的标准表结构作为变更表结构,以后续确定需要同步的数据;并将变更表结构发送给用户,获取用户选择的变更表结构,得到目标变更表结构,实现根据用户的选择确定所需同步的数据;根据目标变更表结构提取出标准数据库的变更数据,将标准数据库的变更数据同步至目标数据库中,从而通过将标准数据库与目标数据库进行比对,可以实现数据库的自动比对,大大减少了繁琐的比对工作,提高数据库同步效率,并降低人为比对的出错率;此外,本申请可根据用户选择的目标变更表结构进行同步,实现灵活设置。
附图说明
图1为本申请一实施例的数据库同步方法的流程示意图;
图2为本申请一实施例的数据库同步装置的结构示意框图;
图3为本申请一实施例的计算机设备的结构示意框图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
参照图1,本申请实施例中提供的一种数据库同步方法,该数据库同步方法包括步骤:
S1、确定标准数据库,提取所述标准数据库的标准表结构;
S2、建立所述标准数据库与目标数据库的连接,将所述标准表结构与所述目标数据库的目标表结构进行比对,确定所述标准数据库中比对不一致的标准表结构,将所述比对不一致的标准表结构作为多个变更表结构;
S3、将所述变更表结构发送给用户,获取用户选择的变更表结构,将所述用户选择的变更表结构作为目标变更表结构;
S4、根据所述目标变更表结构提取出所述标准数据库的变更数据,将所述标准数据库的变更数据同步至所述目标数据库中。
如上述步骤S1所述,所述标准数据库作为基准数据库,其他数据库参考该标准数据库进行数据同步,标准表结构为定义标准数据库中数据表文件名、字段、各字段的字段名、字段类型及宽度的属性信息。由于更新换代,不同的数据库表结构不同,为了同步最新的数据库表结构,可将最新的数据库作为标准数据库,从而使未同步的数据库同步成最新的数据库结构。
如上述步骤S2所述,所述目标数据库为需要被同步的数据库,标准数据库用于将至少一个目标数据库同步成与标准数据库一样的数据结构。比对前,可预先建立标准数据库与至少一个目标数据库的有线连接或无线连接,并在比对过程中,将标准数据库的标准表结构与目标数据库的目标表结构进行逐一比对,根据比对结果得到目标数据库中比对不一致的标准表结构,得到至少一个变更表结构。
如上述步骤S3所述,本申请将比对不一致的至少一个变更表结构发送给用户,如发送多个变更表结构给用户,以供用户选择需要进行同步的变更表结构,当用户从多个变更表结构中选取其中至少一个时,则将用户选择的变更表结构作为目标变更表结构,从而得到目标变更表结构,所述目标变更表结构中数据则为用户所需同步至目标数据库的数据。其中,数据库比对规则可以自定义,比如目标数据库的表约束不能比标准数据库的表约束强,目标数据库的表可支持的最大字段长度比标准数据库的表的表字段类型小则进行预警。
具体的,标准数据库可通过jdbc方式访问目标数据库,直接获取目标数据库的元数据,根据配置的信息选择和删选需要获取的信息,如目标数据库信息表、信息表字段信息、主键信息、索引信息等,或者配置各类sql脚本灵活获取各个目标数据库的信息,达到对比不同数据库表结构的目的。例如,可通过获得标准数据库及其同步数据的信息,进行表结构和规则的比对,并支持表结构、表长度、字段类型、字段长度、主键、索引、可为空等的对比,还可动态配置。
如上述步骤S4所述,本申请根据目标变更表结构即可确定标准数据库哪些数据发生了变更,因此可利用目标变更表结构从所述标准数据库中快速找到标准数据库发生变更的数据,并提取出所述标准数据库发生变更的数据,得到变更数据,并将变更数据同步至目标数据库中,完成目标数据库中数据的更新。例如,如果表A在标准数据库存在,而目标数据库不存在时,则提示是否需要同步,确定同步时,可在目标数据库自动创建同样的表A,自动生成ddl语句,并根据不同的数据库类型进行调整,实现动态选择需要同步的字段。
其中,数据同步时,用户还可设置筛选条件以及在需要进行同步时及时告知用户,例如,当监测到到达预设时间时,且标准数据库中存在需要同步的数据时,则自动进行同步。此外,还可对目标变更表结构的数据在显示终端进行显示,以便用户进行筛选,如显示各数据库的类型、存在的同步数据、数据库调用频率以及同步进程。其中,所述数据库包括Oracle数据库、SQL数据库、MySQL数据库等数据库类型。
在一实施例中,当需要对目标数据库同步时,可以通过选择时间段来进行同步,即选择同步时间节点,根据所述同步时间节点,对所述至少一个待同步的目标数据库进行同步。可以理解的是,待同步的目标数据库可不只限制一个,因此用户可以分别选择相应的同步时间节点进行同步,即所述同步时间节点不止一个,用户可以选择至少一个待同步的目标数据库匹配对应的同步时间节点,从而实现根据不同的时间节点对不同的待同步的目标数据库进行同步。
本申请的数据库同步方法,通过确定标准数据库,提取标准数据库的标准表结构;建立标准数据库与目标数据库的连接,将标准表结构与目标数据库的目标表结构进行比对,确定所述标准数据库中比对不一致的标准表结构,并将比对不一致的标准表结构作为变更表结构,以后续确定需要同步的数据;并将变更表结构发送给用户,获取用户选择的变更表结构,得到目标变更表结构,实现根据用户的选择确定所需同步的数据;根据目标变更表结构提取出标准数据库的变更数据,将标准数据库的变更数据同步至目标数据库中,从而通过将标准数据库与目标数据库进行比对,可以实现数据库的自动比对,大大减少了繁琐的比对工作,提高数据库同步效率,并降低人为比对的出错率;此外,本申请可根据用户选择的目标变更表结构进行同步,实现灵活设置。
为了便于理解,本申请提供了如下数据同步的具体实施例:
在一实施例中,在步骤S4中,所述将所述标准数据库的变更数据同步至所述目标数据库中的步骤,可具体包括:
S41、当监测到同步至所述目标数据库的数量大于预设值时,多线程处理多个待同步的目标数据库;其中,每一线程处理的目标数据库的数量不超过预设阈值。
本申请可支持自定义的任务调度,自定义定时数据库表比对、同步、扫描等任务,输出结果,还可设定邮件通知,支持多线程处理任务。以多线程处理任务为例,每一线程对应预设值的目标数据库,通过一个线程处理预设值的目标数据库,当监测到同步至目标数据库的数量大于预设值时,则采用多线程处理多个待同步的目标数据库,能够最大限度地充分利用计算机资源,从而提高处理速度。
在另一实施例中,在步骤S4中,所述将所述标准数据库的变更数据同步至所述目标数据库中的步骤,可具体包括:
获取所述变更数据的数据类型,将所述变更数据的数据类型转换为所述目标数据库的数据格式;
将转换数据格式后的所述变更数据同步至所述目标数据库中。
本实施例在对数据库的数据同步时,可将需要同步的变更数据的数据类型转换为目标数据库的数据格式,以将转换后的目标变更表结构同步至所述目标数据库,使同步至目标数据库的数据可正常显示及调用。
此外,本申请还通过如下实施例对标准表结构与目标表结构的比对过程进一步说明:
在一实施例中,在步骤S2中,所述将所述标准表结构与所述目标数据库的目标表结构进行比对的步骤,可具体包括:
S21、分别提取所述标准数据库的标准表结构中的元数据以及所述目标数据库的目标表结构中的元数据;
S22、将所述标准数据库中的元数据与所述目标数据库中的元数据进行比对。
在本实施例中,每一数据库均有相应的元数据,所述元数据又称中介数据、中继数据,为描述数据的数据,主要是描述数据属性的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能,是标准表结构中对数据库的数据的描述,因此可直接根据标准表结构中的元数据比对出目标数据库的变更数据。其中,所述元数据包括:数据结构、数据部署、数据流等信息,所述数据结构包括:数据集的名称、关系、字段、约束等;所述数据部署用于表示数据集的物理位置;所述数据流用于表示数据集之间的流程依赖关系,包括数据集到另一个数据集的规则。
具体的,在各个标准数据库的表结构发生变化时,说明各个标准数据库的变更表结构中的元数据同样发生变化,因此可通过分别提取各个标准数据库的变更表结构中的元数据以及标准数据库的表结构中的元数据,使得在表结构发生变化时能够及时抽取到变化的元数据,并对变化的元数据进行处理,解决了标准数据库与目标数据库中表结构不一致的问题,实现数据库差异的快速比对。
此外,还可通过并行比对所述标准数据库的元数据以及所述至少一个目标数据库的元数据,根据元数据的差异,查询出差异数据,例如:表字段信息、索引信息、约束条件、序列信息等信息,通过WEB界面将差异数据进行展示,例如:在WEB界面以不同颜色标注所述差异数据,或者,通过在WEB界面以其他标识,例如:符号,文字等标识对所述差异数据进行展示,以使用户能够直观地看出所述差异数据。
在另一实施例中,在步骤S21中,所述分别提取所述标准数据库的标准表结构中的元数据以及所述目标数据库的目标表结构中的元数据的步骤,可具体包括:
S211、多线程获取标准数据库的标准表结构对应的元数据,及多线程获取目标数据库的目标表结构对应的元数据。
在本实施例中,当数据库表结构比较多时,自动启用多线程以及缓存技术。例如,自动使用一个线程处理20个表,同时将数据库表的结构信息通过缓存中间件保存,以便下次比对能直接从缓存中间件中取出以实现快速比对。
在一实施例中,在步骤S22中,所述将所述标准数据库中的元数据与所述目标数据库中的元数据进行比对的步骤,可具体包括:
S221、将所述标准数据库中的元数据对应的逻辑结构与所述目标数据库中的元数据对应的逻辑结构进行比对;
S222、根据比对结果筛选出逻辑结构不一致的标准表结构。
本申请比对时,还可进一步提取逻辑结构进行比对,提高比对的准确性。具体的,可以首先将标准数据库的变更表结构中的元数据对应的逻辑结构与目标数据库的表结构中的元数据对应的逻辑结构进行比对,筛选出逻辑结构不一致的各个目标数据库的变更表结构。当然,还可进一步将标准数据库的变更表结构中的元数据对应的存储结构与目标数据库的表结构中的元数据对应的存储结构进行比对,筛选出存储结构不一致的各个目标数据库的变更表结构;进一步汇总逻辑结构不一致的各个目标数据库的变更表结构与存储结构不一致的各个目标数据库的变更表结构,得到比对不一致的各个目标数据库的变更表结构,提高比对的精度。
进一步地,在步骤S4中,所述将所述标准数据库的变更数据同步至所述目标数据库中的步骤之后,还可包括:
S5、将同步至所述目标数据库的目标变更表结构的表结构信息保存于缓存中间件;
S6、当监测到所述标准数据库的变更数据再次变更时,根据所述缓存中间件的表结构信息,将再次变更的变更数据同步至所述目标数据库中。
其中,所述表结构信息包括表、列、索引的信息。例如,表结构信息可具体为以下信息:数据库中有多少张表,表中有多少列,每个列的属性如列名、类型、是否为空、默认值、额外参数,每个索引的属性如列字段、索引类型。
在目标数据库的变更数据同步后,一旦标准数据库的变更数据发生改动,都会导致标准数据库的表结构发生变化,变化的数据需要人为手动去调整,如果存在大量变化表结构,极易出现数据丢失。因此直接从缓存中间件中取出表结构信息以实现快速比对,将再次变更的变更数据同步至所述目标数据库中,解决了由运维人员手动进行改动造成的出错率高、耗时长的问题。
在另一实施例中,还可定时监控单位时间内目标数据库的表结构中的变更内容,定时检查目标数据库中的表结构的数据是否发生变更,例如,可以设置间隔1小时、2小时或者1天等,这里对间隔时间不进行限定。
具体的,在步骤S6中,所述当监测到所述标准数据库的变更数据再次变更时,根据所述缓存中间件的表结构信息,将再次变更的变更数据同步至所述目标数据库中的步骤,可具体包括:
S61、以预设时间间隔查询所述目标变更表结构是否新增数据变化信息;
S62、当查询到所述目标变更表结构新增了数据变化信息时,确定所述标准数据库的变更数据发生再次变更;
S63、根据所述缓存中间件的表结构信息,将查询到的所述目标变更表结构的数据变化信息批量写入所述目标数据库中。
本实施例还可对标准数据库的目标变更表结构进行实时监控,当监测到标准数据库的目标变更表结构新增了数据变化信息时,则目标数据库的变更数据发生了再次变更,此时可通过缓存中间件直接将再次发生变更的目标变更表结构的数据变化信息自动同步至对应目标数据库中,无需再次将标准数据库与目标数据库进行一一比对,后续通过和上游数据库比对完成自动同步表的创建和数据导入,减少手工创建同步表的人力,增大容错率。
通常地,数据库往往包含多个数据表,记录不同的信息。目标数据库没有修改数据的权限的情况下,目标数据库的每个数据表信息与标准数据库的每个数据表信息一一对应,当标准数据库的数据表中的数据信息发生变化时,变化的数据需要尽快同步到目标数据库中对应的数据表,即实现标准数据库与目标数据库之间的单向同步。因此,当监听到所述标准数据库中的某个数据表或多个数据表的数据由于增加数据信息或者更改、删除数据信息等操作发生数据变化时,获取发生变化的数据记录,并一次性将间隔时间内的所有数据变化信息写入与所述目标数据库中,实现批量操作,提高同步效率。其中,数据记录包括数据库中发生变化的数据所在的数据表的表名、数据记录的各字段的名称以及各字段对应的具体内容。
可选地,当监测到同步至所述目标数据库中的变更数据具有多个时,所述将所述标准数据库的变更数据同步至所述目标数据库中的步骤,可具体包括:
获取各个变更数据的数据量;
将各个变更数据的数据量与预设阈值进行比较;
根据比较结果,从所有变更数据中筛选出数据量大于或等于所述预设阈值的变更数据,得到第一变更数据,并将所述第一变更数据转换为JSON格式的数据,根据格式转换后的所述第一变更数据构建索引文件,利用所述索引文件将格式转换后的所述第一变更数据同步至所述目标数据库中,并在同步成功后,将所述第一变更数据的JSON格式转换为符合所述目标数据库的数据格式;
根据比较结果,从所有变更数据中筛选出数据量小于所述预设阈值的变更数据,得到第二变更数据,根据同步SQL语句,将所述第二变更数据插入到所述目标数据库中进行同步。
在本实施例中,所述数据量为数据的信息量,可以bit、Byte、KB、GB、TB等单位进行衡量。所述JSON格式是一种轻量级的数据交换格式,是一种完全独立于编程语言的文本格式,由于JSON格式的数据具有简洁和清晰的层次结构,使得以JSON格式进行存储和表示成为数据存储的理想的选择之一。本实施例对数据量大于或等于预设阈值的变更数据,即第一变更数据,在将第一变更数据同步之前,先将第一变更数据的数据格式转换为JSON格式的数据,再将格式转换后的第一变更数据同步至目标数据库中,以加快同步效率,并在同步完成后才将JSON格式的第一变更数据转换为符合目标数据库的数据格式,以免占用标准数据库与目标数据库在进行同步时的计算机资源,并确保第一变更数据在目标数据库的正常存储及使用。此外,本实施例在同步第一变更数据时,还可通过索引文件记录第一变更数据的同步情况,如同步进程、同步开始时间、同步预计时长,并在进行数据同步过程中,通过读取索引文件的方式进行数据更新,实现了数据快速、高效地读写,达到了提高数据同步效率的技术效果。
本实施例对数据量较小的变更数据,即第二变更数据,则可采用直接同步的方式,根据同步SQL语句,将第二变更数据插入到目标数据库中,以完成同步,从而根据变更数据的数据量大小灵活选择同步方式,以提高同步效率。
其中,SQL是用于执行查询的语法,也可以用于更新、插入和删除记录的语法。SQL主要包括DML和DDL。DML(Data Manipulation Language,数据操纵语言),负责对数据库对象运行数据访问工作的指令集,以INSERT、UPDATE、DELETE三种指令为核心,分别代表插入、更新与删除。DDL(Data Definition Language,模式数据定义语言)的主要命令有CREATE(创建)、ALTER(修改)、DROP(删除)等,DDL主要是用在定义或改变表结构、数据类型、表之间的链接和约束等工作上,大多在建表时使用。
参照图2,本申请实施例中还提供一种数据库同步装置,包括:
确定模块1,用于确定标准数据库,提取所述标准数据库的标准表结构;
建立模块2,用于建立所述标准数据库与目标数据库的连接,将所述标准表结构与所述目标数据库的目标表结构进行比对,确定所述标准数据库中比对不一致的标准表结构,将所述比对不一致的标准表结构作为变更表结构;
发送模块3,用于将所述变更表结构发送给用户,获取用户选择的变更表结构,将所述用户选择的变更表结构作为目标变更表结构;
同步模块4,用于根据所述目标变更表结构提取出所述标准数据库的变更数据,将所述标准数据库的变更数据同步至所述目标数据库中。
其中,所述标准数据库作为基准数据库,其他数据库参考该标准数据库进行数据同步,标准表结构为定义标准数据库中数据表文件名、字段、各字段的字段名、字段类型及宽度的属性信息。由于更新换代,不同的数据库表结构不同,为了同步最新的数据库表结构,可将最新的数据库作为标准数据库,从而使未同步的数据库同步成最新的数据库结构。
所述目标数据库为需要被同步的数据库,标准数据库用于将至少一个目标数据库同步成与标准数据库一样的数据结构。比对前,可预先建立标准数据库与至少一个目标数据库的有线连接或无线连接,并在比对过程中,将标准数据库的标准表结构与目标数据库的目标表结构进行逐一比对,得到比对不一致的标准表结构,得到至少一个变更表结构。
本申请将比对不一致的至少一个变更表结构发送给用户,如发送多个变更表结构给用户,以供用户选择需要进行同步的变更表结构,当用户从多个变更表结构中选取其中至少一个时,则将用户选择的变更表结构作为目标变更表结构,从而得到目标变更表结构,所述目标变更表结构中数据则为用户所需同步至目标数据库的数据。其中,数据库比对规则可以自定义,比如目标数据库的表约束不能比标准数据库的表约束强,目标数据库的表可支持的最大字段长度比标准数据库的表的表字段类型小则进行预警。
具体的,标准数据库可通过jdbc方式访问目标数据库,直接获取目标数据库的元数据,根据配置的信息选择和删选需要获取的信息,如目标数据库信息表、信息表字段信息、主键信息、索引信息等,或者配置各类sql脚本灵活获取各个目标数据库的信息,达到对比不同数据库表结构的目的。例如,可通过获得标准数据库及其同步数据的信息,进行表结构和规则的比对,并支持表结构、表长度、字段类型、字段长度、主键、索引、可为空等的对比,还可动态配置。
本申请根据目标变更表结构即可确定标准数据库哪些数据发生了变更,因此可利用目标变更表结构从所述标准数据库中快速找到标准数据库发生变更的数据,并提取出所述标准数据库发生变更的数据,得到变更数据,并将变更数据同步至目标数据库中,完成目标数据库中数据的更新。例如,如果表A在标准数据库存在,而目标数据库不存在时,则提示是否需要同步,确定同步时,可在目标数据库自动创建同样的表A,自动生成ddl语句,并根据不同的数据库类型进行调整,实现动态选择需要同步的字段。
其中,数据同步时,用户还可设置筛选条件以及在需要进行同步时及时告知用户,例如,当监测到到达预设时间时,且标准数据库中存在需要同步的数据时,则自动进行同步。此外,还可对目标变更表结构的数据在显示终端进行显示,以便用户进行筛选,如显示各数据库的类型、存在的同步数据、数据库调用频率以及同步进程。其中,所述数据库包括Oracle数据库、SQL数据库、MySQL数据库等数据库类型。
在一实施例中,当需要对目标数据库同步时,可以通过选择时间段来进行同步,即选择同步时间节点,根据所述同步时间节点,对所述至少一个待同步的目标数据库进行同步。可以理解的是,待同步的目标数据库可不只限制一个,因此用户可以分别选择相应的同步时间节点进行同步,即所述同步时间节点不止一个,用户可以选择至少一个待同步的目标数据库匹配对应的同步时间节点,从而实现根据不同的时间节点对不同的待同步的目标数据库进行同步。
如上所述,可以理解地,本申请中提出的所述数据库同步装置的各组成部分可以实现如上所述数据库同步方法任一项的功能,具体结构不再赘述。
参照图3,本申请实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于关系抽取模型、药物发现模型等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据库同步方法。
上述处理器执行上述的数据库同步方法,包括:
确定标准数据库,提取所述标准数据库的标准表结构;
建立所述标准数据库与目标数据库的连接,将所述标准表结构与所述目标数据库的目标表结构进行比对,确定所述标准数据库中比对不一致的标准表结构,将所述比对不一致的标准表结构作为变更表结构;
将所述变更表结构发送给用户,获取用户选择的变更表结构,将所述用户选择的变更表结构作为目标变更表结构;
根据所述目标变更表结构提取出所述标准数据库的变更数据,将所述标准数据库的变更数据同步至所述目标数据库中。
本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现一种数据库同步方法,包括步骤:
确定标准数据库,提取所述标准数据库的标准表结构;
建立所述标准数据库与目标数据库的连接,将所述标准表结构与所述目标数据库的目标表结构进行比对,确定所述标准数据库中比对不一致的标准表结构,将所述比对不一致的标准表结构作为变更表结构;
将所述变更表结构发送给用户,获取用户选择的变更表结构,将所述用户选择的变更表结构作为目标变更表结构;
根据所述目标变更表结构提取出所述标准数据库的变更数据,将所述标准数据库的变更数据同步至所述目标数据库中。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
综上所述,本申请的最大有益效果在于:
本申请的数据库同步方法、装置、存储介质和计算机设备,通过确定标准数据库,提取标准数据库的标准表结构;建立标准数据库与目标数据库的连接,将标准表结构与目标数据库的目标表结构进行比对,确定所述标准数据库中比对不一致的标准表结构,并将比对不一致的标准表结构作为变更表结构,以后续确定需要同步的数据;并将变更表结构发送给用户,获取用户选择的变更表结构,得到目标变更表结构,实现根据用户的选择确定所需同步的数据;根据目标变更表结构提取出标准数据库的变更数据,将标准数据库的变更数据同步至目标数据库中,从而通过将标准数据库与目标数据库进行比对,可以实现数据库的自动比对,大大减少了繁琐的比对工作,提高数据库同步效率,并降低人为比对的出错率;此外,本申请可根据用户选择的目标变更表结构进行同步,实现灵活设置。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种数据库同步方法,其特征在于,包括:
确定标准数据库,提取所述标准数据库的标准表结构;
建立所述标准数据库与目标数据库的连接,将所述标准表结构与所述目标数据库的目标表结构进行比对,确定所述标准数据库中比对不一致的标准表结构,将所述比对不一致的标准表结构作为变更表结构;
将所述变更表结构发送给用户,获取用户选择的变更表结构,将所述用户选择的变更表结构作为目标变更表结构;
根据所述目标变更表结构提取出所述标准数据库的变更数据,将所述标准数据库的变更数据同步至所述目标数据库中。
2.根据权利要求1所述的方法,其特征在于,所述将所述标准表结构与所述目标数据库的目标表结构进行比对的步骤,包括:
分别提取所述标准数据库的标准表结构中的元数据以及所述目标数据库的目标表结构中的元数据;
将所述标准数据库中的元数据与所述目标数据库中的元数据进行比对。
3.根据权利要求2所述的方法,其特征在于,所述将所述标准数据库中的元数据与所述目标数据库中的元数据进行比对的步骤,包括:
将所述标准数据库中的元数据对应的逻辑结构与所述目标数据库中的元数据对应的逻辑结构进行比对;
根据比对结果筛选出逻辑结构不一致的标准表结构。
4.根据权利要求1所述的方法,其特征在于,所述将所述标准数据库的变更数据同步至所述目标数据库中的步骤,包括:
当监测到同步至所述目标数据库的数量大于预设值时,多线程处理多个待同步的目标数据库;其中,每一线程处理的目标数据库的数量不超过预设阈值。
5.根据权利要求1所述的方法,其特征在于,所述将所述标准数据库的变更数据同步至所述目标数据库中的步骤之后,还包括:
将同步至所述目标数据库的目标变更表结构的表结构信息保存于缓存中间件;
当监测到所述标准数据库的变更数据再次变更时,根据所述缓存中间件的表结构信息,将再次变更的变更数据同步至所述目标数据库中。
6.根据权利要求5所述的方法,其特征在于,所述当监测到所述标准数据库的变更数据再次变更时,根据所述缓存中间件的表结构信息,将再次变更的变更数据同步至所述目标数据库中的步骤,包括:
以预设时间间隔查询所述目标变更表结构是否新增数据变化信息;
当查询到所述目标变更表结构新增了数据变化信息时,确定所述标准数据库的变更数据发生再次变更;
根据所述缓存中间件的表结构信息,将查询到的所述目标变更表结构的数据变化信息批量写入所述目标数据库中。
7.根据权利要求1所述的方法,其特征在于,当监测到同步至所述目标数据库中的变更数据具有多个时,所述将所述标准数据库的变更数据同步至所述目标数据库中的步骤,包括:
获取各个变更数据的数据量;
将各个变更数据的数据量与预设阈值进行比较;
根据比较结果,从所有变更数据中筛选出数据量大于或等于所述预设阈值的变更数据,得到第一变更数据,并将所述第一变更数据转换为JSON格式的数据,根据格式转换后的所述第一变更数据构建索引文件,利用所述索引文件将格式转换后的所述第一变更数据同步至所述目标数据库中,并在同步成功后,将所述第一变更数据的JSON格式转换为符合所述目标数据库的数据格式;
根据比较结果,从所有变更数据中筛选出数据量小于所述预设阈值的变更数据,得到第二变更数据,根据同步SQL语句,将所述第二变更数据插入到所述目标数据库中进行同步。
8.一种数据库同步装置,其特征在于,包括:
确定模块,用于确定标准数据库,提取所述标准数据库的标准表结构;
建立模块,用于建立所述标准数据库与目标数据库的连接,将所述标准表结构与所述目标数据库的目标表结构进行比对,确定所述标准数据库中比对不一致的标准表结构,将所述比对不一致的标准表结构作为变更表结构;
发送模块,用于将所述变更表结构发送给用户,获取用户选择的变更表结构,将所述用户选择的变更表结构作为目标变更表结构;
同步模块,用于根据所述目标变更表结构提取出所述标准数据库的变更数据,将所述标准数据库的变更数据同步至所述目标数据库中。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述数据库同步方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述数据库同步方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110296610.0A CN112905706A (zh) | 2021-03-19 | 2021-03-19 | 数据库同步方法、装置、存储介质和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110296610.0A CN112905706A (zh) | 2021-03-19 | 2021-03-19 | 数据库同步方法、装置、存储介质和计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112905706A true CN112905706A (zh) | 2021-06-04 |
Family
ID=76105607
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110296610.0A Pending CN112905706A (zh) | 2021-03-19 | 2021-03-19 | 数据库同步方法、装置、存储介质和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112905706A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116701543A (zh) * | 2023-08-03 | 2023-09-05 | 深圳前海环融联易信息科技服务有限公司 | 数据管理方法、装置、计算机设备及存储介质 |
CN117271532A (zh) * | 2023-11-22 | 2023-12-22 | 舟谱数据技术南京有限公司 | 数据库表结构的展示方法、装置、设备及可读存储介质 |
CN117389996A (zh) * | 2023-12-11 | 2024-01-12 | 深圳万物安全科技有限公司 | 数据库优化建议生成方法、终端设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109739929A (zh) * | 2018-12-18 | 2019-05-10 | 中国人民财产保险股份有限公司 | 数据同步方法、装置及系统 |
CN110069566A (zh) * | 2017-12-01 | 2019-07-30 | 北京京穗蓝盾信息安全技术有限公司 | 一种单向导入系统中异构数据库同步方法 |
CN110209730A (zh) * | 2019-04-25 | 2019-09-06 | 深圳壹账通智能科技有限公司 | 变更数据的同步方法、装置、计算机设备及计算机存储介质 |
CN110245134A (zh) * | 2019-04-26 | 2019-09-17 | 石化盈科信息技术有限责任公司 | 一种应用于搜索服务的增量同步方法 |
CN110543476A (zh) * | 2019-07-03 | 2019-12-06 | 威富通科技有限公司 | 一种数据库表结构的同步方法、装置及服务器 |
CN110704442A (zh) * | 2019-09-29 | 2020-01-17 | 深圳无域科技技术有限公司 | 一种大数据的实时获取方法及装置 |
CN111046100A (zh) * | 2019-11-25 | 2020-04-21 | 武汉达梦数据库有限公司 | 一种关系型数据库到非关系型数据库的同步方法和系统 |
-
2021
- 2021-03-19 CN CN202110296610.0A patent/CN112905706A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110069566A (zh) * | 2017-12-01 | 2019-07-30 | 北京京穗蓝盾信息安全技术有限公司 | 一种单向导入系统中异构数据库同步方法 |
CN109739929A (zh) * | 2018-12-18 | 2019-05-10 | 中国人民财产保险股份有限公司 | 数据同步方法、装置及系统 |
CN110209730A (zh) * | 2019-04-25 | 2019-09-06 | 深圳壹账通智能科技有限公司 | 变更数据的同步方法、装置、计算机设备及计算机存储介质 |
CN110245134A (zh) * | 2019-04-26 | 2019-09-17 | 石化盈科信息技术有限责任公司 | 一种应用于搜索服务的增量同步方法 |
CN110543476A (zh) * | 2019-07-03 | 2019-12-06 | 威富通科技有限公司 | 一种数据库表结构的同步方法、装置及服务器 |
CN110704442A (zh) * | 2019-09-29 | 2020-01-17 | 深圳无域科技技术有限公司 | 一种大数据的实时获取方法及装置 |
CN111046100A (zh) * | 2019-11-25 | 2020-04-21 | 武汉达梦数据库有限公司 | 一种关系型数据库到非关系型数据库的同步方法和系统 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116701543A (zh) * | 2023-08-03 | 2023-09-05 | 深圳前海环融联易信息科技服务有限公司 | 数据管理方法、装置、计算机设备及存储介质 |
CN116701543B (zh) * | 2023-08-03 | 2024-01-19 | 深圳前海环融联易信息科技服务有限公司 | 数据管理方法、装置、计算机设备及存储介质 |
CN117271532A (zh) * | 2023-11-22 | 2023-12-22 | 舟谱数据技术南京有限公司 | 数据库表结构的展示方法、装置、设备及可读存储介质 |
CN117389996A (zh) * | 2023-12-11 | 2024-01-12 | 深圳万物安全科技有限公司 | 数据库优化建议生成方法、终端设备及存储介质 |
CN117389996B (zh) * | 2023-12-11 | 2024-03-29 | 深圳万物安全科技有限公司 | 数据库优化建议生成方法、终端设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112905706A (zh) | 数据库同步方法、装置、存储介质和计算机设备 | |
CN109669983B (zh) | 可视化多数据源etl工具 | |
CN109960710A (zh) | 数据库之间的数据同步方法和系统 | |
CN105183860B (zh) | 数据同步方法和系统 | |
CN111385365B (zh) | 上报数据的处理方法、装置、计算机设备和存储介质 | |
US9842134B2 (en) | Data query interface system in an event historian | |
CN111324577B (zh) | 一种Yml文件读写的方法及装置 | |
CN109857756B (zh) | 数据库报表的生成方法、装置、设备及可读存储介质 | |
CN102857949A (zh) | 一种规划数据一致性保证的方法和装置 | |
CN112672370A (zh) | 网元指标数据的自动检测方法及系统、设备和存储介质 | |
CN115794839A (zh) | 基于Php+Mysql体系的数据归集方法、计算机设备及存储介质 | |
CN114840213A (zh) | 一种服务实例配置管理方法和装置 | |
CN111401023B (zh) | 一种报表生成方法、装置、服务器及存储介质 | |
KR20170137756A (ko) | 다수의 중첩하는 소스들로부터 대량의 시간적 데이터의 어그리게이트 | |
CN114647660A (zh) | 数据处理、查询方法、装置、电子设备及存储介质 | |
CN114860693B (zh) | 一种智能终端结构化数据管理方法 | |
CN104717082A (zh) | 业务模型的适配方法及系统 | |
JP5877488B1 (ja) | Rdbシステム | |
CN116150236A (zh) | 数据同步方法及装置、电子设备、计算机可读存储介质 | |
CN113220706A (zh) | 元器件产品查询方法、装置、设备和介质 | |
CN111666286B (zh) | 分库分表检测方法、装置、计算机设备和存储介质 | |
CN110162461B (zh) | 数据同步验证方法、装置和计算机设备 | |
CN113868138A (zh) | 测试数据的获取方法、系统、设备及存储介质 | |
CN113127471A (zh) | 自动化数据质量检验的方法、装置、设备和存储介质 | |
CN113221528A (zh) | 基于openEHR模型的临床数据质量评估规则的自动生成与执行方法 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210604 |