天天看點

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,協同處理器及自定義過濾器的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産品時,批處理和實時查詢的平台是統一的。

一些相容性問題