本篇博客小菌为大家分享的是关于Phoenix的使用方式与常用shell。
前文传送门:《Phoenix(凤凰)的安装介绍》
Phoenix使用
先让我们来看看Phoenix的几种方法调用
- 批处理方式
- 命令行方式
- GUI方式
- JDBC调用方式
下面将通过几个实例为大家解释关于这几种方式的使用。
<1>批处理方式
A: 创建user_phoenix.sql文件
内容如下
CREATE TABLE IF NOT EXISTS user_phoenix (
state CHAR(2) NOT NULL,
city VARCHAR NOT NULL,
population BIGINT
CONSTRAINT my_pk PRIMARY KEY (state, city)
);
B: 创建user_phoenix.csv数据文件
NY,New York,8143197
CA,Los Angeles,3844829
IL,Chicago,2842518
TX,Houston,2016582
PA,Philadelphia,1463281
AZ,Phoenix,1461575
TX,San Antonio,1256509
CA,San Diego,1255540
TX,Dallas,1213825
CA,San Jose,912332
C: 创建user_phoenix_query.sql文件
内容为:
SELECT state as "State",count(city) as "City Count",sum(population) as "Population Sum" FROM user_phoenix GROUP BY state ORDER BY sum(population) DESC;
D: 执行
python /export/servers/phoenix-4.14.0-cdh5.14.2/bin/psql.py node01:2181 user_phoenix.sql user_phoenix.csv user_phoenix_query.sql
这条命令同时做了三件事:创建表、插入数据、查询结果
用Hbase shell 看下会发现多出来一个 USER_PHOENIX 表,用scan 命令查看一下这个表的数据
hbase(main):002:0> scan 'USER_PHOENIX'
结论:
之前定义的Primary key 为state,city, 于是Phoenix就把输入的state,city的值拼起来成为rowkey
其他的字段还是按照列名去保存,默认的列族为0
还有一个0:_0这个列是没有值的,这个是Phoenix处于性能方面考虑增加的一个列,不用管这个列。
<2> 命令行方式
A: 执行命令
./sqlline.py node01:2181
可以进入到命令行模式
B: 相关命令
开头需要一个感叹号
使用help可以打印出所有命令
命令 | 语法解释 |
---|---|
!autocommit | 打开或关闭自动提交模式 |
!batch | 启动或执行一批语句 |
!brief | 关闭详细模式 |
!call | 执行可调用语句 |
!close | 关闭与数据库的当前连接 |
!closeall | 关闭所有当前打开的连接 |
!columns | 列出指定表的所有列 |
!commit | 提交当前事务(如果自动提交已关闭) |
!connect | 打开与数据库的新连接。 |
!dbinfo | 提供有关数据库的元数据信息 |
!describe | 描述一个表 |
!dropall | 删除当前数据库中的所有表 |
!exportedkeys | 列出指定表的所有导出键 |
!go | 选择当前连接 |
!help | 打印命令使用情况摘要 |
!history | 显示命令历史记录 |
!importedkeys | 列出指定表的所有导入键 |
!indexes | 列出指定表的所有索引 |
!isolation | 为此连接设置事务隔离 |
!list | 列出当前连接 |
!manual | 显示sqlline手册 |
!metadata | 获取元数据信息 |
!nativesql | 显示指定语句的本机SQL |
!outputformat | 设置显示结果的输出格式(表格、垂直、csv、tsv、xmlattrs、xmleelements) |
!primarykeys | 列出指定表的所有主键 |
!procedures | 列出所有程序 |
!properties | 连接到属性文件中指定的数据库 |
!quit | 退出程序 |
!reconnect | 重新连接到数据库 |
!record | 将所有输出记录到指定文件 |
!rehash | 获取用于完成命令的表和列名称 |
!rollback | 回滚当前事务(如果关闭自动提交) |
!run | 从指定的文件运行脚本 |
!save | 保存当前变量和别名 |
!scan | 扫描已安装的JDBC驱动程序 |
!script< |