CN107423334A - 一种支持多数据源的自动数据迁移方法及装置 - Google Patents
一种支持多数据源的自动数据迁移方法及装置 Download PDFInfo
- Publication number
- CN107423334A CN107423334A CN201710272131.9A CN201710272131A CN107423334A CN 107423334 A CN107423334 A CN 107423334A CN 201710272131 A CN201710272131 A CN 201710272131A CN 107423334 A CN107423334 A CN 107423334A
- Authority
- CN
- China
- Prior art keywords
- data
- source
- database
- configuration file
- information
- 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
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/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种支持多数据源的自动数据迁移方法,包括以下步骤:加载并解析配置文件;根据配置文件获取每个来源数据库的信息并分别访问每个来源数据库,从而得到来源结果集;根据配置文件获取对应的目标数据库与数据转换类型,并根据数据转换类型将来源结果集转换为目标结果集;将目标结果集插入到目标数据库中。本发明还提供了一种支持多数据源的自动数据迁移装置。本发明实现了将来自不同的数据源或服务器的数据自动转移到目标数据库中,解决了现有技术中主流框架不支持多数据源数据转移的问题。
Description
技术领域
本发明涉及一种数据迁移方法,尤其涉及一种多数据源之间的数据迁移方法及装置。
背景技术
对于像MySQL、Oracle、SQLServer等这些数据库均是现如今比较流行的数据库系统,各个企业或个人根据自身不同的需求会选择不同的数据库系统来建立自身的数据库;同时,不同数据库其由自身的规定原则,比如SQL语句、字段定义、数据格式等均不同;而且,像Hibernate和MyBatis这两个主流持久层框架也不支持同时从多个不同数据库中取数据,这样当需要在两个或三个不同的数据库之间进行数据转移时,不能够同时从多个数据库或服务器上获取结果并将其转移到另外一个数据库或服务器上。
发明内容
为了克服现有技术的不足,本发明的目的之一在于提供了一种支持多数据源的自动数据迁移方法,其实现了将来自多个不同数据库类型的数据源中的结果数据自动迁移到目标数据库中。
为了克服现有技术的不足,本发明的目的之二在于提供了一种支持多数据源的自动数据迁移装置,其实现了将来自多个不同数据库类型的数据源中的结果数据自动迁移到目标数据库中。
本发明的目的之一采用以下技术方案实现:
一种支持多数据源的自动数据迁移方法,包括:
加载并解析配置文件;
根据配置文件获取每个来源数据库的信息并分别访问每个来源数据库,从而得到来源结果集;
根据配置文件获取对应的目标数据库与数据转换类型,并根据所述数据转换类型将来源结果集转换为目标结果集;
将目标结果集插入到所述目标数据库中。
进一步地,所述配置文件包括多个数据转移任务,每个数据转移任务至少包括来源数据库的信息、目标数据库的信息、访问来源数据库对应的SQL语句和数据转换类型;所述来源数据库有多个。
进一步地,所述配置文件为XML配置文件。
进一步地,所述数据转换类型包括系统默认转换类型和自定义转换类型。
本发明的目的之二采用以下技术方案实现:
一种支持多数据源的自动数据迁移装置,包括:
加载模块,用于加载并解析配置文件;
结果集获取模块,用于根据配置文件获取每个来源数据库的信息并分别访问每个来源数据库,从而得到来源结果集;
转换模块,用于根据配置文件获取对应的目标数据库与数据转换类型,并根据所述数据转换类型将来源结果集转换为目标结果集;
插入模块,用于将目标结果集插入到所述目标数据库中。
进一步地,所述配置文件包括多个数据转移任务,每个数据转移任务至少包括来源数据库的信息、目标数据库的信息、访问来源数据库对应的SQL语句和数据转换类型;所述来源数据库有多个。
进一步地,所述配置文件为XML配置文件。
进一步地,所述数据转换类型包括系统默认转换类型和自定义转换类型。
相比现有技术,本发明的有益效果在于:
本发明通过配置文件中配置数据转移所需要的来源数据库的信息、目标数据库的信息等,从而实现了将来自不同数据源的数据自动转移到目标数据库中。
附图说明
图1为本发明提供一实施例的方法流程图;
图2为本发明提供一实施例的数据转移示意图;
图3为本发明提供一实施例的装置模块图。
具体实施方式
下面,结合附图以及具体实施方式,对本发明做进一步描述,需要说明的是,在不相冲突的前提下,以下描述的各实施例之间或各技术特征之间可以任意组合形成新的实施例。
实施例
现有的Java主流的持久层框架为Hibernate和MyBatis这两个框架,而这来个框架都是基于JDBC的封装,其简化了JDBC对于不同数据库类型操作的复杂配置。
比如,对于Hibernate,其工作原理为:
A、通过Configuration config=new Configuration().configure();//读取并解析hibernate.cfg.xml配置文件;
B、由hibernate.cfg.xml中的<mapping resource="com/xx/User.hbm
.xml"/>;读取并解析映射信息
C、通过SessionFactory sf=config.buildSessionFactory();//创建SessionFactory
D、Session session=sf.openSession();//打开Sesssion
E、Transaction tx=session.beginTransaction();/创建并启动事务Transation;
F、persistent operate;操作数据,持久化操作
G、tx.commit();//提交事务
H、关闭Session;关闭SesstionFactory。
对于MyBatis,其工作原理为:
A、MyBatis应用程序根据XML配置文件创建SqlSessionFactory;
B、SqlSessionFactory再根据配置(配置来源于两个地方,一处是配置文件,一处是Java代码的注解)获取一个SqlSession;
C、SqlSession包含了执行sql所需要的所有方法;
D、通过SqlSession实例直接运行映射的sql语句,完成对数据的增删改查和事务提交等;
E、关闭SqlSession。
尽管上述两种框架使得数据库的配置得到简化,但是,对于上述两个框架都存在一个共同的问题,就是其均不支持将来自于不同的数据源(来自于不同的数据库类型的数据源)转移到其他的数据源中。也即是,当需要将多个不同数据库类型的数据转移到其他的数据库中时,并不能够通过上述两种框架来实现。
因此,本发明是通过对JDBC的重新封装,通过配置文件的形式支持配置多个数据源,并且沿用MyBatis框架的封装思想,通过在XML配置文件中配置查询sql语句、来源数据库的信息、目标数据库的信息等配置信息,这样就简化了JDBC的复杂配置,实现了将多个数据源的数据转移到其他数据源。
XML配置文件的配置信息是以任务列表的形式存在,也即是说,XML配置文件包括多个数据转移任务。每个数据转移任务,均对应于一个数据转移的操作,包括来源数据库的信息、目标数据库的信息、访问来源数据库所对应的SQL语句和数据转换类型。
来源数据库的信息包括来源数据库的类型、登录账号、密码、数据库的连接方式等等配置信息,SQL语句指的是访问来源数据库时的SQL语句,比如查询来源数据库的sql查询语句,由于不同的数据库,其所涉及到的SQL语句略有不同,因此,对于每个来源数据库均配置有对应的SQL语句。在运行时,系统通过读取来XML配置文件,能够得知来源数据库的信息,并根据来源数据库的信息依次连接、登录来源数据库,并根据对应的SQL语句来访问来源数据库。来源数据库可以有多个,并且其数据库类型可以不同,比如来源数据库可以3个,一个为SQL Server、一个为MySQL、一个为Oracle。通过连接并查询每个来源数据库后得到一个来源结果集。
同样的,在XML配置文件中,目标数据库的信息也包括目标数据库的类型、登录账号、密码、连接方式等信息。一个数据转移任务中只有一个目标数据库。本发明中的数据库类型可以是SQL Server、Oracle、MySQL、Access、DB2、Informix、PostgreSQL、FoxPro等等。
数据转换类型包括系统默认数据转换类型和自定义数据转换类型。当得到来源结果集后,通常情况下来源结果集中的数据并不能够直接插入到目标数据库中,因为目标数据库与来源数据库的数据库类型不同,其数据格式、定义规则等均不同,这样在将来源结果集插入到目标数据库之前,需要对来源结果集中的数据进行转换处理,使得来源结果集转换为目标结果集,目标结果集的数据是与目标数据库中的数据是一致的。本发明提供的数据类型转换为分为两种,一种是系统默认数据转换类型,比如将来源数据库中的数据A类型转换为B类型。而另一种是自定义数据转换类型,其是根据具体的业务需求进行由配置人员进行自定义的,比如来源数据库有一列数据是标识项目经理的描述名称,但是在目标数据库中由于目标项目的业务需求问题,需要将项目经理转换为项目主管的描述名称,这就需要配置人员进行预先自定义数据类型转换规则。
一种支持多数据源的自动数据迁移方法,如图1所示,包括以下步骤:
加载并解析配置文件;
根据从配置文件中获取每个数据转移任务的来源数据库的信息以及对应的SQL语句访问来源数据库,得到来源结果集;
根据从配置文件中获取每个数据转移任务所对应的目标数据库的信息以及数据转换类型,将来源结果集转换为目标结果集;
将目标结果集插入到目标数据库中。
来源数据库与目标数据库可以是一对一的关系,也可以是多对一的关系,也即是说,本发明可以实现将一个来源数据库中的数据转移到一个目标数据库中;也可以将多个不同来源数据库中的数据转移到一个目标数据库中。
本发明还提供了一种具体的实例,如图2所示,具体如下:
如果对于A公司的两家分公司A1和分公司A2,分公司A1和分公司A2分别各自有自己的数据库系统。其中,分公司A1的数据库为B1、B2和B3,数据库B1、B2以及B3的数据库类型也不相同,可以是SQLServer、MySQL、Oracle等类型,而分公司A2的数据库为C1和C2。而且,两家分公司的数据的业务需求是相似但是并不完全一致。
假设需要将分公司A1中数据库中的一部分功能和数据迁移到分公司A2。比如,任务一:要将分公司A1的数据库中包含“广州”的数据全部修改为“深圳”并将其转到分公司A2的数据库中;任务二:要将分公司A1的员工张三创建出来的虚拟机全部转到分公司A2的员工李四的名下。
一般的情况下,是需要运维人员去进行人工去匹配,在分公司A1的数据库中逐条去查询得到结果集,然后对其进行修改来满足目标数据库的格式要求,再将修改后的结果集插入到分公司A2的数据库中,这样做的工作量是巨大。
而通过本发明可实现自动迁移,可大大节省人力资源。
比如,首先将任务一以及任务二所需要进行数据转移的来源数据库的信息、目标数据库的信息以及所需要转移的数据等信息均通过一XML配置文件来进行描述。比如任务一:来源数据库为B1、B2、B3;目标数据库:C1;每个数据库的类型、连接方式、账户等信息均配置在XML配置文件中;在访问来源数据库B1、B2以及B3时所需要的SQL语句也配置于XML配置文件中;数据转换类型也配置与XML配置文件中,该数据转换类型可以是系统默认数据转换类型,也可以是自定义数据转换类型,比如将包含“广州”的数据修改为“深圳”。
在执行时,首先加载配置文件,并读取XML配置文件中的任务列表,然后依次执行任务列表中的任务。比如任务一:首先根据配置文件中来源数据库B1、来源数据库B2以及来源数据库B3对应的的连接方式、账户、类型等连接数据库服务器,然后根据对应的访问SQL语句获取每个来源数据库的结果,从而得到来源结果集。也即是分公司A1中所有带有“广州”的数据,然后根据数据转换类型,将来源结果集中带有“广州”的数据修改为“深圳”后得到目标结果集,然后根据目标数据库C1的信息连接数据库C1,将目标结果集插入到分公司A2的数据库C1中,从而完成数据迁移工作。通过这种方式可可以大大减轻运维人员的工作量。
当需要执行多条数据转移任务时,可从XML配置文件中读取数据转移任务并依次执行。
数据迁移方法在实际的使用过程,可通过程序来实现。在使用时,只需通过修改配置文件中的数据库配置信息并运行程序,就可以实现将不同数据源中旧的数据转移到新的数据源或服务器上指定的数据库表中。本发明将数据迁移方法通过程序来实现后,可单独作为一个JAVA程序工具,也即是数据迁移工具进行执行,其具体过程如下:
首先备份数据库的数据,然后在运行环境上安装JDK运行环境,再执行java-jar[数据迁移工具安装包的路径]命令来运行数据迁移工具;最后等到该数据迁移工具运行结束,这说明数据迁移的操作完成;可通过检查目标数据库的数据是否正确来检验数据迁移是否正常。
一种支持多数据源的自动数据迁移装置,如图3所示,包括:
加载模块,用于加载并解析配置文件;
结果集获取模块,用于根据配置文件获取每个来源数据库的信息并分别访问每个来源数据库,从而得到来源结果集;
转换模块,用于根据配置文件获取对应的目标数据库与数据转换类型,并根据所述数据转换类型将来源结果集转换为目标结果集;
插入模块,用于将目标结果集插入到所述目标数据库中。
上述实施方式仅为本发明的优选实施方式,不能以此来限定本发明保护的范围,本领域的技术人员在本发明的基础上所做的任何非实质性的变化及替换均属于本发明所要求保护的范围。
Claims (8)
1.一种支持多数据源的自动数据迁移方法,其特征在于包括:
加载并解析配置文件;
根据配置文件获取来源数据库的信息并分别访问来源数据库,从而得到来源结果集;
根据配置文件获取对应的目标数据库与数据转换类型,并根据所述数据转换类型将来源结果集转换为目标结果集;
将目标结果集插入到所述目标数据库中。
2.如权利要求1所述支持多数据源的自动数据迁移方法,其特征在于:所述配置文件包括多个数据转移任务,每个数据转移任务至少包括来源数据库的信息、目标数据库的信息、访问来源数据库对应的SQL语句和数据转换类型;所述来源数据库有多个。
3.如权利要求1-2任意一项所述支持多数据源的自动数据迁移方法,其特征在于:所述配置文件为XML配置文件。
4.如权利要求1-2任意一项所述支持多数据源的自动数据迁移方法,其特征在于:所述数据转换类型包括系统默认转换类型和自定义转换类型。
5.一种支持多数据源的自动数据迁移装置,其特征在于包括:
加载模块,用于加载并解析配置文件;
结果集获取模块,用于根据配置文件获取每个来源数据库的信息并分别访问每个来源数据库,从而得到来源结果集;
转换模块,用于根据配置文件获取对应的目标数据库与数据转换类型,并根据所述数据转换类型将来源结果集转换为目标结果集;
插入模块,用于将目标结果集插入到所述目标数据库中。
6.如权利要求5所述支持多数据源的自动数据迁移装置,其特征在于:所述配置文件包括多个数据转移任务,每个数据转移任务至少包括来源数据库的信息、目标数据库的信息、访问来源数据库对应的SQL语句和数据转换类型;所述来源数据库有多个。
7.如权利要求5-6任意一项所述支持多数据源的自动数据迁移装置,其特征在于:所述配置文件为XML配置文件。
8.如权利要求5-6任意一项所述支持多数据源的自动数据迁移装置,其特征在于:所述数据转换类型包括系统默认转换类型和自定义转换类型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710272131.9A CN107423334A (zh) | 2017-04-24 | 2017-04-24 | 一种支持多数据源的自动数据迁移方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710272131.9A CN107423334A (zh) | 2017-04-24 | 2017-04-24 | 一种支持多数据源的自动数据迁移方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107423334A true CN107423334A (zh) | 2017-12-01 |
Family
ID=60424240
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710272131.9A Pending CN107423334A (zh) | 2017-04-24 | 2017-04-24 | 一种支持多数据源的自动数据迁移方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107423334A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108460108A (zh) * | 2018-02-07 | 2018-08-28 | 广州和辰信息科技有限公司 | 一种数据库数据整理迁移方法、系统以及存储介质 |
CN110069471A (zh) * | 2017-12-07 | 2019-07-30 | 航天信息软件技术有限公司 | 一种数据的迁移方法和系统 |
CN111367975A (zh) * | 2018-12-25 | 2020-07-03 | 中国移动通信集团浙江有限公司 | 一种多协议数据转换处理方法及装置 |
CN111797070A (zh) * | 2019-04-08 | 2020-10-20 | 杭州晨熹多媒体科技有限公司 | 票务数据处理方法及装置 |
CN111831713A (zh) * | 2019-04-18 | 2020-10-27 | 阿里巴巴集团控股有限公司 | 一种数据处理方法、装置及设备 |
CN113111108A (zh) * | 2021-04-06 | 2021-07-13 | 创意信息技术股份有限公司 | 文件数据源入库解析接入方法 |
WO2021204041A1 (zh) * | 2020-04-08 | 2021-10-14 | 支付宝(杭州)信息技术有限公司 | 数据处理 |
CN114048195A (zh) * | 2022-01-13 | 2022-02-15 | 合肥臻谱防务科技有限公司 | 一种数据迁移方法、系统及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103309945A (zh) * | 2013-05-15 | 2013-09-18 | 上海证券交易所 | 一种将数据导入数据库的装置 |
CN104462119A (zh) * | 2013-09-18 | 2015-03-25 | 腾讯科技(深圳)有限公司 | 数据迁移方法及装置 |
CN105205117A (zh) * | 2015-09-09 | 2015-12-30 | 郑州悉知信息科技股份有限公司 | 一种数据表迁移方法和装置 |
CN106055670A (zh) * | 2016-06-06 | 2016-10-26 | 中国工商银行股份有限公司 | 一种系统间数据迁移方法及装置 |
-
2017
- 2017-04-24 CN CN201710272131.9A patent/CN107423334A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103309945A (zh) * | 2013-05-15 | 2013-09-18 | 上海证券交易所 | 一种将数据导入数据库的装置 |
CN104462119A (zh) * | 2013-09-18 | 2015-03-25 | 腾讯科技(深圳)有限公司 | 数据迁移方法及装置 |
CN105205117A (zh) * | 2015-09-09 | 2015-12-30 | 郑州悉知信息科技股份有限公司 | 一种数据表迁移方法和装置 |
CN106055670A (zh) * | 2016-06-06 | 2016-10-26 | 中国工商银行股份有限公司 | 一种系统间数据迁移方法及装置 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110069471A (zh) * | 2017-12-07 | 2019-07-30 | 航天信息软件技术有限公司 | 一种数据的迁移方法和系统 |
CN108460108A (zh) * | 2018-02-07 | 2018-08-28 | 广州和辰信息科技有限公司 | 一种数据库数据整理迁移方法、系统以及存储介质 |
CN111367975A (zh) * | 2018-12-25 | 2020-07-03 | 中国移动通信集团浙江有限公司 | 一种多协议数据转换处理方法及装置 |
CN111367975B (zh) * | 2018-12-25 | 2023-11-03 | 中国移动通信集团浙江有限公司 | 一种多协议数据转换处理方法及装置 |
CN111797070A (zh) * | 2019-04-08 | 2020-10-20 | 杭州晨熹多媒体科技有限公司 | 票务数据处理方法及装置 |
CN111831713A (zh) * | 2019-04-18 | 2020-10-27 | 阿里巴巴集团控股有限公司 | 一种数据处理方法、装置及设备 |
WO2021204041A1 (zh) * | 2020-04-08 | 2021-10-14 | 支付宝(杭州)信息技术有限公司 | 数据处理 |
CN113111108A (zh) * | 2021-04-06 | 2021-07-13 | 创意信息技术股份有限公司 | 文件数据源入库解析接入方法 |
CN114048195A (zh) * | 2022-01-13 | 2022-02-15 | 合肥臻谱防务科技有限公司 | 一种数据迁移方法、系统及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107423334A (zh) | 一种支持多数据源的自动数据迁移方法及装置 | |
CN110809017B (zh) | 一种基于云平台和微服务构架的数据分析应用平台系统 | |
CN106649378B (zh) | 一种数据同步方法及装置 | |
CN112260877B (zh) | 基于ai的rpa机器人管理方法、平台及存储介质 | |
US20070192374A1 (en) | Virtual repository management to provide functionality | |
US20070162452A1 (en) | Systems and methods for implementing a shared space in a provider-tenant environment | |
CN102799962A (zh) | 一种配置型业务流程系统及其实现方法 | |
CN109087004A (zh) | 一种基于领域模型的公共工作流引擎系统 | |
CN104517181B (zh) | 一种核电站企业内容管理系统及方法 | |
CN108229799B (zh) | 一种多源异构电网运行实时数据接入系统及方法 | |
CN110032594B (zh) | 可定制化的多源数据库的数据抽取方法、装置及存储介质 | |
CN107103064A (zh) | 数据统计方法及装置 | |
US9141251B2 (en) | Techniques for guided access to an external distributed file system from a database management system | |
CN103455335A (zh) | 一种多级分类的Web实现方法 | |
CN105446819B (zh) | 一种服务连接系统及其设计方法 | |
CN100407663C (zh) | 一种电信智能业务的通用测试系统及方法 | |
CN105701220B (zh) | 一种企业内部业务数据系统及处理方法 | |
US10732948B2 (en) | System and method for implementing automated deployment | |
CN113962597A (zh) | 一种数据分析方法、装置、电子设备及存储介质 | |
CN102831123B (zh) | 一种用于查询数据的权限控制方法和系统 | |
US20030158767A1 (en) | Method and system for adaptive software system interface and external database synchronization | |
CN105630997A (zh) | 一种数据并行处理方法、装置及设备 | |
CN105550910A (zh) | 一种电子发票技术与增值税智慧云协同工作的应用 | |
CN206421382U (zh) | 一种数据处理系统 | |
CN111381833B (zh) | 一种容器化的openstack数据初始化方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
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: 20171201 |