一、Phoenix概述
HBase基础上架构的SQL中间件让我们可以通过SQL/JDBC来操作HBase
二、Phoenix安装配置
1.到apache下载Phoenix安装包,要注意版本和HBase匹配
Phoenix 2.x – HBase 0.94.x
Phoenix 3.x – HBase 0.94.x
Phoenix 4.x – HBase 0.98.1+
2.上传到linux进行解压
3.将如下两个jar包,传到hbase的lib目录下
phoenix-4.8.1-HBase-0.98-server.jar
phoenix-4.8.1-HBase-0.98-client.jar
4.配置环境变量
export HBASE_HOME=/root/work/hbase-0.98.17-hadoop2
5.测试
执行 ./sqlline.py hadoop01,hadoop02,hadoop03:2181
#如果进不去命令行,重启即可
#如果进入Phoenix命令行状态,则证明Phoenix安装完成
资源:phoenix-4.8.1-HBase-0.98-server.jar
资源:phoenix-4.8.1-HBase-0.98-client.jar
三、Phoenix使用 - 可以在命令行客户端下使用
1.创建表
create table tab1(
id integer primary key not null,
name varchar
);
create table tab2(
id varchar primary key not null,
"info"."name" varchar
);
结论1:在phoenix中创建的表在hbase中会同时创建出表
结论2:在phoenix中创建的表在hbase中表名会变为大写,如果不想让他自动变化,则需要将表明用双引号引起来
结论3:phoenix表中的主键会成为hbase表的行键
结论4:如果不声明phoenix表中的普通列会成为hbase表中默认列族(名字叫0)中的普通列
结论5:也可以在建phoenix表时,来声明底层的列族的名称。
2.插入数据
upsert into test values (1,'Hello');
upsert into test values (2,'World!');
3.查询数据
select * from xxx where xxxx;
4.删除数据
delete from test where xxxx;
5.创建表来关联hbase中已经存在的hbase表
只要创建表和hbase表同名,列一定要声明完全即可。
6.删除表
drop table tabx;#要注意,会同时删除hbase底层的表
7.视图操作
创建视图:
create view tab3_view as select * from tab3;
查询视图:
select * from tab3_view where xxxx;
删除视图:
drop view tab3_view;
创建视图关联hbase中已经存在的表:
create view "tab4" (id varchar primary key,"cf1"."c1" varchar,"cf2"."c2" varchar);
##表关联管理hbase中的数据,删除表的时候,hbase表也被删除
##视图关联管理hbase中的数据,删除视图的时候,hbase表不会被删除
四、Phoenix使用 - 可以在jdbc中使用
资源:phoenix的源码包
1.创建java工程导入连接Phoenix的驱动
phoenix-4.8.1-HBase-0.98-client.jar
2.编写jdbc代码即可操作Phoenix中的数据
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class PhoenixDemo {
public static void main(String[] args) throws Exception {
Connection conn = DriverManager.getConnection("jdbc:phoenix:hadoop01,hadoop02,hadoop03:2181");
Statement statement = conn.createStatement();
ResultSet rs = statement.executeQuery("select * from \"javaTable\"");
while (rs.next()) {
String string = rs.getString("\"c1\"");
System.out.println(string);
}
rs.close();
conn.close();
}
}
五、Phoenix使用 - 可以在图形化客户端工具中使用
连接Phoenix的工具Squirrel
a) Squirrel是一个连接数据库的客户端工具,一般支持JDBC的数据库都可以用它来连接,如连接mysql
b) 下载Squirrel SQL Client,java –jar squirrel-sql-3.7.1-standard.jar即可
c) 连接Phoenix在Squirrel的安装目录的lib下添加phoenix-4.8.1-HBase-0.98-client.jar包
资源:squirrel:1kjs
1Java –jar 名字(命令窗口下安装)
可以同装软件一样
其余步骤点击“next”即可,安装完成后如下图
2将Phoenix-4.8.1-Habase-0.98-client.jar拷贝到squirrel的lib包下
3新建驱动
创建链接
创建好链接后,双击打开
查看创建的表