【发布时间】:2014-04-10 20:00:01
【问题描述】:
在工作中,我们正在考虑从 Oracle 迁移到 NoSQL 数据库,所以我必须对 Cassandra 和 MongoDB 进行一些测试。我必须将大量表移动到 NoSQL 数据库,其想法是在这两个平台之间同步数据。
所以我创建了一个简单的过程,将选择放入 Oracle DB 并插入到 mongo。我的一些同事指出,也许有一种更简单(更专业)的方法来做到这一点。
以前有人遇到过这个问题吗?你是怎么解决的?
【问题讨论】:
在工作中,我们正在考虑从 Oracle 迁移到 NoSQL 数据库,所以我必须对 Cassandra 和 MongoDB 进行一些测试。我必须将大量表移动到 NoSQL 数据库,其想法是在这两个平台之间同步数据。
所以我创建了一个简单的过程,将选择放入 Oracle DB 并插入到 mongo。我的一些同事指出,也许有一种更简单(更专业)的方法来做到这一点。
以前有人遇到过这个问题吗?你是怎么解决的?
【问题讨论】:
如果您的目标是将现有结构从 Oracle 复制到 NoSQL 数据库,那么您可能应该首先重新考虑您的举措。这样一来,您就失去了使用非关系数据存储所带来的任何好处。
良好的第一步是仔细查看您现有的结构,并确定如何对其进行修改以对您的应用程序产生积极影响。此外,同时考虑一个混合系统。 Cassandra 在很多事情上都很棒,但是如果您需要一个关系系统并且已经在使用大量 Oracle 功能,那么您的大部分数据库保留在 Oracle 中可能是有意义的,同时移动需要频繁写入的部分并且会受益于与 Mongo 或 Cassandra 不同的结构。
一旦您决定了您的结构,我建议您编写脚本/程序/将一个模块添加到您现有的应用程序中,以将新格式的数据写入新的数据存储。这将使您能够对流程中的每一步进行最细粒度的控制,这是我想要的大型系统范围的架构更改。
【讨论】:
您还可以考虑使用 Hadoop 生态系统的组件来执行此类 (ETL) 任务。为此,您需要根据要求对 Cassandra DB 进行建模。 步骤可能是将您的 oracle 表数据迁移到 HDFS(最好使用 SQOOP),然后编写 Map-Reduce 作业来转换这些数据并插入到 Cassandra 数据模型中。
【讨论】: