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