zoukankan      html  css  js  c++  java
  • 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 表可以看到数据已经插入进来了

     

  • 相关阅读:
    IDEA激活
    Spring JDBC
    数据库连接池
    JDBC
    10个很实用Linux命令,千万不要错过
    Linux 下如何使用 alias 命令
    Linux 下如何使用 fc 命令
    Linux 下如何修改密码有效期?
    利用 tee 命令调试shell脚本中的管道
    ps 命令显示不完整的问题
  • 原文地址:https://www.cnblogs.com/shanheyongmu/p/15661638.html
Copyright © 2011-2022 走看看