将Mysql转换为无sql数据库

时间:2012-01-23 05:26:33

标签: mysql database nosql

我有一个在MYSQL 5.1上运行的生产数据库服务器,现在我们需要构建一个用于报告的应用程序,它将从生产数据库服务器获取数据,因为通过整个数据库报告查询可能会减慢,因此计划切换到nosql 。整个系统正在运行aws堆栈规划以使用DynamoDb。请建议我将生产nosql服务器中的数据同步到nosql数据库服务器的方法。

2 个答案:

答案 0 :(得分:5)

记住一个简单的事实,即任何NoSQL数据库本质上都是一个文档数据库;将MySQL中的典型关系数据库自动转换为良好的文档设计真的很难。

在NoSQL中,您只有一个文档集合,每个文档可能包含多个表中相关行的数据。 NoSQL重新设计的优势在于,大多数数据访问都更简单,更快速,而无需编写复杂的连接语句。

如果你自动将每个MySQL表转换为相应的NoSQL集合,你真的不会利用NoSQL DB。这是因为您最终会加载更多文档,因此会对数据库进行多次调用,从而失去NoSQL DB的简单性和快速性。

或许更好的方法是查看应用程序如何使用MySQL数据库并从那里开始。然后,您可以考虑编写一个简单的实用程序脚本脚本,完全了解您的MySQL数据库设计。

答案 1 :(得分:4)

由于像MongoDB,RIAK或CouchDB这样的NoSQL数据库的数据与MySQL之类的关系数据库的结构非常不同,迁移/同步数据的唯一方法是实际编写一个可以从MySQL写入数据的作业使用MongoDB网站上所述的SELECT查询到NoSQL数据库:

  

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

根据您的数据量,这可能需要一段时间才能处理。

如果您有任何其他问题,请不要犹豫。