码迷,mamicode.com
首页 > 数据库 > 详细

Phoenix——实现向HBase发送标准SQL语句

时间:2014-06-01 14:05:11      阅读:403      评论:0      收藏:0      [点我收藏+]

标签:hadoop   hbase   phoenix   sql   

写在前面一:

本文总结基于HBase的SQL查询系统——Salesforce phoenix

bubuko.com,布布扣

写在前面二:

环境说明:

bubuko.com,布布扣

一、什么是Phoenix

摘自官网:

bubuko.com,布布扣

Phoenix是一个提供hbase的sql操作的框架,Phoenix是构建在HBase之上的一个SQL中间层。Phoenix完全使用Java编写,代码位于GitHub上,并且提供了一个客户端可嵌入的JDBC驱动。对于简单的低延迟查询,其性能量级为毫秒;对于百万级别的行数来说,其性能量级为秒。Phoenix并不是像HBase那样
用于map-reduce job的,而是通过标准化的语言来访问HBase数据的。

Phoenix最值得关注的特性:
1、嵌入式的JDBC驱动,实现了大部分的java.sql接口,包括元数据API
2、可以通过多部行键或是键/值单元对列进行建模
3、完善的查询支持,可以使用多个谓词以及优化的扫描键
4、DDL支持:通过CREATE TABLE、DROP TABLE及ALTER TABLE来添加/删除列
5、版本化的模式仓库:当写入数据时,快照查询会使用恰当的模式
6、DML支持:用于逐行插入的UPSERT VALUES、用于相同或不同表之间大量数据传输的UPSERT SELECT、用于删除行的DELETE
7、通过客户端的批处理实现的有限的事务支持
8、单表——还没有连接,同时二级索引也在开发当中
9、紧跟ANSI SQL标准

二、Phoenix原理

Phoenix基本原理是将一个对于HBase client来说比较复杂的查询转换成一系列Region Scan,结合coprocessor和custom  filter在多台Region Server上进行并行查询,汇总各个Scan结果。种种迹象表明,Phoenix应该不是个优化的OLAP系统,更像是一个用于简单单表查询,过滤,排序,检索的OLTP系统。 Phoenix 可以为我们目前大数据平台提供比较便捷的数据操作能力(直接用jdbc方式),性能比较不错,注意不要使用多表查询即可 。

三、Phoenix安装配置

1、下载
phoenix-3.0.0-incubating.tar.gz
http://phoenix.incubator.apache.org/download.html#Installation
2、拷贝phoenix-3.0.0-incubating/common/phoenix-core-3.0.0-incubating.jar至$HBASE_HOME/lib/下
3、重启HBase集群

若通过客户端访问phoenix,需进行以下操作:
把phoenix-3.0.0-incubating/hadoop-1/phoenix-3.0.0-incubating-client.jar添加到Phoenix客户端的类路劲下

四、访问Phoenix

4.1、通过命令行

进入phoenix

cd /home/yujianxin/hbase/phoenix/phoenix-3.0.0-incubating/bin
./sqlline.py slave3:2181

出现以下响应,说明安装成功

bubuko.com,布布扣

4.2、通过Java

Class.forName("org.apache.phoenix.jdbc.PhoenixDriver"); 
// connection string: jdbc:phoenix [ :<zookeeper quorum> [ :<port number> ] [ :<root node> ] ]
Connection connection = DriverManager.getConnection("jdbc:phoenix:slave3:2181");

bubuko.com,布布扣

4.3、通过SQL客户端SQuirrel访问

下载地址:http://squirrel-sql.sourceforge.net/

再进行安装配置即可。


五、使用Phoenix

使用phoenix-3.0.0-incubating.tar.gz自带的数据进行测试

bubuko.com,布布扣

其中,WEB_STAT.sql的内容如下:

bubuko.com,布布扣

执行以上命令后,查看phoenix中的表:

bubuko.com,布布扣

bubuko.com,布布扣

查看HBase中的表,如下:

bubuko.com,布布扣

即可通过Phoenix这个构建在HBase之上的SQL中间层,向HBase发送标准sql语句,对HBase进行操作。


Phoenix——实现向HBase发送标准SQL语句,布布扣,bubuko.com

Phoenix——实现向HBase发送标准SQL语句

标签:hadoop   hbase   phoenix   sql   

原文地址:http://blog.csdn.net/wl101yjx/article/details/27865841

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!