BigSQL让HBase更易用

Posted IBM大数据技术团队

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BigSQL让HBase更易用相关的知识,希望对你有一定的参考价值。

HBase

HBase – Hadoop Database,是Google的BigTable的开源实现,是一个高可靠性、面向列、可伸的非关系型分布式数据。HBase 可与 Hadoop 无配合, HDFSHBase提供了高可靠性的底支持,MapReduceHBase提供了高性能的算能力,ZookeeperHBase提供了定服和failover机制。

HBase存的是松散型数据,具体来,HBase存的数据介于映射(key/value)和关系型数据之,它具有快速找数据和连续读写等能力。


HBase的具有以下的特点:

  • Key-Value存储

    • Key和Value是字节数组(二进制字节)

    • 通过Row key快速访问数据

 

  • 支持大数据量

    • 一个表可以有上亿行,上百万列

 

  • 高度可扩展

    • 得益于Hadoop集群,支持水平扩展

    • 自动数据分区

 

  • 低延迟

    • 支持随机读/写

    • 支持小范围扫描

 

  • 无固定格式

    • 对稀疏数据的存储非常有利

    • 支持变化的Schema

 

  • 支持丰富的Java API,也可通过Pig,Hive访问

 

关于HBase更多的技术细节,请参考Apache HBase管理。


BigSQL 简介

BigSQL是IBM的SQL on Hadoop解决方案,它能对存储在Hadoop上的数据通过标准的SQL进行高性能访问。关于BigSQL的基础内容请参考前期的文章《》。

 

与创建和操作Hadoop表类似,BigSQL支持创建和操作HBase 表。下面我们通过建表、加载数据、查询数据三个示例进行演示和说明。


建表

在BigSQL中使用CREATE HBASE TABLE tblname(…) COLUMN MAPPING(…) 建HBase表。其中HBASE指明BigSQL引擎使用HBase作管理器,“COLUMN MAPPING指明SQL的字段如何与HBase中列簇(Column Families)行映射。建表例子如下。



了演示简单个例子中的SQL字段与HBase字段采用1:1映射。但在某些景下,我可以将多个SQL字段映射到一个HBase 字段或HBase的Row Key。

 

运行该建表语句,它会在HBase的数据目录(缺省是/hbase/data/default)生成子目。通Hadoop文件系命令,你能看到下的目录结构。注意,建表句中指定了3个Column Families,所以在Hadoop文件系对应三个子目

BigSQL让HBase更易用


数据

在BigSQL建HBase表之后,我可以采用LOAD和INSERT INTO行数据加,通常LOAD能提供更好的性能。下面是常用的加数据例子。

 

端的文件系LOAD数据:

BigSQL让HBase更易用


Java接器从关系型数据(DB2,Oracle等)加数据。种方式实际上使用Sqoop接器去取关系型数据作源数据。

BigSQL让HBase更易用


使用“INSERT INTO . . . SELECT  FROM . ..”加数据:

BigSQL让HBase更易用


使用“INSERT INTO . . . VALUES(. . . )  ”填充数据:



查询

BigSQL支持准的SQL法,HBase表的操作与Hive,HDFS操作是一致的,得益于BigSQL对查询操作屏蔽了底机制。从而,HBase的查询无需特殊的句法,也不需要重新改写你的查询语句。BigSQLHBase支持以下操作:

  • 查询操作

    • Projection、Restriction

    • UNION、INTERSECT、EXCEPT

    • 广泛的内置函数 (e.g. OLAP) 


  • 充分支持子查询

    • SELECT、FROM、WHERE 和 HAVING 字句

    • 关联与非关联 

    • 等式、非等式子查询

    • EXISTS、NOT EXISTS、IN、ANY、SOME等等


  • 所有标准的Join操作


  • 存储过程和UDF


  • 当前版本(最新)的HBase row value查询。注:如果想访问非当前版本的数据,请使用原生的HBase API。




CREATE HADOOP TABLE…”用于创建Hadoop上各种存储格式的表,而“CREATE HBASE TABLE…”用于创建HBase表。各种存储格式对应的建表语句略有不同,但查询数据的方式是一致,应用BigSQL采用标准SQL进行数据操作。



以上是关于BigSQL让HBase更易用的主要内容,如果未能解决你的问题,请参考以下文章

Hbase从入门到精通_如何学好Hbase

浅析HBase 2.x新特性

HBase迁移 | HBase金融大数据乾坤大挪移

《HBase 不睡觉》第五章 - HBase 内部探险

如何查看当前hive运行的应用

HBase应用快速开发