注意:
- 使用Phoenix前先启动HBase
- Phoenix会自动把小写字母转成大写,如果要保持小写字母,需要在字符外添加双引号
-
Linux中启动Phoenix
cd /export/server/apache-phoenix-5.0.0-HBase-2.0-bin/bin/ # 当前虚拟机中安装了anaconda,所以python版本是3.8,而默认启动使用的是python2 python2 sqlline.py node1.itcast.cn:2181
-
创建表
create table [if not exists] 表名 ( rowkey名称 数据类型 primary key, 列族名.列名1 数据类型, 列族名.列名2 数据类型, ... );
-
查看所有表
# system namespace的都是phoenix创建 !table
-
查看表结构
!desc 表名
-
查看详细数据
explain select * from 表名 limit 10;
-
删除表
drop table [if exists] 表名
-
退出终端
!quit
-
向表插入数据(没数据就是插入,有数据就是更新)
upsert into 表名(列族.列限定符1,列族.列限定符2) values(xxx, yyy, zzz)
-
删除数据
delete from 表名 where "id" = '000001';
-
分页查询
select * from ORDER_DTL limit 10 [offset 5];
-
rowkey预分区
create table [if not exists] 表名 ( rowkey名称 数据类型 primary key, 列族名.列名1 数据类型, 列族名.列名2 数据类型, ... ) compession='GZ' # 指定数据压缩格式 split on ('3','5','7'); # 分成4个区
-
rowkey加盐预分区
create table [if not exists] 表名 ( rowkey名称 数据类型 primary key, 列族名.列名1 数据类型, 列族名.列名2 数据类型, ... ) compession='GZ' # 指定数据压缩格式 salt_buckets=10; # 分成10个区
-
Phoenix 建立视图,映射HBase中的表
# 注意:视图名称需与表名一致,视图列名和hbase列族名 的列限定符 保持一致 create view "名称空间"."表名"( pk varchar primary key, "列族名".“列限定符” 数据类型, . . . );
-
全局索引(单独创建索引表,先查索引表再回到目标表查找)
# 创建全局索引 create index 索引名称 on 表名(列名1, 列名2...); # 删除全局索引 drop index 索引名称 on 表名;
-
本地索引(不会单独创建索引表,直接在目标表修改索引字段)
# 创建本地索引 create local index 索引名称 on 表名(列名1, 列名2 . . .) # 删除本地索引 drop index 索引名称 on 表名;
-
覆盖索引(无法单独使用,配合以上索引使用,查询时不用去目标表查询,直接从全局/本地索引中获取出数据)
# 创建覆盖索引 creare [local] index 索引名称 on 表名(列名1, 列名2...) include(列名3) # 删除覆盖索引,得和前者索引一起删才行 drop index 索引名称 on 表名;