Phoenix 支持数据类型和标准 HBase 是有区别的,详情见官方文档。
其中几点需要注意:
CHAR
类型只能保存单字节的字符,不能保存中文字符,中文需要使用 VARCHAR
;NOT NULL
,不支持指定字段默认值(phoenix-4.9+支持);DATE/TIME
字段类型:这两个字段类型对应 java.sql.Date
类型,Phoniex JDBC 驱动不会对 java.util.Date
类型进行转换;一个简单的 phoenix 建立表 SQL 如下:
CREATE TABLE TEST.USER (
ROWKEY varchar PRIMARY KEY,
NAME varchar,
AGE integer,
BIRTHDAY date
)
CREATE TABLE TEST.USER2
(
UID CHAR(36) NOT NULL,
CREATE_TIME DATE NOT NULL,
NAME varchar,
AGE integer,
BIRTHDAY date,
CONSTRAINT ROWKEY PRIMARY KEY(UID, CREATE_TIME)
);
需要注意的是 Phoenix 默认不区分大小写,所有表名、列名都是大写,所以在编写 SQL 时最好表、列名都采用大写,如果需底层采用小写,需要使用 “” 包含这些文本,如下: