天天看点

Phoenix - Hbase与SQL

简单来说,Phoenix 是一个可以让我们通过SQL的方式操作HBase数据库的框架。

HBase是一个NoSQL数据库,shell客户端只支持一些简单的操作,而且看起来容易晕。

例如下面这个图,返回的是一张表的所有数据:

Phoenix - Hbase与SQL

是不是很难看,而且如果对HBase进行复杂查询的话,只能通过HBase的原生API编写查询程序,这样就比较麻烦。

使用Phoenix的话,就可以使用SQL来查询,便捷高效,同时还可以为HBase添加二级索引,提升查询性能,还有其他一些方便的特性。

Phoenix 支持通过编写JDBC代码来操作HBase,比原生API更方便。

Phoenix - Hbase与SQL

到 HBase 中查看:

结果信息:

成功生成了 US_POPULATION 表。

先新建一个测试数据文件 <code>us_population.csv</code>,内容如下:

执行命令,把文件中的数据导入到数据库:

查询表数据:

Phoenix - Hbase与SQL

Phoenix自带了一个web统计的小示例,先执行命令把他导入进来:

先执行了建表sql,然后导入数据文件csv。
Phoenix - Hbase与SQL
<code>CORE</code>、<code>DB</code>字段是CPU和数据库使用量。

根据DOMAIN分组,查看每组平均CUP、数据库使用情况:

Phoenix - Hbase与SQL

查看各个domain的访问数,从高到低排序:

Phoenix - Hbase与SQL

Phoenix 的基础功能就是在 HBase 之上添加了 SQL 层,可以让我们更方便的使用 HBase。

Phoenix 有很多优秀特性,例如:二级索引、命名空间映射、视图、多租户、动态列、事务 ……

而且现在已经发展的非常完善,可以集成 Spark、Hive、Pig、MapReduce,还有 Flume 插件。