HBase 整合使用Phoenix

By timebusker on January 14, 2019

下载HBase版本对应的Phoenix

http://apache.fayea.com/phoenix/

启动

  • 解压进入phoenix目录,将目录下的phoenix-4.14.0-HBase-1.4-server.jar复制到hbase的安装目录下的lib目录(如果是集群,需要复制到每台机器)。

  • 启动服务

如果HBase已启动,需要重新启动。如果没启动HBase,直接启动就好。

启动Phoenix

# 进入phoenix下的bin目录
# 用python2.x启动(不需要安装python2)

python2 sqlline.py

shell命令操作Phoenix

# 显示表
> !tables

# 查看表信息
!describe tables_name

# 删除表
DROP TABLE tables_name;

# 退出命令行
!quit
  • 二级索引示例
-- 创建一个user表
create table user(id varchar primary key,name varchar,age varchar,phone varchar,email varchar);


-- 插入5条数据,使用upsert插入
upsert into user values('1001','caocao','26','13800000000','caocao@163.com');
upsert into user values('1002','liubei','24','13800000001','liubei@163.com');
upsert into user values('1003','guanyu','23','13800000002','guanyu@163.com');
upsert into user values('1004','zhangfei','22','13800000003','zhangfei@163.com');
upsert into user values('1005','sunquan','20','13800000004','sunquan@163.com');


# 创建phone
create table phone(phone varchar primary key, yys varchar, address varchar);

# 插入5条数据
upsert into phone values('13800000000','移动','河南');
upsert into phone values('13800000001','电信','四川');
upsert into phone values('13800000002','电信','四川');
upsert into phone values('13800000003','电信','四川');
upsert into phone values('13800000004','联通','江苏');

# user表和phonejoin
select u.*,p.* from user u left join phone p on u.phone = p.phone;

https://yq.aliyun.com/users/gj6og75ixdtok?spm=a2c4e.11154792.albumuserintro.1.7aea37b8i4QvTv