CN102521387B - 一种基于插件的数据迁移方法 - Google Patents
一种基于插件的数据迁移方法 Download PDFInfo
- Publication number
- CN102521387B CN102521387B CN201110436236.6A CN201110436236A CN102521387B CN 102521387 B CN102521387 B CN 102521387B CN 201110436236 A CN201110436236 A CN 201110436236A CN 102521387 B CN102521387 B CN 102521387B
- Authority
- CN
- China
- Prior art keywords
- data
- plug
- source
- database
- unit
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于插件的数据迁移方法,包括如下步骤:在数据库数据迁移之前,配置用户所需的插件;根据用户配置的插件选择源数据源和目的数据源;根据用户选择的数据源和目的数据配置数据迁移选项和迁移对象;根据用户的选择和迁移配置迁移数据。本发明可以大大节约应用项目开发人员不必要的编程时间,加快数据库系统移植和复制进度,屏蔽了数据移植过程中的复杂操作,使用户和开发人员的操作更简单易行。
Description
技术领域
本发明涉及一种数据迁移方法,尤其涉及一种基于插件实现的数据迁移方法,属于数据库应用技术领域。
背景技术
随着社会的发展和科技的进步,人们对存储设备的性能要求越来越高,对数据安全性和完整性提出了更高的要求。人们使用的数据量在不断增加,需要对数据库系统进行升级换代,原有的数据库系统不断被功能更强大的新数据库系统所取代。在新旧数据库系统切换的过程中,为了保证新旧数据库系统数据的完整性,必然要面临一个数据迁移的问题。数据迁移,就是将旧数据库系统中的历史数据装载到新数据库系统中的过程,并且这些数据在转移后能在新的数据库系统中正常运行。
在实际应用中,由于多种原因经常产生数据库系统移植和复制的需求,其中最重要的就是异构数据库中数据移植和智能复制的需求。移植或复制后的数据质量直接决定上层应用系统是否需要做定制性的维护、开发,甚至颠覆性的修改或废弃。然而,目前的数据迁移方案大多数由应用项目开发人员编码实现,还有一些数据迁移工具是各数据库厂商为各自产品开发的,仅支持其产品本身为目的源的迁移方案,配置不够灵活,可扩展性不强。
在申请号为201110000617.X的中国发明专利申请中,公开了一种数据迁移的方法及装置。该方法包括:在数据迁移之前,将源数据库复制到目标数据库所在服务器,并将源数据库和目标数据库配置到同一个数据库端口上。连接源数据库,获得符合预设条件的源数据,所述源数据具有字段索引信息,所述预设条件为针对字段索引信息设置的提取条件;连接目标数据库,将所获得的源数据存为目标数据。该方法虽然减少了数据迁移的时间,但是仍然操作复杂,需要针对不同的源数据库或目标数据库分别设定预设条件,缺乏对不同的数据库的兼容和支持,不能有效降低开发人员不必要的编程时间,不利于推广和应用。
发明内容
针对现有技术所存在的缺陷和不足,本发明所要解决的技术问题在于提供一种基于插件的数据迁移方法。使用该方法能够节约数据迁移时间,快速适合用户和开发人员的需求。
为实现上述的发明目的,本发明采用下述的技术方案:
一种基于插件的数据迁移方法,其特征在于包括以下步骤:
(1)在数据库数据迁移之前,配置用户所需的插件;
(2)根据配置的所述插件选择源数据源和目的数据源;
(3)根据用户选择的数据源和目的数据配置数据迁移选项和迁移对象;
(4)根据用户的选择和迁移配置迁移数据。
其中较优地,所述步骤(1)中,配置用户插件包括如下子步骤:
为每个数据访问接口添加数据库接口规范;
为每个数据访问接口添加广义数据库插件;
根据所述数据库接口规范和所述广义数据库插件实现用户所需的插件。
其中较优地,所述步骤(2)中还包括添加源数据访问接口和目的数据访问接口的步骤。
其中较优地,所述步骤(4)中,进一步包括如下子步骤:
执行数据定义语言操作;
迁移关系数据,同时生成日志;
完成数据迁移。
本发明可以大大节约应用项目开发人员不必要的编程时间,加快数据库系统移植和复制进度,屏蔽了数据移植过程中的复杂操作,使用户和开发人员的操作更简单易行。特别在快速适应客户需求的应用项目中,本发明更表现出卓越的技术性能。
附图说明
下面结合附图和具体实施方式对本发明作进一步的详细说明。
图1是本发明所提供的数据迁移方法的整体流程示意图;
图2是本数据迁移方法中使用的数据访问接口的示意图;
图3是本发明中数据迁移方案的示意图;
图4是本发明中数据迁移的操作流程示意图。
具体实施方式
在本发明所提供的数据迁移方法中,首先在用户已配置的插件中选择数据源;通过插件获取数据源的元信息,并提供用户选择迁移对象的配置手段;数据迁移引擎根据用户的选择和迁移配置,负责数据抽取和处理,并将处理之后的数据迁移到目的数据库中去。下面对此展开具体的说明。
如图1所示,本数据迁移方法具体包括如下的步骤:
步骤S1,在数据库数据迁移之前,配置用户所需的插件。
本发明中的插件可以是一种广义数据库插件。在具体实现时,包括但不限于Kingbase数据库插件、Oracle数据库插件、IBM DB2插件、SQLServer插件、Sybase数据库插件、JDBC数据源插件、ODBC数据源插件以及其它自定义访问协议的数据源插件等。
在本数据迁移方法中,如需加载新插件,例如动态添加数据库访问插件、ODBC源访问插件甚至文本文档访问插件等,只需实现数据访问接口即可。接口类型不受任何限制,可以是任意JDBC接口、ODBC接口、甚至是自行开发的文件访问接口。
图2显示了本数据迁移方法中使用的数据访问接口的示意图。从图2可以看出,本发明中的数据访问接口是一种抽象对象接口。在步骤101:为每个数据访问接口添加一个新的规范属性,即数据库接口规范。添加数据库接口规范后,进入步骤102。该数据库接口规范按照数据库原理和实现规范添加,例如自上而下添加服务器、用户、数据库、模式、模式对象、约束、索引、列、数据类型、关系、分区等各接口规范。具体而言,数据访问接口可以是数据库管理系统中的服务器、用户、数据库、模式、视图、序列、PL/SQL相关对象、关系、列、约束、索引等的模型接口。通过该数据访问接口可以模拟出完整的数据库系统结构。
步骤102:针对步骤101中添加的各个数据库接口规范,获取数据库各个接口规范的属性,为每个数据访问接口添加一套广义数据库插件。具体而言,针对数据访问接口中的规范属性给出一套默认的数据库插件,该数据库插件与具体数据库无关。在数据访问接口的基础上,提供针对数据库中更具体的标准及实现细节,为各厂商数据库服务器插件或自定义访问协议的数据访问插件的加载提供支持。
步骤103:根据步骤102中实现的数据库接口规范和广义数据库插件,实现各厂商数据库服务器插件或自定义访问协议的数据访问插件。本发明采用基于插件的管理方式,提供了即插即用、方便快捷的插件部署,不需要修改数据迁移引擎,只要将符合数据库接口规范的插件文件放在指定的目录下,运行时就可以自动加载,用于数据迁移。
步骤S2,根据用户已配置的插件中选择数据源。
在一个图形用户界面(GUI)编辑器中,分别添加一个源数据访问接口和目的数据访问接口。通过统一的配置文件动态加载步骤S1中该数据访问接口的各类插件作为源数据和目的数据。选择源数据源和目的数据源后进入步骤S3。
步骤S3,配置数据迁移选项和迁移对象。
如图3和图4所示,针对所选择的源数据访问接口和目的数据访问接口添加统一规范的配置文件,包括数据类型映射规范配置文件和插件注册规范配置文件。通过插件和配置文件的配合使用,可以屏蔽掉插件作为源数据源和目的数据源的差异,从而实现灵活配置、支持多目的数据源的特性。针对所选择的源数据访问接口和目的数据访问接口,获取源数据访问接口和目的数据访问接口的类型映射配置文件内容作为对应源数据访问接口和目的数据访问接口迁移时的类型转换规范,如数据类型映射等。此处设置的前提是源数据源和目的数据源的双向类型映射配置匹配。类型映射规范提供本插件与其他数据库插件的数据类型双向转换方法。
同时,在数据迁移过程中进行更多的迁移配置,如数据缓存迁移方式设置、关系冲突处理方式、空字符处理方式、出错处理等。数据迁移过程中可以灵活设置迁移选项,包括类型映射、字段映射、关系映射、迁移方式等。
根据迁移配置获取源数据源中要迁移的对象。具体而言,根据迁移配置获取源数据源中关系、视图等要迁移的对象;或者基于源数据源给出相应的查询结果,生成迁移任务,对数据库配置数据迁移选项和迁移对象。如图3所示,插件配置文件规范包括插件配置规范和类型映射规范。插件配置规范添加了插件名称、版本号、所应用的插件包、所指定的访问协议、实现各数据库对象(如关系、视图等)的类、插件可否作为目的数据源属性等,若插件为某具体数据库的模型,还可以配置登录该数据库的默认账号信息。
步骤S4,将源数据迁移至目的数据库中。
如图4所示,根据步骤S3生成的迁移任务由主进程执行源数据到目的数据库的数据迁移任务,数据迁移引擎先执行数据定义语言(DDL)操作,然后迁移关系数据,同时生成日志,完成数据迁移。
上述步骤中操作的数据源内容均为各插件的统一接口,利用继承和反射的机制实现,从而屏蔽了各数据库的差异性,避免了迁移主程序因数据源的变化而发生更改的问题。
上面对本发明所提供的基于插件的数据迁移方法进行了详细的说明。对本领域的一般技术人员而言,在不背离本发明实质精神的前提下对它所做的任何显而易见的改动和替换,都将构成对本发明专利权的侵犯,将承担相应的法律责任。
Claims (4)
1.一种基于插件的数据迁移方法,其特征在于包括以下步骤:
⑴在数据库数据迁移之前,首先为每个数据访问接口添加数据库接口规范,获取各个数据库接口规范的属性,为每个数据访问接口添加一套广义数据库插件,根据所述数据库接口规范和所述广义数据库插件配置用户所需的插件;
⑵根据配置的所述插件选择数据源和目的数据库;
⑶根据用户选择的数据源和目的数据库配置数据迁移选项和迁移对象;其中,基于数据源给出相应的查询结果,生成迁移任务,对数据库配置数据迁移选项和迁移对象;
⑷根据步骤⑶生成的迁移任务,由主进程执行数据源到目的数据库的数据迁移任务,数据迁移引擎先执行数据定义语言操作,然后迁移关系数据,同时生成日志,完成数据迁移;其中,操作的数据源内容为各插件的统一接口,利用继承和反射的机制实现。
2.如权利要求1所述的数据迁移方法,其特征在于:
所述步骤⑵中,在编辑器中分别添加源数据访问接口和目的数据访问接口,通过统一的配置文件动态加载所述步骤⑴中对应各数据访问接口的插件作为源数据和目的数据。
3.如权利要求1或2所述的数据迁移方法,其特征在于:
所述步骤⑶中,针对所选择的源数据访问接口和目的数据访问接口添加统一规范的配置文件,所述配置文件包括数据类型映射规范配置文件和插件注册规范配置文件。
4.如权利要求3所述的数据迁移方法,其特征在于:
所述数据源和所述目的数据库之间实现双向类型映射配置匹配。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110436236.6A CN102521387B (zh) | 2011-12-21 | 2011-12-21 | 一种基于插件的数据迁移方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110436236.6A CN102521387B (zh) | 2011-12-21 | 2011-12-21 | 一种基于插件的数据迁移方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102521387A CN102521387A (zh) | 2012-06-27 |
CN102521387B true CN102521387B (zh) | 2015-09-09 |
Family
ID=46292300
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110436236.6A Active CN102521387B (zh) | 2011-12-21 | 2011-12-21 | 一种基于插件的数据迁移方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102521387B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106156165A (zh) * | 2015-04-16 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 异构数据源之间的数据同步方法和装置 |
CN106547766A (zh) * | 2015-09-18 | 2017-03-29 | 华为技术有限公司 | 一种数据访问方法和装置 |
CN107085579A (zh) * | 2016-02-16 | 2017-08-22 | 中国移动通信集团福建有限公司 | 一种数据采集分发方法及装置 |
US10360190B2 (en) * | 2016-03-31 | 2019-07-23 | Microsoft Technology Licensing, Llc | Migrate data in a system using extensions |
CN108572994B (zh) * | 2017-03-14 | 2021-05-25 | 中国移动通信集团公司 | 一种数据迁移的处理方法及服务器 |
CN107590208A (zh) * | 2017-08-25 | 2018-01-16 | 国网辽宁省电力有限公司 | 一种插件式的电网数据异构数据库数据接入方法 |
CN110069471A (zh) * | 2017-12-07 | 2019-07-30 | 航天信息软件技术有限公司 | 一种数据的迁移方法和系统 |
CN114048195A (zh) * | 2022-01-13 | 2022-02-15 | 合肥臻谱防务科技有限公司 | 一种数据迁移方法、系统及电子设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6065002A (en) * | 1996-10-31 | 2000-05-16 | Systems And Computer Technology Corporation | Simplified interface for relational database access using open database connectivity |
CN1770151A (zh) * | 2004-11-03 | 2006-05-10 | 北京神舟航天软件技术有限公司 | 异种数据库复制方法 |
CN101110030A (zh) * | 2007-08-23 | 2008-01-23 | 南京联创科技股份有限公司 | 基于java的数据库持久层的开发方法 |
-
2011
- 2011-12-21 CN CN201110436236.6A patent/CN102521387B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN102521387A (zh) | 2012-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102521387B (zh) | 一种基于插件的数据迁移方法 | |
CN110837492B (zh) | 一种多源数据统一sql提供数据服务的方法 | |
CA2858680C (en) | Systems and methods for improving database performance | |
US10216826B2 (en) | Database query system | |
CN101546259B (zh) | 支持运行时模型扩展的对象关系映射系统和方法 | |
CN105224377A (zh) | 一种通过元数据自动生成软件项目编码文件的方法及装置 | |
CN103617176A (zh) | 一种实现多源异构数据资源自动同步的方法 | |
KR20170024039A (ko) | 유연한 스키마를 사용한 데이터 관리 | |
CN107346314A (zh) | 一种数据库单向同步方法 | |
CN104021145A (zh) | 一种混合业务并发访问的方法和装置 | |
US9864794B2 (en) | Method and system for managing faceted data | |
CN104133889A (zh) | 一种数据库虚拟化微内核数据源注册与封装方法 | |
CN104537129A (zh) | 一种基于Web的数据库虚拟存储处理方法 | |
US11249968B2 (en) | Large object containers with size criteria for storing mid-sized large objects | |
CN106558105A (zh) | 产品可配置bom在虚拟现实系统的使用方法 | |
CN103902562A (zh) | 一种终端数据库升级方法及相关装置 | |
CN108984236A (zh) | 一种虚拟化管理平台的实现方法及设备 | |
CN116569161A (zh) | 受版本控制的关系数据集管理 | |
CN100416562C (zh) | 一种电力自动化系统实时数据库管理系统及其实现方法 | |
CN106933555A (zh) | 一种数据框架系统 | |
US20230259506A1 (en) | Annotating datasets without redundant copying | |
CN102043853A (zh) | 一种存储数据的更新方法和装置 | |
US8244778B1 (en) | Customization of types using default aspects | |
US9508114B2 (en) | File format and system for distributed scene graphs | |
CN105335436A (zh) | 一种升级数据库结构的方法和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |