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;
