HBase Phoenix的安装使用教程2(Phoenix Shell的使用)

二、Phoenix Shell 的使用

1,进入 Phoenix 命令行

(1)执行如下命令进入 phoenix 的终端(启动脚本 sqlline.py 参数是 Zookeeper 节点)

sqlline.py localhost:2181

(2)首次进入 phoenix 终端会自动建立的 phoenix 系统表,我们执行如下命令可以查看当前所有的表:

!table

 

(3)执行如下命令则可退出 phoenix 的终端:

!exit

2,新建表

(1)执行下面命令创建一个名为 student 的表,如果没有明确定义任何列族,则将一个空键值作为默认列族:
注意:在 phoenix 中,默认情况下,库名,表名,字段名等会自动转换为大写,若要小写,使用双引号,如 "student"。

CREATE TABLE IF NOT EXISTS "student"(
id VARCHAR primary key,
name VARCHAR,          
age VARCHAR);

创建后执行 !table 命令可以看到新创建的表:

在 HBase Shell 中执行 describe "student" 命令查看表信息,可以发现映射过来的表列簇默认是 0:

(2)我们也可以在创建时指定列簇,比如下面我们指定列族为 info(如果所引用的列族不存在,则将创建它们):

CREATE TABLE IF NOT EXISTS "student"(
id VARCHAR primary key,
info.name VARCHAR,         
info.age VARCHAR);

在 HBase Shell 中执行 describe "student" 命令查看表信息,可以发现映射过来的表列簇变成了 info:

 

3,删除表

执行如下命令可以删除 studnet 表:
drop table "student";

4,表数据的增删改查

(1)使用 upsert 可以进行数据的插入或者更新:
注意:upsert 相当于 updata 与insert 的结合,当表中的主键不存在就是插入,存在就是更新。

upsert into "student" values('1001','大刘','20');
upsert into "student" values('1002','小星','22');

(2)使用 select 语句可以进行数据的查询:

select * from "student";

 

(3)使用 delete 语句可以删除数据:
delete from "student" where id='1002';

附:执行 SQL 脚本、导入数据

1,执行 SQL 脚本

(1)在 Phoenix 安装包 examples 目录下有一些官方样例,其中 STOCK_SYMBOL.sql 内容如下:
CREATE TABLE IF NOT EXISTS STOCK_SYMBOL (SYMBOL VARCHAR NOT NULL PRIMARY KEY, COMPANY VARCHAR);
UPSERT INTO STOCK_SYMBOL VALUES ('CRM','SalesForce.com');
SELECT * FROM STOCK_SYMBOL;

(2)我们要执行这个 sql 文件,只需要在执行 sqlline.py 时添加 SQL 文件参数即可:

sqlline.py localhost:2181 STOCK_SYMBOL.sql

(3)可以看到 sql 脚本自动执行成功:

 

2,导入数据

(1)如果需要导入数据,我们可以使用 bin/psql.py 加载 CSV 数据或执行 SQL 脚本(其中 -t 后面是表名):
./bin/psql.py -t STOCK_SYMBOL localhost:2181 ./examples/STOCK_SYMBOL.csv

(2)STOCK_SYMBOL.csv 同样是 Phoenix 安装包 examples 目录下的官方样例,其中数据的分隔符是逗号:

 

(3)如果上面命令执行后报如下错误:
java.sql.SQLException: ERROR 726 (43M10): Inconsistent namespace mapping properties. Cannot initiate connection as SYSTEM:CATALOG is found but client does not have phoenix.schema.isNamespaceMappingEnabled enabled

(4)打开 psql.py 查看对应查找的系统变量是哪个:

(5)然后编辑 /etc/profile,在尾部添加这个系统变量(指向 HBase 的 conf 目录):

 (6)然后执行如下命令使配置生效:

source /etc/profile

(7)最后再次执行导入命令,执行成功后查看 STOCK_SYMBOL 表可以看到数据已经插入进来了

 

原文地址:https://www.cnblogs.com/shanheyongmu/p/15661638.html