连接信息: /usr/hdp/2.5.5.0-157/phoenix/bin/sqlline.py hdp03:2181
常用shell命令
!quit--退出
!tables-查看所有表
!describe+‘表名’ -- 查看表结构
drop table+ "tableName" --删除表
upsert into 'tableName' --插入
执行SQL
./psql.py hdp03 ~/QHJD.sql
建表-预分区
0: jdbc:phoenix:hdp03:2181> create table spring (
. . . . . . . . . . . . . > host varchar(64) not null primary key,
. . . . . . . . . . . . . > name varchar,
. . . . . . . . . . . . . > description varchar
. . . . . . . . . . . . . > ) split on ('00','01','03');
建表-指定列镞
0: jdbc:phoenix:hdp03:2181> create table spring1 (
. . . . . . . . . . . . . > phone_name varchar not null primary key,
. . . . . . . . . . . . . > "f1"."name" varchar
. . . . . . . . . . . . . > );
注意: 双引号扩起来!
建表-指定schema(命名空间)
CREATE TABLE IF NOT EXISTS "QH"."TB_XDRY_XDRYZPXX" (
XYRBH VARCHAR NOT NULL PRIMARY KEY,--嫌疑人编号
XP VARCHAR ,--相片,大文件(选择时,只能单条下载
GXSJC VARCHAR,--更新时间戳
YXX INTEGER --有效性
);
注意:需要开启schema与namespace的对应关系
如果使用了hbase中的自定义namespace,不仅仅使用default,那么在phoenix中与之对应的是schema的概念,但是默认并没有开启,需要在hbase-site.xml中增加以下配置项:
<property>
<name>phoenix.schema.isNamespaceMappingEnabled</name>
<value>true</value>
</property>
<property>
<name>phoenix.schema.mapSystemTablesToNamespace</name>
<value>true</value>
</property>
注解
不支持类似于MYSQL COMMENT语句,
注释语法:
//注释
-- 注释
/* 注释 */
数据类型
http://phoenix.apache.org/language/datatypes.html
INTEGER | java.lang.Integer |
---|---|
UNSIGNED_INT | java.lang.Integer |
BIGINT | Long |
UNSIGNED_LONG | Long |
TINYINT | Byte |
UNSIGNED_TINYINT | Byte |
SMALLINT | Short |
UNSIGNED_SMALLINT | Short |
FLOAT | Float |
UNSIGNED_FLOAT | Float |
DOUBLE | Double |
UNSIGNED_DOUBLE | Double |
DECIMAL | java.math.BigDecimal |
BOOLEAN | Boolean |
Time | java.sql.Time |
DATE | java.sql.Date |
TIMESTAMP | java.sql.Timestamp |
VARCHAR | String |
CHAR | String—CHAR(10) |
BINARY | byte[]—Raw fixed length byte array. |
VARBINARY | byte[]—Raw variable length byte array. |
ARRAY | java.sql.Array—- |
VARCHAR ARRAY
CHAR(10) ARRAY [5]
INTEGER []
INTEGER [100] |