星环hyperbase和开源hbase的那些事
Posted zll91
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了星环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;
以上是关于星环hyperbase和开源hbase的那些事的主要内容,如果未能解决你的问题,请参考以下文章