2011-03-15 124 views
3

在工作中,我们正在考虑从Oracle迁移到NoSQL数据库,因此我必须对Cassandra和MongoDB进行一些测试。我必须将大量表格移动到NoSQL数据库,这个想法是让这两个平台之间的数据同步。将数据从Oracle迁移到Cassandra和/或MongoDB

因此,我创建一个简单的程序,使选择到Oracle DB中,并插入到mongo中。我的一些同事指出,也许有一种更容易(更专业)的方式来做到这一点。

以前有人有过这个问题吗?你如何解决它?

回答

8

如果您的目标是将现有结构从Oracle复制到NoSQL数据库,那么您应该首先重新考虑您的移动。通过这样做,您将失去从非关系数据存储中看到的任何好处。

好的第一步是长时间观察现有结构并确定如何修改它以影响对应用程序的正面影响。另外,同时考虑一个混合系统。 Cassandra很适合很多事情,但是如果您需要一个关系系统并且已经使用了很多Oracle功能,那么对于大部分数据库来说,留在Oracle中可能很有意义,同时移动需要频繁写入的部分,并且会受益于Mongo或Cassandra的不同结构。

一旦你做出关于你的结构的决定,我会建议编写脚本/程序/添加一个模块到你现有的应用程序,以新格式写入数据到新的数据存储。这将使您对流程中的每一步都有最细致的控制,这在整个系统范围的体系结构变化中是我想要的。

1

您也可以考虑使用Hadoop生态系统的组件来执行此类(ETL)任务。为此,您需要按照需求对Cassandra DB进行建模。 步骤可能是将您的oracle表数据迁移到HDFS(最好使用SQOOP),然后编写Map-Reduce作业来转换此数据并插入到Cassandra数据模型中。