CN110851425A - 基于Mongify迁移Oracle数据至Mongo DB数据库的方法 - Google Patents
基于Mongify迁移Oracle数据至Mongo DB数据库的方法 Download PDFInfo
- Publication number
- CN110851425A CN110851425A CN201911129051.3A CN201911129051A CN110851425A CN 110851425 A CN110851425 A CN 110851425A CN 201911129051 A CN201911129051 A CN 201911129051A CN 110851425 A CN110851425 A CN 110851425A
- Authority
- CN
- China
- Prior art keywords
- mongo
- database
- mapping relation
- model
- oracle
- 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.)
- Granted
Links
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/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
-
- 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
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于Mongify迁移Oracle数据至Mongo DB数据库的方法,包括以下步骤:S1:实现Oracle数据库与Mongo DB数据库的通信;S2:根据Mongo DB数据库集合模型特征获得概念模型样板;S3:使用Mongify检查Oracle数据库与Mongo DB数据库概念模型样板映射关系,并将概念模型样板转换为具体的物理模型;S4:依据物理模型的映射关系进行自动化数据迁移。本发明可以控制迁移到Mongo DB数据库的数据结构,简化表数据迁移过程中的操作,降低了数据迁移的复杂度,不需要人工干预,缩短了迁移的时间,提升了处理效率,大幅度提高了处理性能。
Description
技术领域
本发明涉及一种数据迁移方法,尤其涉及一种基于Mongify迁移Oracle数据至Mongo DB数据库的方法。
背景技术
当前社会,企业随着数据数量、种类和重要性的不断增加,存储的数据越来越多,使用的关系型数据库容易触发性能瓶颈,同时关系型数据库也不能满足大数据处理的需求,所以越来越多的关系型数据库已向大数据类型数据库迁移(比如Mongo DB)。根据DB-Engines最新报告,Oracle依然占据数据库市场第一的位置,同时Mongo DB市场占有率已上升到第五位,说明大数据前景好,越来越多的企业使用Mongo DB,迁移Oracle数据至MongoDB也很迫切,但是当前从Oracle数据库迁移至Mongo DB还存在以下不足:
1、需要人工手动导出Oracle数据,然后传输至Mongo DB服务器,再从服器导入至Mongo DB数据库中,过程繁琐,耗时。
2、Oracle数据库中表(TABLE)与Mongo DB中集合(COLLECTION)涉及的模型转换关系复杂,需要人工甄别,效率低下。
因此,设计一种便捷的模型转换及无需人工干预的迁移方法,是非常有必要的。
发明内容
本发明要解决的技术问题是提供一种基于Mongify迁移Oracle数据至Mongo DB数据库的方法,解决上述问题。
本发明为解决上述技术问题而采用的技术方案是提供一种基于Mongify迁移Oracle数据至Mongo DB数据库的方法,包括以下步骤:S1:设置Oracle数据库及Mongo DB数据库的配置信息,并在Oracle数据库与Mongo DB数据库间建立通信连接;S2:根据Oracle数据库表结构模型特征获得需转换至Mongo DB数据库集合的模型特征,并根据Mongo DB数据库集合模型特征获得概念模型样板;S3:使用Mongify检查Oracle数据库与Mongo DB数据库概念模型样板的映射关系,并将概念模型样板转换为具体的物理模型;S4:依据转换的物理模型的映射关系进行自动化数据迁移。
进一步的,所述步骤S2具体包括:S21:将Oracle数据库表结构模型与Mongo DB数据库集合结构模型进行映射,所述映射关系包括:一对一映射关系、一对多映射关系和多对多映射关系;S22:根据映射关系将表结构模型和集合结构模型加载至概念模型样板上。
进一步的,所述步骤S21中Oracle数据库表结构模型与Mongo DB数据库集合结构模型进行映射时的对应关系如下:表对应集合,行对应文档,列对应域,表连接对应嵌入文档,聚合关系对应聚合管道,连接关系对应引用或者嵌套。
进一步的,所述步骤S22加载表结构模型和集合结构模型的过程如下:当映射关系为一对一映射关系时,将表结构和集合结构一对一的加载在概念模型样板上;当映射关系为一对多映射关系时,将表结构由一个分拆为多个并且对应多个集合结构,加载在概念模型样板上;当映射关系为多对多映射关系时,将多对多映射关系分解为一对多映射关系和多对一映射关系:一对多映射关系:将表结构由一个分拆为多个并且对应多个集合结构,加载在概念模型样板上;多对一映射关系:将表结构由多个集成为一个并且对应一个集合结构下的多个文档,加载在概念模型样板上。
进一步的,所述Mongo DB数据库集合的组成包括主键、文档和可选的嵌入文档;当映射关系为一对一时,主键和表外键一一对应,在转换至Mongo DB时需要进行引用;当映射关系为一对多时,一个主键对应多张表外键,在转换至Mongo DB时需要进行嵌入;当映射关系为多对多时,多个主键与多张表外键互相映射,在转换至Mongo DB时需要进行嵌入。
进一步的,所述步骤S3具体包括:S41:依据概念模型样板映射关系生成Mongify可识别的配置文件;S42:使用Mongify算法对配置文件进行封装,使Oracle数据类型转换为Mongo DB支持的数据类型;S43:根据封装后的配置文件得到数据迁移的物理模型;
进一步的,所述步骤S4具体包括:S51:根据物理模型映射关系进行集合迁移,并根据映射关系写入嵌入文档;S52:检查迁移数据并与模型转换的数据进行对比,返回对比一致的检查标记,确认迁移完成。
本发明对比现有技术有如下的有益效果:本发明提供的基于Mongify迁移Oracle数据至Mongo DB数据库的方法,采用科学的模型转换,形成完整、有效的数据模型,可以控制迁移到Mongo DB数据库的数据结构,简化表数据由Oracle数据库迁移到Mongo DB数据库中的操作,降低了数据迁移的复杂度,不需要人工干预,缩短了迁移的时间,提升了处理效率,大幅度提高了处理性能。
附图说明
图1为本发明实施例中基于Mongify迁移Oracle数据至Mongo DB数据库的方法流程图;
图2为本发明实施例中Oracle数据库的ER模型示例图;
图3为本发明实施例的数据迁移完成示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的描述。
图1为本发明实施例中基于Mongify迁移Oracle数据至Mongo DB数据库的方法流程图。
请参见图1,本发明实施例的基于Mongify迁移Oracle数据至Mongo DB数据库的方法,包括以下步骤:
S1:设置Oracle数据库及Mongo DB数据库的配置信息,并在Oracle数据库与MongoDB数据库间建立通信连接;
S2:根据Oracle数据库表结构模型特征获得需转换至Mongo DB数据库集合的模型特征,并根据Mongo DB数据库集合模型特征获得概念模型样板;
S3:使用Mongify检查Oracle数据库与Mongo DB数据库概念模型样板映射关系,并将概念模型样板转换为具体的物理模型;
S4:依据转换的物理模型的映射关系进行自动化的数据迁移。
请参见图2,本发明实施例的基于Mongify迁移Oracle数据至Mongo DB数据库的方法,Oracle数据库采用基础ER模型图。Oracle数据库处理多个表的结果方式为多张表进行连接,最后进行过滤得到的结果,该方式如果涉及到的表过多且每张表的数据量非常大,处理数据的速度性能则会变得低下。而Mongo DB的嵌入式文档结构拥有非常灵活的数据处理能力,可将多张表相关联的字段进行嵌入,大大提高了数据处理能力,避免不必要的IO操作。使用Mongo DB的目的是为了解决类似的数据大量增长的情况,并同时保持良好的数据库及应用性能。
具体的,本发明实施例的基于Mongify迁移Oracle数据至Mongo DB数据库的方法,步骤S2具体包括:
S21:将Oracle数据库表结构模型与Mongo DB数据库集合结构模型进行映射,所述映射关系包括:一对一映射关系、一对多映射关系和多对多映射关系;
S22:根据映射关系将表结构模型和集合结构模型加载至概念模型样板上。
在Mongo DB数据库中,集合的组成为主键及文档,外加可选的嵌入文档,具体算法如下:
Collection(1/N)=Primary Key(1/N)+Docuemnts(1/N)+[Embedding Documents(1/N)]
通过Mongo DB的官方转换关系,可得对应关系表如下表1所示:
Oracle数据库 | Mongo DB数据库 |
表(Table) | 集合(Collection) |
行(Row) | 文档(Document) |
列(Column) | 域(Field) |
表连接(Table Joins) | 嵌入文档(Embedded Documents) |
聚合关系(Aggregation) | 聚合管道(Aggregation Pipeline) |
关系(Relationship) | 引用(Reference)或嵌套(Embedding) |
表1Oracle数据库与Mongo DB数据库对应关系表。
根据映射关系将表结构模型和集合结构模型加载至概念模型样板上,当映射关系为一对一映射关系时,将表结构和集合结构一对一的加载在概念模型样板上;当映射关系为一对多映射关系时,将表结构由一个分拆为多个并且对应多个集合结构,加载在概念模型样板上;当映射关系为多对多映射关系时,将多对多映射关系分解为一对多映射关系和多对一映射关系:一对多映射关系:将表结构由一个分拆为多个并且对应多个集合结构,加载在概念模型样板上;多对一映射关系:将表结构由多个集成为一个并且对应一个集合结构下的多个文档,加载在概念模型样板上。
当映射关系为一对一时,主键和表外键一一对应,在转换至Mongo DB时需要进行引用;当映射关系为一对多时,一个主键对应多张表外键,在转换至Mongo DB时需要进行嵌入;当映射关系为多对多时,多个主键与多张表外键互相映射,在转换至Mongo DB时需要进行嵌入。通过Oracle与Mongo DB的映射关系及Mongo DB集合组成算法关系,从而得到Oracle数据库中的哪些表在Mongo DB需要使用嵌套(Embedded),又有哪些表不需要嵌套,如果是单独迁移至Mongo DB下是否启用引用(References)关系的概念模型样板。
确认概念模型样板后,接下来就确认Oracle的数据类型到Mongo DB识别的数据类型的转换,具体的数据类型转换关系如下表2所示:
Oracle数据库 | Mongo DB数据库 |
Primary key(主键) | Key(主键) |
Integer | Integer |
Float | String |
Decimal | String |
Sstring | String |
Text | String |
Datetime | ISO time |
Date | ISO time |
Timestamps | ISO time |
Time | ISO time |
Binary | String |
Boolean | True/False |
表2Oracle数据库与Mongo DB数据库数据转换关系表。
具体的,本发明实施例的基于Mongify迁移Oracle数据至Mongo DB数据库的方法,步骤S3具体包括:
S41:依据概念模型样板映射关系生成Mongify可识别的配置文件;无报错则配置文件生成无误;
S42:使用Mongify算法对配置文件进行封装,并在内部根据数据类型映射关系算法将Oracle数据类型转变为Mongo DB识别的数据类型;
S43:根据封装后的配置文件得到数据迁移的物理模型。
确认物理模型后根据物理模型映射关系进行集合迁移,并根据映射关系写入嵌入文档;检查迁移数据并与模型转换的数据进行对比,返回对比一致的检查标记,确认迁移完成。
如图3所示,采用基于Mongify迁移Oracle数据至Mongo DB数据库的方法完成数据迁移后的示意图,可以看到对应的数据类型都按照预先设置的映射关系进行了转换,达到了迁移Oracle数据至Mongo DB的预期目标。
综上所述,本发明实施例的基于Mongify迁移Oracle数据至Mongo DB数据库的方法,采用科学的模型转换,形成完整、有效的数据模型,可以控制迁移到Mongo DB数据库的数据结构,简化表数据由Oracle数据库迁移到Mongo DB数据库中的操作,降低了数据迁移的复杂度,不需要人工干预,缩短了迁移的时间,提升了处理效率,大幅度提高了处理性能。
虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,当可作些许的修改和完善,因此本发明的保护范围当以权利要求书所界定的为准。
Claims (7)
1.一种基于Mongify迁移Oracle数据至Mongo DB数据库的方法,其特征在于,包括以下步骤:
S1:设置Oracle数据库及Mongo DB数据库的配置信息,并在Oracle数据库与Mongo DB数据库间建立通信连接;
S2:根据Oracle数据库表结构模型特征获得需转换至Mongo DB数据库集合的模型特征,并根据Mongo DB数据库集合模型特征获得概念模型样板;
S3:使用Mongify检查Oracle数据库与Mongo DB数据库概念模型样板的映射关系,并将概念模型样板转换为具体的物理模型;
S4:依据转换后物理模型的映射关系进行自动化数据迁移。
2.如权利要求1所述的基于Mongify迁移Oracle数据至Mongo DB数据库的方法,其特征在于,所述步骤S2具体包括:
S21:将Oracle数据库表结构模型与Mongo DB数据库集合结构模型进行映射,所述映射关系包括:一对一映射关系、一对多映射关系和多对多映射关系;
S22:根据映射关系将表结构模型和集合结构模型加载至概念模型样板上。
3.如权利要求2所述的基于Mongify迁移Oracle数据至Mongo DB数据库的方法,其特征在于,所述步骤S21中Oracle数据库表结构模型与Mongo DB数据库集合结构模型进行映射时的对应关系如下:表对应集合,行对应文档,列对应域,表连接对应嵌入文档,聚合关系对应聚合管道,连接关系对应引用或者嵌套。
4.如权利要求2所述的基于Mongify迁移Oracle数据至Mongo DB数据库的方法,其特征在于,所述步骤S22加载表结构模型和集合结构模型的过程如下:
当映射关系为一对一映射关系时,将表结构和集合结构一对一的加载在概念模型样板上;
当映射关系为一对多映射关系时,将表结构由一个分拆为多个并且对应多个集合结构,加载在概念模型样板上;
当映射关系为多对多映射关系时,将多对多映射关系分解为一对多映射关系和多对一映射关系:一对多映射关系:将表结构由一个分拆为多个并且对应多个集合结构,加载在概念模型样板上;多对一映射关系:将表结构由多个集成为一个并且对应一个集合结构下的多个文档,加载在概念模型样板上。
5.如权利要求4所述的基于Mongify迁移Oracle数据至Mongo DB数据库的方法,其特征在于,所述Mongo DB数据库集合的组成包括主键、文档和可选的嵌入文档;当映射关系为一对一时,主键和表外键一一对应,在转换至Mongo DB时进行引用;当映射关系为一对多时,一个主键对应多张表外键,在转换至Mongo DB时进行嵌入;当映射关系为多对多时,多个主键与多张表外键互相映射,在转换至Mongo DB时进行嵌入。
6.如权利要求1所述的基于Mongify迁移Oracle数据至Mongo DB数据库的方法,其特征在于,所述步骤S3具体包括:
S31:依据概念模型样板映射关系生成Mongify可识别的配置文件;
S32:使用Mongify算法对配置文件进行封装,使Oracle数据类型转换为Mongo DB支持的数据类型;
S33:根据封装后的配置文件得到数据迁移的物理模型。
7.如权利要求1所述的基于Mongify迁移Oracle数据至Mongo DB数据库的方法,其特征在于,所述步骤S4具体包括:
S41:根据物理模型映射关系进行集合迁移,并根据映射关系写入嵌入文档;
S42:检查迁移数据并与模型转换的数据进行对比,返回对比一致的检查标记,确认迁移完成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911129051.3A CN110851425B (zh) | 2019-11-18 | 2019-11-18 | 基于Mongify迁移Oracle数据至Mongo DB数据库的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911129051.3A CN110851425B (zh) | 2019-11-18 | 2019-11-18 | 基于Mongify迁移Oracle数据至Mongo DB数据库的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110851425A true CN110851425A (zh) | 2020-02-28 |
CN110851425B CN110851425B (zh) | 2023-05-26 |
Family
ID=69602031
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911129051.3A Active CN110851425B (zh) | 2019-11-18 | 2019-11-18 | 基于Mongify迁移Oracle数据至Mongo DB数据库的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110851425B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230401192A1 (en) * | 2022-06-13 | 2023-12-14 | The Toronto-Dominion Bank | Systems and methods for optimizing data processing in a distributed computing environment |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150006490A1 (en) * | 2013-06-28 | 2015-01-01 | Makesh Balasubramanian | Universe migration from one database to another |
CN106095991A (zh) * | 2016-06-21 | 2016-11-09 | 南京大学 | 一种自动生成从关系型数据库向MongoDB数据库数据迁移的代码的方法 |
CN106126543A (zh) * | 2016-06-15 | 2016-11-16 | 清华大学 | 一种关系型数据库到MongoDB的模型转换和数据迁移方法 |
-
2019
- 2019-11-18 CN CN201911129051.3A patent/CN110851425B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150006490A1 (en) * | 2013-06-28 | 2015-01-01 | Makesh Balasubramanian | Universe migration from one database to another |
CN106126543A (zh) * | 2016-06-15 | 2016-11-16 | 清华大学 | 一种关系型数据库到MongoDB的模型转换和数据迁移方法 |
CN106095991A (zh) * | 2016-06-21 | 2016-11-09 | 南京大学 | 一种自动生成从关系型数据库向MongoDB数据库数据迁移的代码的方法 |
Non-Patent Citations (1)
Title |
---|
赵艳妮;郭华磊;: "一种RDBMS到MongoDB数据迁移方法" * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230401192A1 (en) * | 2022-06-13 | 2023-12-14 | The Toronto-Dominion Bank | Systems and methods for optimizing data processing in a distributed computing environment |
Also Published As
Publication number | Publication date |
---|---|
CN110851425B (zh) | 2023-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10756759B2 (en) | Column domain dictionary compression | |
CN103995854A (zh) | 一种设备跨版本升级方法和装置 | |
CN102752372A (zh) | 一种基于文件的数据库同步方法 | |
US20150293946A1 (en) | Cross model datum access with semantic preservation for universal database | |
CN105574021A (zh) | 一种数据库的数据压缩方法和装置 | |
CN110083605A (zh) | 业务表查询方法、装置、服务器及计算机可读存储介质 | |
CN110389967B (zh) | 数据存储方法、装置、服务器及存储介质 | |
CN104216961A (zh) | 一种数据处理方法和装置 | |
CN103399934A (zh) | 一种表单数据的传输与存储方法 | |
CN110851425A (zh) | 基于Mongify迁移Oracle数据至Mongo DB数据库的方法 | |
CN102426612A (zh) | 条件对象查询方法及系统 | |
CN106919607B (zh) | 一种数据访问方法、装置及系统 | |
CN108509447A (zh) | 数据处理方法及装置 | |
CN110765298B (zh) | 矢量数据几何属性解耦的瓦片编码方法 | |
CN112069177A (zh) | 一种数据查询方法、装置、计算机设备及可读存储介质 | |
CN111177234A (zh) | 一种文档型数据文件快速处理装置及方法 | |
CN113779941B (zh) | 一种可配置的动态报表的生成装置、系统及方法 | |
CN110515993B (zh) | 税务数据转换方法及系统 | |
CN104657426B (zh) | 一种基于统一视图的行列混合数据存储模型的建立方法 | |
CN104572908A (zh) | 一种基于地理编码及动态索引的智能检索方法 | |
CN103198068A (zh) | 一种动态信息数据库在配电自动化系统中的应用方法 | |
CN113645323A (zh) | 一种高并发状态下防止mac地址重复写入的方法、单元和系统 | |
CN113093998A (zh) | 一种基于地理散列的空间分布式存储优化方法 | |
CN105488147A (zh) | 一种基于sql模板的持久化方法 | |
CN107844639B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |