什么时候不用卡桑德拉?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (33)

Twitter、Digg、Facebook等都在使用它。

什么时候才有意义:

  • 用卡Cassandra
  • 不用Cassandra
  • 用RDMS代替Cassandra

提问于
用户回答回答于

在评估分布式数据系统时,必须考虑CAP定理--可以选择以下两种方法:一致性、可用性和分区容限。

Cassandra是一个支持最终一致性的可用的、允许分区的系统。

用户回答回答于

由于Cassandra是基于NoSQL家族数据库的,必须了解为什么要使用NoSQL数据库。

为什么要使用NoSQL

在RDBMS中,选择是相当容易的,因为MySQL、Oracle、MSSQL、PostgreSQL等数据库都提供了几乎相同的面向ACID属性的解决方案。当涉及到NoSQL时,决策变得困难,因为每个NoSQL数据库都提供了不同的解决方案,必须了解哪一个最适合您的应用程序/系统需求。例如,MongoDB适用于系统需要无模式文档存储的用例。HBASE可能适合搜索引擎,分析日志数据,或任何需要扫描大型二维无连接表的地方。REDIS的建立是为了提供内存中对各种数据结构,如树、队列、链接列表等的搜索,可以很好地适应实时主板、发布子系统的要求。

何时使用Cassandra

作为NoSQL家族的一员,Cassandra为问题提供了解决方案,需求是拥有非常重的写入系统,并且希望在存储的数据之上拥有响应性很强的报告系统。考虑Web分析的用例,其中为每个请求存储日志数据,并且您希望围绕它构建分析平台,以便实时地按小时、浏览器、IP等方式计算命中次数。

什么时候使用RDMS而不是Cassandra

Cassandra基于NoSQL数据库,不提供ACID和关系数据属性。如果对ACID属性(例如金融数据)有强烈的要求,那么Cassandra在这种情况下是不合适的。显然,可以利用它来完成工作,但是最终将编写大量的应用程序代码来处理ACID属性,并且会很难按时上市。

扫码关注云+社区