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产品时,批处理和实时查询的平台是统一的。

一些兼容性问题








优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/240678

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
Mario,低调大师唯一一个Java游戏作品

Mario,低调大师唯一一个Java游戏作品

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Apache Tomcat7、8、9(Java Web服务器)

Apache Tomcat7、8、9(Java Web服务器)

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。