类型 |
特点 |
场合 |
优缺点分析 |
Native Java API |
最常规和高效的访问方式 |
适合MapReduce作业并行批处理HBase表数据
|
|
Hbase Shell |
HBase的命令行工具,最简单的访问方式 |
适合HBase管理使用 |
|
Thrift GateWay |
利用Thrift序列化技术,支持c++,PHP,Python等多种语言 |
适合其他异构系统在线访问HBase表数据
|
|
REST Gateway |
解除了语言限制 |
支持REST风格的Http API访问Hbase |
|
Pig |
使用Pig Latin流式编程语言来处理HBase中的数据 |
适合做数据统计 |
|
Hive |
简单 |
可以以类似SQL方式访问Hbase |
|
Phoenix |
构建在Apache Hbase上的一个SQL中间层,可以让开发者在HBase上执行SQL查询。 |
对于简单的低延迟查询,量级为毫秒;对于百万级别的行数来说,量级为秒;对于10万到100万行的简单查询,胜过Hive.对于使用了Hbase API,协同处理器及自定义过滤器的Impala与OpenTSDB来说,进行相似的查询,Phoenix的速度更快一些; |
|
Kundera |
Kundera是一个JPA 2.0兼容的NoSQL数据存储的对象映射框架。Kundera基于现有类库构建,封装出简易的API |
支持交叉数据存储持久性,意味着用户可以在不同的数据存储使用单一方法存储和获取相关实体。 能够会很好的管理事务,同时支持EntityTransaction和Java Transction API; 兼容JPA 2.0,严格使用JPA注解对象映射到数据库存储表。 目前只是的NoSQL服务包括:Cassandra,HBase,MongoDB,Redis,OracleNoSQL,Neo4j; |
|
Lealone |
淘宝出品,
支持高性能的分布式事务,使用一个非常新颖的,基于局部时间戳的多版本冲突有效性检测的事务模型,是对H2关系数据库的改进和扩展,是一个100%纯Java的将BigTable和RDBMS融合的数据库。 |
|
|
hbase-sql |
在Hbase提供的API中,使用Scan来查询数据,在hbase-sql实现过程中将SQL语句转换成Scan,然后进行具体查询,主要处理流程: SQL语句--SQL解析器--SQL语法结点--Scan-hbase-ResultScanner--List
感觉下来还是解析完SQL,然后整表扫描,拿到一个结果集 |
|
|
Interactive Query |
Intel研发的基于HBase的SQL引擎层,是非开源的,是Intel Hadoop发行版的一个模块,使用封装的HBase查询引擎层来解析HiveQL,该引擎拥有更高的性能。
|
|
|
Impala |
Cloudera发布实施查询开源项目Impala,经多款产品测试表明,比原来基于MapReduce的Hive SQL查询速度提升了3-90倍。Impala是Google Dremel的模仿,但是在SQL的性能上更好。
|
Impala采用与Hive相同的元数据,SQL语法,ODBC驱动程序和用户接口,这样在使用CDH产品时,批处理和实时查询的平台是统一的。 |
一些兼容性问题 |