打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
BigSQL让HBase更易用

HBase简介

HBase – Hadoop Database,是Google的BigTable的开源实现,是一个高可靠性、面向列、可伸缩的非关系型分布式数据库。HBase 可与 Hadoop 无缝配合, HDFS为HBase提供了高可靠性的底层存储支持,MapReduce为HBase提供了高性能的计算能力,Zookeeper为HBase提供了稳定服务和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的基础内容请参考前期的文章《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表之后,我们可以采用LOAD和INSERT INTO进行数据加载,通常LOAD能提供更好的性能。下面是常用的加载数据例子。

从远端的文件系统LOAD数据:

通过Java连接器从关系型数据库(DB2,Oracle等)加载数据。这种方式实际上使用Sqoop连接器去获取关系型数据作为源数据。

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

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

查询

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

  • 查询操作

    • 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进行数据操作。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
大数据时代的技术hive:hive介绍【转】
Kudu Impala介绍 | 微店数据科学团队博客
QCon北京:构建大数据生态需要哪些核心技术?
史上最全“大数据”学习资源整理
浅谈开源大数据平台的演变
impala 概述
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服