从SQL转移到NoSQL和哪个DB?

Nik*_*hep 7 nosql

我们最近在当前的SQL Server数据库中遇到了与性能相关的主要问题.我们的应用程序在单个表上非常繁重,我们进行了一些分析,大约90%的数据库数据都在一个表中.我们在此表上运行了大量查询以用于分析目的,我们现在遇到了主要的性能问题,即使添加单个列有时会减慢我们当前的Sp.我们的大多数团队都是开发人员,我们无法访问dba,这可能有助于重新调整当前数据库并使工作更快.

这些约束的原因我们正考虑将应用程序的这一部分移动到NoSQL数据库.我的问题是:

  1. 如果这是我们前进的正确方向?正如我们期待这张桌子呈指数级增长.随着大量分析在其上运行.
  2. 哪个是CouchDB,Cassandra,MongoDB的最佳选择?强调可扩展性和性能
  3. 对于类似于SQL的实时分析和支持,如何在NoSQL中工作,我们可以通过它来查看存储的当前数据吗?我曾经读过有关Hadoop的HIVE可以用来编写和检索数据,因为来自NoSQL db的SQL是对的吗?
  4. 在从SQL转移到NoSQL的过程中,我们可能会失去什么?

Des*_*hou 7

对你的问题:

1 ..如果这是正确的方向我们正在前进?正如我们期待这张桌子呈指数级增长.随着大量分析在其上运行.

是的,如果您以预期的方式使用它们,那么大多数noSQL系统都是专门为解决可扩展性和可用性而开发的.

2 ..对于我们CouchDB,Cassandra,MongoDB来说哪个是最佳选择?强调可扩展性和性能

这完全取决于您的数据是什么样的以及您将如何使用它.您提到的noSQL数据库实现并且行为彼此非常不同,请参阅此链接以获得更详细的概述,比较您提到的几个.比较noSQL解决方案

3 ..对于类似于SQL的实时分析和支持,NoSQL的工作原理是什么,我们可以通过它查看存储的当前数据?我曾经读过有关Hadoop的HIVE可以用来编写和检索数据,因为来自NoSQL db的SQL是对的吗?

这取决于您使用的系统,因为某些noSQL db不支持范围查询或连接,您可以查看的内容和查看速度受限制.

4 ..从SQL转移到NoSQL时,我们会失去什么?

noSQL有两个主要考虑因素:

查询/结构: NoSQL意味着没有SQL.如果您的系统实际上需要结构化和复杂的查询,但你与这些很酷的新的解决方案(尤其是关键值存储,这基本上是一个巨大的哈希表),你可能很快就会发现自己在中间的人去重新实现一个外行,设计不合理的RDBMS,包含所有原始问题.

一致性:如果您选择最终一致的系统进行水平扩展,那么您将不得不接受过时的数据,这可能对某些应用程序(论坛?)无害,或者在某些其他系统(银行)中可怕.

  • 非常好的答案,我唯一的反对意见是noSQL意味着不只是SQL而不是没有SQL (3认同)