为大型遗留系统从RDBMS迁移到NOSQL

时间:2011-11-01 07:50:30

标签: nosql rdbms

主题:使用NOSQL将非常复杂的旧式客户端 - 服务器应用程序迁移到支持SAS的Web版本

我们计划将我们的几个系统从RDBMS迁移到NOSQL产品。我们正处于决定是否选择完整NOSQL还是混合实施的阶段?

大型系统当前系统的表计数为数千,表之间存在复杂关系,许多触发器,存储过程和约束。我们知道,迁移不是很容易,因为许多特定于数据库或特定于SQL的函数,分组,聚合函数,复杂连接,子/内部查询,限制,排序(排序依据)以及未使用的内容。 。!所以这很难过。

数据可以在数百TB中增长并且将继续增长,我们需要遵循以下事项:

  • 数据可靠性
  • 没有单点故障,ZERO DOWNTIME
  • 如上所述,为系统替换RDBMS的最佳功能集。
  • READ,WRITES和UPDATES的性能更快。

我遇到了一个与NOSQL竞争的RDBMS,这是VOLTDB,你有没有尝试过?

我认为Neo4j,Cassandra或HBase可以完成这项工作,我已经读过它会在应用程序级别增加多行代码以替换SQL但是我们可以使用它但是在实现SQL / RDBMS之类的结果它应该不会降低性能,因为它是我们的KSF(关键成功因素),而NO单点故障是Hygine因子。 :)

轻松添加节点以管理可扩展性也很有帮助。

考虑在WEB上迁移具有数十万用户的ERP,CRM或EMR等系统。

提前感谢你的投入很有价值。

1 个答案:

答案 0 :(得分:6)

  • 数据可靠性

使用Erlang编写的NoSQL(例如Riak,CouchDB),因为Erlang OTP为许多年提供可靠性

  • 没有单点故障,ZERO DOWNTIME

SQL没有停机时间没有。

通过分布式节点(存在于不同电网中)的定额读/写,不会轻易实现单点故障

  • 如上所述,为系统替换RDBMS的最佳功能集

No NoSQL功能集将取代ACID事务。 VoltDB不是NoSQL,它是内存 DB中的SQL ,因此请准备好你的TB。

大多数现代NoSQL解决方案将允许您执行可以使用RDBMS执行的大多数仓储任务。但是,您将支付没有ACID和痛苦的聚合。再看看Riak和CouchDB,因为它们本质上也是容错的,所以至少你不必担心。

  • READ,WRITES和UPDATES的性能更快

比什么?如果进行复杂的聚合,SQL DB将比任何NoSQL快99.99%。在给定正确的缓存量的情况下,NoSQL的写入速度非常快,并且取决于您的仲裁(在一次写入中有多少节点应该返回成功)。例如,Riak使用Google的LevelDB可插拔后端,这对写入来说非常疯狂。

说完了这一切。除非你真的需要,否则不要迁移到NoSQL。如果你真的需要,首先从至少重要(最好是小)组件开始,因为这是一个心智转变,并且需要重新开发。