星環hyperbase和開源hbase的那些事


hyperbase官方簡介:

Transwarp Hyperbase實時數據庫是建立在Apache HBase和Elasticsearch基礎之上,融合了多種索引技術、分布式事務處理、全文實時搜索、圖形數據庫在內的實時NoSQL數據庫。

個人總結:

hyperbase是基於開源hbase+hive的體系結構,融合了全局索引、全文索引,加入了自己的序列化反序列化編碼格式,集成在星環的一站式大數據平台TDH上,對sql的支持度更加友好,底層依然是依托於開源的hbase,目前最新的星環大數據平台版本中使用的是開源的hbase1.3.1版本

hyperbase支持兩種表結構:

hyperbase表(對應開源,建表語法和開源類似)

基於開源Hive HBaseStorageHandler研發,本身設計比較簡單,Hyperbase底層不存儲表的schema信息,數據的序列化反序列化依賴於上層Hive。這造成了很多功能和性能上的問題,例如:null值與空字符串的區分,SQL執行計划的優化等。因此在與Inceptor配合使用的情況下不推薦使用Hyperbase表。只有一種場景比較適合:在Hyperbase中已存在一張表,需要通過Inceptor的外表功能進行對接。這樣保證了Inceptor對原生Hyperbase表的訪問功能。

創建內表

create table hbase_inner_table(
  key1 string,
  bi bigint,
  dc decimal(10,2),
  ch varchar(10),
  ts timestamp,
  en string
)STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler';

創建外表

CREATE EXTERNAL TABLE hbase_external_table(
    key1 string,
    ex1 double,
    ex3 date,
    ex5 string
)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping"=":key,f:q1,f:q4,f:q5")  TBLPROPERTIES ("hbase.table.name"="test.hbase_inner_table"); 

hyperdrive表(星環自研)

為了解決Hyperbase表的一些設計缺陷,星環科技自主研發了Hyperdrive表,去除了開源Hive HBaseStorageHandler的設計,並增加了新的功能,使其能更高效地通過Inceptor訪問存儲在Hyperbase中的數據。

  • 在底層Hyperbase中加入表的schema信息,數據存儲壓縮率更高,序列化/反序列化更高效。數據類型支持BOOLEAN、TINYINT、SMALLINT、INTEGER、BIGINT、DATE、TIMESTAMP、DECIMAL、FLOAT、DOUBLE、STRING、VARCHAR、STRUCT、BINARY等多種類型。

  • 對接Inceptor通用的存儲訪問層Stargate,可以支持完整的Filter轉換下推、Global Lookup Join等特性,顯著提升SQL性能。

  • {elasticsearch}語法對接,不需要再使用以前的那套contains語句了,直接使用現有的條件即可。=、<、>、in、like、between and、not in、!=等對應的語句即可。

  • 可以通過指定使用索引的方式使用對應的索引(i.e. hint)

  • 支持 NULL值占位符,可正確表達NULL值

只支持建內表

CREATE TABLE bank_info(
    acc_num STRING,
    name STRING,
    password STRING,
    email STRING,
    cellphone STRING,
    balance DOUBLE
)STORED AS HYPERDRIVE;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM