-
准备测试用表
- 首先执行
sqlline.py
进入phoenix的交互式shell环境 - 执行如下建表脚本
CREATE TABLE IF NOT EXISTS T_WARNING_COUNT (RK VARCHAR PRIMARY KEY, BASIC_INFO.WARNING_COUNT VARCHAR, BASIC_INFO.COUNT_TIME VARCHAR) COLUMN_ENCODED_BYTES='NONE';
- 上述语句中,如果不加上最后的
COLUMN_ENCODED_BYTES='NONE'
,可能会导致phoenix中的表与HBase中的表映射失败,可能造成HBase写入了数据,但是通过phoenix查询却查询不到。
- 首先执行
-
查看表
-
查看特定表结构
image.png -
查看当前集群所有表
image.png
-
-
增加数据
- 插入一行数据:
UPSERT INTO T_WARNING_COUNT VALUES('13-1594259349089','0','1594349863000');
- 复制表:
UPSERT INTO TEST_T_WARNING_TOP SELECT * FROM T_WARNING_TOP
。此处TEST_T_WARNING_TOP与T_WARNING_TOP的结构必须完全相同。
- 插入一行数据:
-
删除数据
- 删除表中主键RK为null的行:
delete from T_WARNING_TOP WHERE RK IS NOT null;
- 删除表:
DROP TABLE T_WARNING_COUNT
- 删除所有表:
!dropall
- 删除表中主键RK为null的行:
-
更新数据
- 更新某行数据:
UPSERT INTO T_WARNING_COUNT(RK, COUNTIME) VALUES('6-1594259710052',1594350223000'');
- 更新某行数据:
-
有关注意事项
- 通过Phoenix进行表操作的时候,无论是表名还是列名,最好都使用大写字母命名
- 如果通过phoenix建立表A,则phoenix中有表A了之后,HBase中就也有表A了,无论原本HBase中有没有表A;如果只在HBase中建立表A,不在phoenix中做任何操作,则在Phoenix中则看不到表A
- 若HBase中有表A,phoenix中没有表A,则需要建立phoenix到HBase表的映射,可以将HBase中的表映射称为视图(view)、表(table)。这种映射的建立也非常简单,建立同名同结构的表或者视图即可。
网友评论