类似于谷歌大表(Google' Gigtable)的开源数据库
想到大数据,你第一个会想到Google's Bigtable,其次就是根据其思想设计的开源数据库HBase。除此之外,你还知道其它的类似的开源数据库呢?我简要描述了其它的开源数据库,仅供了解。</span>
HBase
简述
- · 编程语言: Java
- · 主要关注点: 上亿级的行百万级的列数据 Billions of rows X millions of columns
- · 许可证(License): Apache
- · 协议(Protocol): HTTP/REST (也有 Thrift)
- · 概要:模型化谷歌大表
- 使用Hadoop HDFS作为数据存储
- Hadoop Map/reduce 框架
- 通过服务器端的扫描和过滤来实现查询术语推送
- 实时查询优化
- 高性能的Thrift网管
- HTTP 支持XML, Protobuf, 和二进制(binary)
- 基于Jruby shell
- 配置文件的改动和较小的升级都会滚动重启
- 能够像MySQL一样随机访问系统的性能
- 一个集群可以由几个不同类型的节点组成
最佳使用情形: 在大数据集上,Hadoop可能依旧是最佳的方式来运行Map/Reduce 任务,使用HDFS作为数据存储。
使用场景: 搜索引擎,分析日志数据,也可以用在任何需要扫描大且少量关联的二位表。
Cassandra
简述
- · 编程语言 : Java
- · 主要关注点 : 最佳的大数据和Dynamo
- · 许可证(License) : Apache
- · 协议(Protocol) : Thrift 和 一般二进制 CQL3
- · 概要:为分布式和重复(replication)而调优折中(N, R, W)
- 通过列和区间关键字查询 (需要在你需要搜索的字段中建立标记体(indices))
- 大表的特性:列 , 列家族(column families)
- 能够被用来作为一个分布式哈希表,使用“像SQL”一样的语言,CQL(但是不能够JOIN)
- 数据可以设置过期(在INSERT中设置)
- 写能够比读更快(当读是磁盘绑定)
- 能够使用Hadoop的Map/reduce
- 相对于Hadoop/HBase来说,所有的节点是相似的
- 跨数据中心重复中表现得非常好并且数据可靠
- 最佳使用情形: 当你需要的写多于读,比如日志操作。
- 最佳使用场合: 银行, 金融业,数据分析业务。
Hypertable
简述
- · 编程语言: C++
- · 主要关注点 : 更快,比HBase更小
- · 许可证(License) : GPL 2.0
- · 协议(Protocol) : Thrift, C++库, or HQL shell
- · 概要: 对谷歌大表设计的实现
- 运行在Hadoop的HDFS上
- 使用自己独有的,像SQL一样的语言HQL
- 能够通过关键字,单元格来搜索,或者是通过列家族(column families )的值
- 搜索能够限定到 key/column区间
- 保留最近历史值
- 表有命名空间
- 能够使用Hadoop的Map/reduce
最佳使用情形: 如果你需要一个更好的HBase
最佳使用场合: 使用情况与HBase一样,即搜索引擎,分析日志数据,也可以用在任何需要扫描大且少量关联的二位表。</span>
Accumulo
简述
- · 编程语言: Java 和C++
- · 主要关注点 : A BigTable with Cell-level security
- · 许可证(License) : Apache
- · 协议(Protocol) : Thrift
- · 概要:另一种大表的克隆版,也运行在Hadoop之上
- 单元格级别的安全访问
- 比内存能够允许的行还用大
- 使用C++ STL 来保持一个内存映射外在的Java
- Map/reduce使用Hadoop设备,如ZooKeeper 等
- 一些服务器端的编程
最佳使用情形: 如果你需要一个不同的HBase
最佳使用场合: 使用情况与HBase一样,即搜索引擎,分析日志数据,也可以用在任何需要扫描大且少量关联的二位表。</span>