将数据从关系数据库迁移到NoSQL

问题描述 投票:5回答:3

是否有可能/有工具/最佳实践等将数据从关系数据库迁移到NoSQL格式。

我有一个使用Hibernate ORM的JEE6应用程序继续使用MySQL但现在我们希望转向NoSQL解决方案,但需要将现有数据带到我们这里

谢谢你

database java-ee nosql relational-database java-ee-6
3个回答
6
投票

有一些工具可以帮助迁移,但最终,MySQL是一个关系数据库,它与noSQL数据库有着完全不同的结构。

最后,您几乎总是必须执行this article中所述的这四个步骤(指mongoDB,您没有指定,但它适用于任何):

1.了解MongoDB。下载它,阅读教程,尝试一些玩具项目。

2.考虑如何在其文档存储中表示您的模型。

3.将数据从数据库迁移到MongoDB,可能只需向数据库写一堆SELECT * FROM语句,然后使用您选择的语言将数据加载到MongoDB模型中。

4.重写应用程序代码,通过insert()或find()等语句查询MongoDB。


1
投票

为了简化一些事情,Oracle数据库可以完全掌握数据库中存储的内容。 Oracle或任何RDBMS都可以通过维护表中存储的数据块之间的关系来实现这一点。

另一方面,基于文档的数据库主要存储数据在系统中的消耗方式。它使用Key-Value对来实现这一点,其中键在其中播放某些关键变量。

这将取决于要迁移的系统的复杂性,卷,要提供的功能等。虽然有多种方法可以从RDBMS迁移到基于json的数据库,但标准方法将涉及在现有SQL DB上构建视图和分阶段迁移。

当然,这种迁移的基本过程是从Schema重新设计开始作为第一步。在诸如Mongo JSON或BSON的文档结构中,大多数父子关系可以被容纳到单个结构(或文档)中。例如,可以组合Person_ID,Car_Ownership_ID以生成列出汽车所有者的单个json文档。

声音模式设计过程将保持在考虑的某些目标中,同时在RDBMS中对完全规范化的数据库进行非规范化。作为第二步,大多数JOIN需要组合成交织集合,以便于访问,但某些外部联接除外。

一旦Schema准备就绪,可以使用ETL过程或替代脚本来提取,转换和加载具有RDBMS中数据副本的较新原理图。


0
投票

我从Mongo大学https://university.mongodb.com/做了M110JS“MongoDB for Node.js Developers”课程,并且可以全心全意地推荐它(它也是免费的)。

它确实涵盖了(我认为只有一周)SQL和NOSQL之间的差异,比如不使用外键而是嵌入文档,冒着重复的风险以及如何处理它。

它只是经常开始,所以这只是一个长期的方法。

© www.soinside.com 2019 - 2024. All rights reserved.