类型

特点

场合

优缺点分析

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

一些兼容性问题

HBase数据访问的一些常用方式的更多相关文章

  1. iOS- 网络访问两种常用方式【GET & POST】实现的几个主要步骤

    1.前言 上次,在博客里谈谈了[GET & POST]的区别,这次准备主要是分享一下自己对[GET & POST]的理解和实现的主要步骤. 在这就不多废话了,直接进主题,有什么不足的欢 ...

  2. HBase的访问方式

    这里只介绍三种最常用的方式 1.HBase shell HBase的命令行工具是最简单的接口,主要用于HBase管理 首先启动HBase 帮助 hbase(main):001:0> help 查 ...

  3. salesforce 零基础学习(三十三)通过REST方式访问外部数据以及JAVA通过rest方式访问salesforce

    本篇参考Trail教程: https://developer.salesforce.com/trailhead/force_com_dev_intermediate/apex_integration_ ...

  4. iOS边练边学--应用数据存储的常用方式(plist,Preference,NSKeyedArchiver)其中的三种

    iOS应用数据存储的常用方式: XML属性列表(plist)归档 Preference(偏好设置) NSKeyedArchiver归档(NSCoding) SQLite3--这里暂且不讲 Core D ...

  5. ADO.NET编程之美----数据访问方式(面向连接与面向无连接)

    最近,在学习ADO.NET时,其中提到了数据访问方式:面向连接与面向无连接.于是,百度了一下,发现并没有很好的资料,然而,在学校图书馆中发现一本好书(<ASP.NET MVC5 网站开发之美&g ...

  6. iOS应用数据存储的常用方式

    iOS应用 数据存储的常用方式 XML属性列表 plist Preference 偏好设置 NSKeyedArchiver 归档 Core Data SQLite3 应用沙盒: Layer:     ...

  7. 关系型数据库工作原理-查询优化器之数据访问方式(翻译自Coding-Geek文章)

    本文翻译自Coding-Geek文章:< How does a relational database work>.原文链接:http://coding-geek.com/how-data ...

  8. OPC Utgard的数据访问方式

    1.同步读取某个点位的值 Item项的read()方法 Server server = new Server(BaseConfiguration.getCLSIDConnectionInfomatio ...

  9. 高性能Javascript--高效的数据访问

    接上一篇,希望能写一个高性能Javascript专题. 第一篇:高性能Javascript--脚本的无阻塞加载策略. 参考摘录<高性能Javascript>. 经典计算机科学的一个问题是, ...

随机推荐

  1. l2dct

    http://paste.ubuntu.com/15664711/ diff -crbB ns-allinone-2.35/ns-2.35/queue/red.cc ns-2.35/queue/red ...

  2. flask的orm操作

    django是有orm操作的  可想而知 那么flask也是有orm操作的,其实flask的orm操作的使用和djnago的是差不多的 django的orm操作进行条件筛选的时候后面跟着的是objec ...

  3. TableView的cell加载倒计时重用问题解决方案

    TableView的cell加载倒计时重用问题解决方案 效果 说明 1. 写过类似需求的朋友一定知道,TableView上面加载倒计时功能会遇到复杂的重用问题难以解决 2. 本人提供一种解决思路,高效 ...

  4. 基于springMVC的RESTful服务实现

    一,什么是RESTful RESTful(RESTful Web Services)一种架构风格,表述性状态转移,它不是一个软件,也不是一个标准,而是一种思想,不依赖于任何通信协议,但是开发时要成功映 ...

  5. PHP中抽象方法、抽象类和接口的用法

    在类中,没有方法体的方法就是抽象方法. abstract 可见性 function 方法名称(参数1,.....);      // 如果没有显示地指定可见性,则默认为public 如: public ...

  6. 微信小程序websocket

    微信小程序websocket 微信小程序带有websocket可以提供使用,但是官方文档写的东西很少,而且小程序后台能力弱这一点也是十分的坑爹,这就导致了socket长连接一切后台就会出现断开的情况, ...

  7. 【模块化】 RequireJS入门教程总结与推荐

    之所以学习RequireJS,肯定对 模块化有一定的理解.这里有几篇学习 RequireJS的文章,推荐给大家去学习. Javascript模块化编程(一):模块的写法 Javascript模块化编程 ...

  8. 遇见C++ Lambda

    转自:https://www.cnblogs.com/allenlooplee/archive/2012/07/03/2574119.html 遇见C++ Lambda Written by Alle ...

  9. Phthon3.4 新特性

    1.       print的变化:. 在python3.0中,print成为了一个函数,将传入的参数一输出. Python3.0: Python 2.5: 2.使用比较操作符时,如果被比较的对象没有 ...

  10. 【转】.NET Core基于. csproj 配置文件发布项目

    一.前言 .NET工具链在最新的Preview3版本中,引入了新的MSBuild项目系统,项目文件又回归了.csproj的XML文件来管理,项目文件.包引用.程序集引用..NET Core工具集.发布 ...