Phoenix - Hbase与SQL
Phoenix - Hbase与SQL
Phoenix是什么
简单来说,Phoenix 是一个可以让我们通过SQL的方式操作HBase数据库的框架。
HBase是一个NoSQL数据库,shell客户端只支持一些简单的操作,而且看起来容易晕。
例如下面这个图,返回的是一张表的所有数据:
是不是很难看,而且如果对HBase进行复杂查询的话,只能通过HBase的原生API编写查询程序,这样就比较麻烦。
使用Phoenix的话,就可以使用SQL来查询,便捷高效,同时还可以为HBase添加二级索引,提升查询性能,还有其他一些方便的特性。
Phoenix 支持通过编写JDBC代码来操作HBase,比原生API更方便。
用法示例
建表
CREATE TABLE IF NOT EXISTS us_population (
state CHAR(2) NOT NULL,
city VARCHAR NOT NULL,
population BIGINT
CONSTRAINT my_pk PRIMARY KEY (state, city));
查看表
0: jdbc:phoenix:localhost> !tables
到 HBase 中查看:
hbase(main):041:0> list
结果信息:
TABLE
SYSTEM.CATALOG
SYSTEM.FUNCTION
SYSTEM.SEQUENCE
SYSTEM.STATS
US_POPULATION
...
成功生成了 US_POPULATION 表。
添加数据
先新建一个测试数据文件 us_population.csv,内容如下:
NY,New York,8143197
CA,Los Angeles,3844829
IL,Chicago,2842518
TX,Houston,2016582
PA,Philadelphia,1463281
AZ,Phoenix,1461575
TX,San Antonio,1256509
CA,San Diego,1255540
TX,Dallas,1213825
CA,San Jose,912332
执行命令,把文件中的数据导入到数据库:
./psql.py localhost us_population.csv
查询表数据:
0: jdbc:phoenix:localhost> select * from US_POPULATION;
示例
Phoenix自带了一个web统计的小示例,先执行命令把他导入进来:
bin/psql.py localhost examples/WEB_STAT.sql examples/WEB_STAT.csv
先执行了建表sql,然后导入数据文件csv。
查询表数据:
0: jdbc:phoenix:localhost> select * from WEB_STAT;
CORE、DB字段是CPU和数据库使用量。
根据DOMAIN分组,查看每组平均CUP、数据库使用情况:
SELECT DOMAIN, AVG(CORE) Average_CPU_Usage, AVG(DB) Average_DB_Usage
FROM WEB_STAT
GROUP BY DOMAIN
ORDER BY DOMAIN DESC;
查看各个domain的访问数,从高到低排序:
select domain,count(1) num
from web_stat
group by domain
order by num desc;
小结
Phoenix 的基础功能就是在 HBase 之上添加了 SQL 层,可以让我们更方便的使用 HBase。
Phoenix 有很多优秀特性,例如:二级索引、命名空间映射、视图、多租户、动态列、事务 ……
而且现在已经发展的非常完善,可以集成 Spark、Hive、Pig、MapReduce,还有 Flume 插件。
Phoenix - Hbase与SQL的更多相关文章
- Phoenix实现用SQL查询HBase
博客已转移,请借一步说话,http://www.weixuehao.com/archives/111 HBase,一个NoSQL数据库,可存储大量非关系型数据. HBase,可以用HBase shel ...
- HBase 学习之路(十)—— HBase的SQL中间层 Phoenix
一.Phoenix简介 Phoenix是HBase的开源SQL中间层,它允许你使用标准JDBC的方式来操作HBase上的数据.在Phoenix之前,如果你要访问HBase,只能调用它的Java API ...
- HBase 系列(十)—— HBase 的 SQL 中间层 Phoenix
一.Phoenix简介 Phoenix 是 HBase 的开源 SQL 中间层,它允许你使用标准 JDBC 的方式来操作 HBase 上的数据.在 Phoenix 之前,如果你要访问 HBase,只能 ...
- Phoenix put the sql back in NoSql
Overview | Apache Phoenix http://phoenix.apache.org/index.html Apache Phoenix enables OLTP and opera ...
- 入门大数据---Hbase的SQL中间层_Phoenix
一.Phoenix简介 Phoenix 是 HBase 的开源 SQL 中间层,它允许你使用标准 JDBC 的方式来操作 HBase 上的数据.在 Phoenix 之前,如果你要访问 HBase,只能 ...
- phoenix hbase Can't get master address from ZooKeeper; znode data == null
问题描述: 项目一直在用的hbase节点 简称h1 由于网络问题,无法使用,重新找了一个网络稳定的节点 z1作为新的hbase库,库名称hbase_test,zookeeper等都配置好后,通过j ...
- 异常-Phoenix HBASE Last region should end with an empty key. You need to create a new region and regioninfo in HDFS to plug the hole
1 详细异常信息 RROR: There is a hole in the region chain between \x03\x00\x00\x00\x00\x00\x00\x00\x00 and ...
- HBase二级索引的设计(案例讲解)
摘要 最近做的一个项目涉及到了多条件的组合查询,数据存储用的是HBase,恰恰HBase对于这种场景的查询特别不给力,一般HBase的查询都是通过RowKey(要把多条件组合查询的字段都拼接在RowK ...
- HBase二级索引的设计
摘要 最近做的一个项目涉及到了多条件的组合查询,数据存储用的是HBase,恰恰HBase对于这种场景的查询特别不给力,一般HBase的查询都是通过RowKey(要把多条件组合查询的字段都拼接在RowK ...
随机推荐
- Semi-prime H-numbers(筛法)
Semi-prime H-numbers Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 8069 Accepted: 3479 ...
- 第十二届浙江省大学生程序设计大赛-Capture the Flag 分类: 比赛 2015-06-26 14:35 10人阅读 评论(0) 收藏
Capture the Flag Time Limit: 2 Seconds Memory Limit: 65536 KB Special Judge In computer security, Ca ...
- 判断sql执行效率以及针对临时表的使用
/****** Script for SelectTopNRows command from SSMS ******/ SET STATISTICS io ON SET STATISTICS time ...
- ubuntu配置服务器环境
今天环境不知道怎么就不能用了.自己新配了一个: 添加源: vi /etc/apt/sources.list 将下面这些源添加进去: deb http://debian.ustc.edu.cn/ubun ...
- 2016年12月14日 星期三 --出埃及记 Exodus 21:9
2016年12月14日 星期三 --出埃及记 Exodus 21:9 If he selects her for his son, he must grant her the rights of a ...
- Winform容器标签 打印标签 对话框控件
一.容器标签 布局: Anchor:锁定位置,指定与窗口容器的边缘位置,会随着窗口大小的改变而改变: Dock:填充窗口的位置.一般与容器标签同时使用. 1.Panel:对控件进行分组.可以独立布局, ...
- iptraf:TCP/UDP网络监控工具
原文:http://www.unixmen.com/iptraf-tcpudp-network-monitoring-utility/ 作者: Enock Seth Nyamador 译文:LCTT ...
- Ghostscript命令实践
一. 将单张PDF文件igs.pdf转化为tiff文件. . gs -sDEVICE=tiffg4 -sOutputFile=igs.tiff -dMaxStripSize= igs.pdf -dAd ...
- sencha touch之模型(model)
模型的实例相当于数据库中表的一条记录. 一般模型在\app\model下创建,而且必须遵守类的命名规则,也就是可以根据类名找到模型的定义文件. 所有模型类都要从Ext.data.Model或Ext.d ...
- linux远程XP
众所周知XP下有"远程桌面连接"用来远程登录桌面,设置也非常简单. 那有没有什么办法在linux下远程登录到XP呢?有.用rdesktop这个linux下的软件就能实现. 发现新立 ...