HBase数据访问的一些常用方式




类型

特点

场合

优缺点分析

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,协同处理器及自定义过滤器的ImpalaOpenTSDB来说,进行相似的查询,Phoenix的速度更快一些;

 

Kundera

Kundera是一个JPA 2.0兼容的NoSQL数据存储的对象映射框架。Kundera基于现有类库构建,封装出简易的API

支持交叉数据存储持久性,意味着用户可以在不同的数据存储使用单一方法存储和获取相关实体。

能够会很好的管理事务,同时支持EntityTransactionJava Transction API;

兼容JPA 2.0,严格使用JPA注解对象映射到数据库存储表。

目前只是的NoSQL服务包括:Cassandra,HBaseMongoDB,Redis,OracleNoSQL,Neo4j;

 

Lealone

淘宝出品,

支持高性能的分布式事务,使用一个非常新颖的,基于局部时间戳的多版本冲突有效性检测的事务模型,是对H2关系数据库的改进和扩展,是一个100%Java的将BigTableRDBMS融合的数据库。

 

 

hbase-sql

Hbase提供的API中,使用Scan来查询数据,在hbase-sql实现过程中将SQL语句转换成Scan,然后进行具体查询,主要处理流程:

SQL语句--SQL解析器--SQL语法结点--Scan-hbase-ResultScanner--List

 

感觉下来还是解析完SQL,然后整表扫描,拿到一个结果集

 

 

Interactive Query

Intel研发的基于HBaseSQL引擎层,是非开源的,是Intel Hadoop发行版的一个模块,使用封装的HBase查询引擎层来解析HiveQL,该引擎拥有更高的性能。

 

 

 

Impala

Cloudera发布实施查询开源项目Impala,经多款产品测试表明,比原来基于MapReduceHive SQL查询速度提升了3-90倍。ImpalaGoogle Dremel的模仿,但是在SQL的性能上更好。

 

Impala采用与Hive相同的元数据,SQL语法,ODBC驱动程序和用户接口,这样在使用CDH产品时,批处理和实时查询的平台是统一的。

一些兼容性问题








上一篇:设计模式


下一篇:23种设计模式之工厂方法