一. Phoenix介绍
可以把Phoenix理解为Hbase的查询引擎,phoenix,由saleforce.com开源的一个项目,后又捐给了Apache。它相当于一个Java中间件,帮助开发者,像使用jdbc访问关系型数据库一些,访问NoSql数据库HBase。
phoenix,操作的表及数据,存储在hbase上。phoenix只是需要和Hbase进行表关联起来。然后再用工具进行一些读或写操作。
其实,可以把Phoenix只看成一种代替HBase的语法的一个工具。虽然可以用java可以用jdbc来连接phoenix,然后操作HBase,但是在生产环境中,不可以用在OLTP中。在线事务处理的环境中,需要低延迟,而Phoenix在查询HBase时,虽然做了一些优化,但延迟还是不小。所以依然是用在OLAT中,再将结果返回存储下来。
二.安装
1.phoenix安装包解压缩,更换目录
tar -zxvf apache-phoenix-4.14.1-HBase-1.2-bin.tar.gz -C /opt/module
mv apache-phoenix-4.14.1-HBase-1.2-bin phoenix-4.14.1
2.修改环境变量
vi /etc/profile
#在最后两行加上如下phoenix配置
export PHOENIX_HOME=/opt/module/phoenix-4.14.1
export PATH=$PATH:$PHOENIX_HOME/bin
3.使环境变量配置生效
source /etc/profile
4.将主节点的phoenix包传到从节点
scp -r phoenix-4.14.1 root@bigdata13:/opt/module
scp -r phoenix-4.14.1 root@bigdata12:/opt/module
5.拷贝hbase-site.xml(注)三台都要
cp hbase-site.xml /opt/module/phoenix-4.14.1/bin/
将如下两个jar包,目录在/opt/module/phoenix-4.14.1下,拷贝到hbase的lib目录,目录在/opt/module/hbase-1.3.1/lib/
(注)三台都要
phoenix-4.10.0-HBase-1.2-server.jar
phoenix-core-4.10.0-HBase-1.2.jar
6.启动Phoenix
配置好之后重启下hbase。
bin/sqlline.py bigdata11:2181
三.基本命令
1.展示表
!table
2.创建表
create table test(id integer not null primary key,name varchar);
create table "Andy"(
id integer not null primary key,
name varchar);
3.删除表
drop table test;
4.插入数据
upsert into test values(1,'Andy');
upsert into users(name) values('toms');
5.查询数据
phoenix > select * from test;
hbase > scan 'test'
6.退出phoenix
!q
7.删除数据
delete from "Andy" where id=4;
8.sum函数的使用
select sum(id) from "Andy";
9.增加一列
alter table "Andy" add address varchar;
10.删除一列
alter table "Andy" drop column address;
其他语法详见:http://phoenix.apache.org/language/index.html
四.表映射
1.hbase中创建表
create 'teacher','info','contact'
2.插入数据
put 'teacher','1001','info:name','Jack'
put 'teacher','1001','info:age','28'
put 'teacher','1001','info:gender','male'
put 'teacher','1001','contact:address','shanghai'
put 'teacher','1001','contact:phone','13458646987'
put 'teacher','1002','info:name','Jim'
put 'teacher','1002','info:age','30'
put 'teacher','1002','info:gender','male'
put 'teacher','1002','contact:address','tianjian'
put 'teacher','1002','contact:phone','13512436987'
3.在Phoenix创建映射表
create view "teacher"(
"ROW" varchar primary key,
"contact"."address" varchar,
"contact"."phone" varchar,
"info"."age" varchar,
"info"."gender" varchar,
"info"."name" varchar
);
4.在Phoenix查找数据
select * from "teacher";
网友评论