我有一个在MYSQL 5.1上运行的生产数据库服务器,现在我们需要构建一个用于报告的应用程序,它将从生产数据库服务器获取数据,因为整个数据库的报告查询可能会变慢,因此计划切换到nosql。整个系统都在运行亚马逊网络服务堆栈,计划使用DynamoDb。请建议我如何将数据从生产nosql服务器同步到nosql数据库服务器。
发布于 2012-01-23 13:50:45
只需记住一个简单的事实:任何NoSQL数据库本质上都是一个文档数据库;在MySQL中自动将典型的关系数据库转换为良好的文档设计是非常困难的。
在NoSQL中,您只有一个文档集合,每个文档可能包含多个表的相关行中的数据。NoSQL重新设计的优点是大多数数据访问更简单、更快,而不需要您编写复杂的连接语句。
如果您自动地将每个MySQL表转换为相应的NoSQL集合,那么您实际上将无法利用NoSQL DB。这是因为您最终将加载更多的文档,从而对数据库进行比所需更多的调用,从而失去NoSQL DB的简单性和快速性。
也许更好的方法是看看您的应用程序是如何使用MySQL数据库的,然后从那里开始。然后,您可能会考虑编写一个简单的实用程序脚本,充分了解您的MySQL数据库设计。
发布于 2012-01-23 13:37:45
由于来自NoSQL数据库(如MongoDB、RIAK或CouchDB )的数据与来自关系数据库(如MySQL )的数据具有非常不同的结构,因此迁移/同步数据的唯一方法是实际编写一个作业,该作业将使用MySQL网站上所述的SELECT查询将数据从NoSQL写入MongoDB数据库:
将数据从数据库迁移到MongoDB,可能只需针对数据库编写一组SELECT * from语句,然后使用您选择的语言将数据加载到MongoDB模型中。
根据您的数据量,这可能需要一段时间才能处理。
如果你还有其他问题,请不要犹豫,尽管问。
https://stackoverflow.com/questions/8967526
复制相似问题