技术开发 频道

八种主流NoSQL数据库系统对比

  7. Cassandra

  ●所用语言: Java

  ●特点:对大型表格和 Dynamo支持得最好

  ●使用许可: Apache

  ●协议: Custom, binary (节约型)

  ●可调节的分发及复制(N, R, W)

  ●支持以某个范围的键值通过列查询

  ●类似大表格的功能:列,某个特性的列集合

  ●写操作比读操作更快

  ●基于 Apache分布式平台尽可能地 Map/reduce

  ●我承认对 Cassandra有偏见,一部分是因为它本身的臃肿和复杂性,也因为 Java的问题(配置,出现异常,等等)

  非常好的应用场景:当使用写操作多过读操作(记录日志)如果每个系统组建都必须用 Java编写(没有人因为选用 Apache的软件被解雇)

  例如:银行业,金融业(虽然对于金融交易不是必须的,但这些产业对数据库的要求会比它们更大)写比读更快,所以一个自然的特性就是实时数据分析

  8. HBase

  (配合 ghshephard使用)

  ●所用语言: Java

  ●特点:支持数十亿行X上百万列

  ●使用许可: Apache

  ●协议:HTTP/REST (支持 Thrift,见编注4)

  ●在 BigTable之后建模

  ●采用分布式架构 Map/reduce

  ●对实时查询进行优化

  ●高性能 Thrift网关

  ●通过在server端扫描及过滤实现对查询操作预判

  ●支持 XML, Protobuf, 和binary的HTTP

  ●Cascading, hive, and pig source and sink modules

  ●基于 Jruby( JIRB)的shell

  ●对配置改变和较小的升级都会重新回滚

  ●不会出现单点故障

  ●堪比MySQL的随机访问性能

  非常好的应用场景:适用于偏好BigTable:)并且需要对大数据进行随机、实时访问的场合。

  例如: Facebook消息数据库(更多通用的用例即将出现)

  编注4:Thrift 是一种接口定义语言,为多种其他语言提供定义和创建服务,由Facebook开发并开源。

  当然,所有的系统都不只具有上面列出的这些特性。这里我仅仅根据自己的观点列出一些我认为的重要特性。与此同时,技术进步是飞速的,所以上述的内容肯定需要不断更新。我会尽我所能地更新这个列表。

0
相关文章