CN114528347A - 一种异构数据库系统间的数据同步方法 - Google Patents

一种异构数据库系统间的数据同步方法 Download PDF

Info

Publication number
CN114528347A
CN114528347A CN202210105121.7A CN202210105121A CN114528347A CN 114528347 A CN114528347 A CN 114528347A CN 202210105121 A CN202210105121 A CN 202210105121A CN 114528347 A CN114528347 A CN 114528347A
Authority
CN
China
Prior art keywords
synchronization
data
synchronous
database
tables
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
Application number
CN202210105121.7A
Other languages
English (en)
Inventor
陈宏亮
程唯超
林明
陈文静
贾瑞芝
张丹
欧阳小兵
纪宇轩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Boc Financial Technology Co ltd
Original Assignee
Boc Financial Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Boc Financial Technology Co ltd filed Critical Boc Financial Technology Co ltd
Priority to CN202210105121.7A priority Critical patent/CN114528347A/zh
Publication of CN114528347A publication Critical patent/CN114528347A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases

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

一种异构数据库系统间的数据同步方法
技术领域
本发明涉及数据库数据同步技术,尤其是涉及一种异构数据库系统间的数据同步方法。
背景技术
数据同步指实现两个数据源之间的数据保持一致或者按需部分保持一致的技术。数据同步可应用于数据异地灾备、本地数据灾备、跨系统数据同步、跨模块数据同步、数据仓库前后台数据一致性等多种业务场景。
目前同一个数据库之间的数据同步相对简单,如Oracle数据库之间的数据同步,可以采用DBLINK、imp/emp技术、expdp/impdp数据泵技术和Sqluldr2技术;Gbase数据库之间通常采用DBLINK技术。
随着应用系统前后端数据库分离的普遍化以及前后端数据库系统的差异化,前端关系型数据库与后台分布式数据库之间的数据同步需求会越来越多,因此出现了异构数据库系统的概念。异构数据库系统是指相关的多个数据库系统的集合,可以实现数据的共享和透明访问,几个数据库系统在加入异构数据库系统之前本身就已经存在,拥有自己的数据库管理系统、异构数据库的各个组成部分具有自身的自治性,实现数据共享的同时,每个数据库系统仍有自己的应用特性、完整性控制和安全性控制。但目前不同数据库系统间的数据同步,一般有如下几种方式:
一、文件导出导入方式。需要人工在源系统将源数据导出,再将导出生成的文件人工传到目标系统,再用目标系统的导入命令导入,这种方式存在以下问题:
1、整个操作过程需要人工干预。需要明确源数据库系统和目标数据库的差异、数据表范围以及导出导入的语句差异,再执行导出,生成文件,执行导入,整个过程复杂低效,人工操作步骤太多。
2、不能满足多业务场景下的数据同步需求。如:关系型数据库Oralce的A1表需要按日增量同步到分布式数据库Gbase的B1表,而关系型数据库Oralce的A2表需要按日全量同步到分布式数据库Gbase的B2表。同时,分布式数据库Gbase的B1表需要按日增量同步到关系数据库Oralce的A1表,分布式数据库Gbase的B2表需要按日增量同步到分布式数据库的A2表。对于这种单向、双向、增量、全量、高频、数据库差异大的数据同步需求,传统的数据同步技术无法解决。
3、数据同步结束后,操作人员需要通过后台日志去查看每个同步命令的同步日志才能确认最终结果状态。
二、通过在两个数据之间建立DBLINK实现小数据量的数据同步。
三、运用Kettle工具,利用其图形界面化工具和脚本实现第二次开发。
综合以上,这三种方式存在以下问题:
1、导出导入过程涉及到不同的数据库,整个过程需要人工干预的地方太多,导出导入出错率高。
2、不能满足对同步数据表数据量大小、同步频率、同步方式、增全量同步机制的灵活化配置需求。
3、不能方便灵活的实现异构数据库之间的双向同步,如Gbase数据库的DBLINK仅可以实现从Oracle向Gbase数据库的同步,而不能实现Gbase数据库向Oracle数据库的同步需求。
4、DBLINK和Kettle仅可以实现小数据量的同步,当数据量达到10万级别以上,同步效率会明显下降。
5、对于频繁的数据同步,没有形成一套规划化和标准化的同步框架。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种异构数据库系统间的数据同步方法。
本发明的目的可以通过以下技术方案来实现:
一种异构数据库系统间的数据同步方法,该方法包括:
规划同步需求;
基于同步需求配置同步参数表;
定义同步数据表之间以及同步数据表与其他模块之间的依赖关系、同步频率;
调用同步操作程序,基于同步参数表的配置进行数据同步操作。
优选地,所述的同步需求包括:
同步的数据库的类型;
同步数据量级、频率、数据范围;
同步方向,包括单向同步或双向同步。
优选地,所述的同步参数表采用自定义配置形式。
优选地,所述的同步参数表包括同步表名、区域、数据同步方式、导出SQL语句、目标表名、处理程序。
优选地,当为双向同步时,所述的同步参数表设置两张,分别对应为两个方向数据同步的配置。
优选地,对于任意一个方向的数据同步,以数据库中的表为单位进行同步,针对一个待同步的数据表配置一张同步参数表。
优选地,所述的数据同步方式包括文件同步方式、DBLINK同步方式。
优选地,所述的同步操作程序包括同步主程序和同步子程序,所述的同步主程序读取同步参数表判断同步方式,并根据不同的同步方式调用相应的同步子程序进行同步操作。
优选地,采用调度工具定义同步数据表之间以及同步数据表与其他模块之间的依赖关系、同步频率。
优选地,当同步操作成功后,更新数据库中数据表的同步状态。
与现有技术相比,本发明具有如下优点:
(1)传统的数据数据同步都需要人工干预。需要从确定数据范围,编写执行语句,执行导出,生成导出文件,执行导入,整套流程都需要一步步执行,耗时费力,事倍功半,而本发明只需要在提前配置好参数表,后续操作全部程序自动化无需人工干预。
(2)对于大量数据表的同步过程容易出错,一旦导出的文件有问题,对于一次性导数百张甚至数千张表,那么所有的表都将无法成功导出导入,需要整体重新执行导出导入;而本发明通过程序来实现导出导入,导出的文件最细粒度到表级别,每个表生成一个文件,加载到目标表,并更新同步状态,表与表之间的同步互不影响。个别表有问题也不会影响到其它表的数据同步。如发现错误,系统也会记录详细的错误日志,可以快速定位问题和解决问题。
(3)传统的数据同步无法满足多种业务场景下的数据同步需求。传统的数据同步由于数据库的差异,表的差异,数据范围的差异,同步频率的差异,时效性差异,编写的程序语句会千差万别,很难形成一套完成的同步流程。本发明设计了一套同步机制,通过设计两张同步参数表实现表级别的数据同步,且可以在参数表中灵活编写SQL和存储过程,可以实现不同区域,不同时间范围内的多元化数据同步需求。
(4)传统的数据同步机制效率低下。传统的数据库同步方式因没有形成一套标准化的同步机制,人工干预太多,且容易出错中断,往往会导致事倍功半。而本发明导出百万级别以上的数据时采用sqluldr工具可以实现快速导出,导入时采用各个数据库系统标准的加载工具可以实现高效地导入,并通过配置化的存储过程实现接收表与目标表之间的数据同步。
附图说明
图1为本发明一种异构数据库系统间的数据同步方法的整体流程框图;
图2为本发明一种异构数据库系统间的数据同步方法的一种具体实施方式的流程图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。注意,以下的实施方式的说明只是实质上的例示,本发明并不意在对其适用物或其用途进行限定,且本发明并不限定于以下的实施方式。
实施例
如图1所示,本发明提供一种异构数据库系统间的数据同步方法,该方法包括:
规划同步需求;
基于同步需求配置同步参数表;
采用调度工具定义同步数据表之间以及同步数据表与其他模块之间的依赖关系、同步频率;
调用同步操作程序,基于同步参数表的配置进行数据同步操作。
其中,规划同步需求阶段主要包括:了解业务场景、数据量级、频率、全字段还是部分字段、数据范围、单向及双向同步等需求。
同步参数表采用自定义配置形,同步参数表包括同步表名、区域、数据同步方式、导出SQL语句、目标表名、处理程序。数据同步方式包括文件同步方式、DBLINK同步方式。对于任意一个方向的数据同步,以数据库中的表为单位进行同步,针对一个待同步的数据表配置一张同步参数表。当为双向同步时,同步参数表设置两张,分别对应为两个方向数据同步的配置。
同步操作程序包括同步主程序和同步子程序,同步主程序读取同步参数表判断同步方式,并根据不同的同步方式调用相应的同步子程序进行同步操作。
同步数据表之间以及同步数据表与其他模块之间的依赖关系、同步频率。
当同步操作成功后,更新数据库中数据表的同步状态。
本实施例以Oracle与Gbase异构数据库为例说明本发明方法的执行过程。
总的来说:
本发明通过使用灵活配置数据表的方式实现不同应用场景下异构数据库的数据同步,可依据数据量大小灵活选择使用文本文件或者DBLINK两种方式实现数据的单向、双向同步。
首先在数据库表中创建两张同步参数表,分别负责从Gbase向Oracle数据库同步和从Oracle向Gbase同步。需要配置同步表、数据区域、同步方式、导出SQL、目标数据库、目标表、同步状态、启用标识等基本信息。
同步参数表配置完成后,由同步主程序完全自动处理,包括同步表、目标表、字段映射关系、数据导出导入等。对于同步方式,数量大的表可以选择文本形式导出导入,数据量小的表可以采用DBLINK形式。程序自动记录导入导出日志,同步的状态,整个过程无需人工干预,成功同步后会自动将同步状态更新为SUC,若失败可以查看详细日志,根据实际情况来决定重提或者跳过。
如图2所示为本发明方法的的具体实施流程图:
1、规划同步需求
本发明主要是实现表级别的数据同步需求。不同应用场景下的表,数据同步的需求不同,进行详细参数配置前,需要首先明确如下几点:
1)、同步的数据库类型。它们是否是关系型数据与分布式数据库的关系。如本实施例中Oracle与Gbase数据库。
2)、同步数据表的数据量级、频率、全字段还是部分字段同步,数据范围。
3)、同步的方向,是单向还是双向同步。如:Gbase向Oracle同步,还是Oracle向Gbase同步。
2、配置同步参数表
本实施例针对不同的数据同步方向,设计了两张不同的同步参数表ETL_SYNC_IN_INFO和ETL_SYNC_OUT_INFO。
若是Gbase向Oracle方向同步,配置同步入库信息表ETL_SYNC_IN_INFO,例如,若将Oracle数据的员工表UDM_EHR_TLR按区域将每日的增量数据同步到Gbase数据库,就需要先配置同步表字段SYS_TAB_TABLE,区域字段REGION_NO,同步方式,导出语句DATA_SQL,接收表REC_TAB_NAME,导入接收表的程序PROC_NAME,启用开关IS_ENABLE以及同步状态STATE。ETL_SYNC_IN_INFO配置可因同步需求的差异灵活配置,通过区域字段REGION_NO,导出语句DATA_SQL,导入接收表的程序PROC_NAME几个字段灵活编写SQL和PROCEDURE来实现,使用简单,灵活高效。
若是Oracle向Gbase方向同步,配置同步出库信息表ETL_SYNC_OUT_INFO,例如,若将Gbase数据的员工表DM_EHR_TLR按区域将每日的增量数据同步到Oracle数据库,就需要配置同步表字段SYS_TAB_TABLE,区域字段REGION_NO,导出语句DATA_SQL,接收表REC_TAB_NAME,接收表结构信息REC_TAB_STR,接收表的REC_TAB_CTL模板,导入接收表的程序块PROC_SQL,启用开关IS_ENABLE以及同步状态STATE。同步出库信息表ETL_SYNC_OUT_INFO的配置因可以通过区域字段REGION_NO,导出语句DATA_SQL,接收表REC_TAB_NAME,接收表结构信息REC_TAB_STR,接收表的REC_TAB_CTL模板,导入接收表的程序块PROC_SQL几个字段灵活编写SQL和PROCEDURE来实现。
其中:ETL_SYNC_IN_INF同步导入时,可以选择导入DBLINK和文件两种方式,ETL_SYNC_OUT_INF同步导入时只能选择文件这种同步方式。两个同步方向的参数配置,都可以通过关键栏位灵活配置以实现不同需求场景下的高效、频繁的差异化同步需求。
3、定义依赖关系及频率
同步数据表一般跟系统其它功能模块,以及跟模块内的其它同步数据表之间存在某种调用的先后顺序,这种关系我们通常称之为依赖关系。针对这种依赖关系,通过可以通过Crontab定时任务或者专门的调度工具来实现。本发明通过专用调度工具WWSF工具实现,通过配置调度系统的参数表实现按照固定频率、按照设定的先后顺序调度同步主程序,以实现两个数据系统之间的定期同步。这种配置会因调度工具的不同存在差异,在这里就不赘述。
4、调用同步主程序和同步子程序
(1)当调起同步主程序为syncinput.sh时,主程序首先读取参数表ETL_SYNC_IN_INFO配置并判断同步方式。若同步方式为DBLINK方式,则通过子程序checkenable检查同步表的启用状态,若启用状态为是,则继续调用子程序dblink_proc直接将数据同步完毕,并通过updatestat更新同步状态。若同步方式为文件方式,则通过子程序checkenable检查同步表的启用状态,若启用状态为是,则会依次会调用程序genfile导出文件、子程序loadfile加载文件、子程序dataproc处理数据和子程序clearfile清理历史文件,整个过程若顺利执行完毕,则更新该同步表的状态为SUC,否则置为相应的ERR;若启用状态为否,则直接跳过该表的数据同步。其中,genfile从Oracle数据库导出时,会调用Sqluldr提交导出效率。
(2)当调起同步主程序为syncoutput.sh时,主程序首先读取参数表ETL_SYNC_OUT_INFO配置并判断同步方式。若同步方式为文件方式,则通过子程序checkenable检查同步表的启用状态,若启用状态为是,则会依次调用程序genfile导出文件、子程序loadfile加载文件、子程序dataproc处理数据和子程序clearfile清理历史文件,整个过程若顺利执行完毕,则更新该同步表的状态为SUC,否则置为相应的ERR;若启用状态为否,则直接跳过该表的数据同步。
syncoutput.sh与syncinput.sh中文件同步方式的流程一致,但每个子程序的实现方式不一样,如处理数据的子程序dataproc。其中syncinput.sh中的子程序dataproc会读取参数表ETL_SYNC_IN_INFO,syncoutput.sh中子程序dataproc会读取ETL_SYNC_OUT_INFO。
由此可见,同步主程序封装了Checkenable、genfile、loadfile、dataproc、clearfile和updatestat等子程序,它们通过读取同步参数表按照顺序依次执行,形成了一套完整的同步框架,其中还整合了sqluldr工具、异构数据库的导出导入技术、调度工具等许多技术细节,让普通开发者只需要关注同步数据的规划和参数表的配置。另外,主程序提供了丰富的日志记录,会记录每张表每个步骤的执行情况,可以准确定位问题原因和快速解决问题。
上述调用同步主程序和同步子程序的整个过程若顺利执行完毕,则更新该同步表的状态为SUC,否则任一步骤执行失败则置为相应的ERR。若同步方式为DBLINK,则直接根据同步参数配置表中的配置程序直接完成通过同步操作,并更新同步表的状态。
本发明方法在功能上主要划分为规划同步数据需求,配置同步参数表,定义依赖关系及频率,调起同步主程序。规划同步数据需求的是配置同步参数表的前提,提前梳理同步表的数据和业务特点才能更好的配置参数表;而配置同步参数表是整个同步过程的关键,同步表的数据范围、区域范围、时间范围的都是通过两张参数表进行灵活设置。参数配置完毕后,利用调度工具定义每张同步数据表的同步频率,以及同步表之间以及同步表与其它模块间的依赖关系。最终同步主程序会读取同步参数配置表,依次调起checkenable、genfile、loadfile、dataproc、dblink_proc和clearfile等子程序完成整个同步过程。
上述实施方式仅为例举,不表示对本发明范围的限定。这些实施方式还能以其它各种方式来实施,且能在不脱离本发明技术思想的范围内作各种省略、置换、变更。

Claims (10)

1.一种异构数据库系统间的数据同步方法,其特征在于,该方法包括:
规划同步需求;
基于同步需求配置同步参数表;
定义同步数据表之间以及同步数据表与其他模块之间的依赖关系、同步频率;
调用同步操作程序,基于同步参数表的配置进行数据同步操作。
2.根据权利要求1所述的一种异构数据库系统间的数据同步方法,其特征在于,所述的同步需求包括:
同步的数据库的类型;
同步数据量级、频率、数据范围;
同步方向,包括单向同步或双向同步。
3.根据权利要求1所述的一种异构数据库系统间的数据同步方法,其特征在于,所述的同步参数表采用自定义配置形式。
4.根据权利要求1所述的一种异构数据库系统间的数据同步方法,其特征在于,所述的同步参数表包括同步表名、区域、数据同步方式、导出SQL语句、目标表名、处理程序。
5.根据权利要求2所述的一种异构数据库系统间的数据同步方法,其特征在于,当为双向同步时,所述的同步参数表设置两张,分别对应为两个方向数据同步的配置。
6.根据权利要求2所述的一种异构数据库系统间的数据同步方法,其特征在于,对于任意一个方向的数据同步,以数据库中的表为单位进行同步,针对一个待同步的数据表配置一张同步参数表。
7.根据权利要求4所述的一种异构数据库系统间的数据同步方法,其特征在于,所述的数据同步方式包括文件同步方式、DBLINK同步方式。
8.根据权利要求1所述的一种异构数据库系统间的数据同步方法,其特征在于,所述的同步操作程序包括同步主程序和同步子程序,所述的同步主程序读取同步参数表判断同步方式,并根据不同的同步方式调用相应的同步子程序进行同步操作。
9.根据权利要求1所述的一种异构数据库系统间的数据同步方法,其特征在于,采用调度工具定义同步数据表之间以及同步数据表与其他模块之间的依赖关系、同步频率。
10.根据权利要求1所述的一种异构数据库系统间的数据同步方法,其特征在于,当同步操作成功后,更新数据库中数据表的同步状态。
CN202210105121.7A 2022-01-28 2022-01-28 一种异构数据库系统间的数据同步方法 Pending CN114528347A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210105121.7A CN114528347A (zh) 2022-01-28 2022-01-28 一种异构数据库系统间的数据同步方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210105121.7A CN114528347A (zh) 2022-01-28 2022-01-28 一种异构数据库系统间的数据同步方法

Publications (1)

Publication Number Publication Date
CN114528347A true CN114528347A (zh) 2022-05-24

Family

ID=81623074

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210105121.7A Pending CN114528347A (zh) 2022-01-28 2022-01-28 一种异构数据库系统间的数据同步方法

Country Status (1)

Country Link
CN (1) CN114528347A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117931767A (zh) * 2023-12-15 2024-04-26 北京宇信科技集团股份有限公司 一种数据库迁移平台和数据库迁移方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117931767A (zh) * 2023-12-15 2024-04-26 北京宇信科技集团股份有限公司 一种数据库迁移平台和数据库迁移方法

Similar Documents

Publication Publication Date Title
CN104317843B (zh) 一种数据同步etl系统
US7058615B2 (en) Scheduling for data warehouse ETL processing and data mining execution
US20080104133A1 (en) Data cache techniques in support of synchronization of databases in a distributed environment
CN105677465B (zh) 应用于银行跑批处理的数据处理方法及装置
CN108073688B (zh) 一种数据迁移的方法及装置
CN109299074B (zh) 一种基于模板化数据库视图的数据校验方法及系统
CN105224527A (zh) 适用于多种目的表更新方式的通用etl方法
CN103927314A (zh) 一种数据批量处理的方法和装置
CN111930354B (zh) 一种用于软件开发的框架组件系统及其构建方法
CN114528347A (zh) 一种异构数据库系统间的数据同步方法
CN101719131B (zh) 一种报表数据的处理方法、装置和系统
CN107133327B (zh) 一种支持多数据类型的数据交换方法及系统
CN111767346A (zh) 一种数据库的数据同步方法、装置、设备及存储介质
US9348882B2 (en) Method, system, and computer readable medium for long term archiving of data in a MES system
CN105550351B (zh) 旅客行程数据即席查询系统及方法
US9104356B2 (en) Extendable system for preprocessing print document and method for the same
CN112732828A (zh) 基于数据仓库工具的跨平台数据共享方法
US20030097545A1 (en) Adaptive data architecture for information management systems
CN112162992A (zh) 一种高效的数据库更新系统及方法
CN115495465A (zh) 一种数据更新方法、装置及电子设备
CN110839064A (zh) 一种分布式系统执行脚本的方法及装置
CN115757481A (zh) 数据迁移方法、装置、设备和存储介质
CN114840489A (zh) 数据库版本更迭方法及装置、存储介质及电子装置
CN112817808B (zh) 一种计算机集群维护任务管理方法及系统
CN114153857A (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