阅读82 返回首页    go 阿里云 go 技术社区[云栖]


[Phoenix文档系列] 二、数据类型

目前Phoenix支持22种简单数据类型和1个一维Array的复杂类型。以下是对支持数据类型的说明。

序号 类型名 对应的java类型 取值范围 说明
1 INTEGER INTEGER [-2147483648, 2147483647] binary表示是4个byte的整数, 符号位被翻转(为了让负数排在正数前面)
2 UNSIGNED_INT Integer [ 0,2147483647] binary表示是4个byte的整型。这个类型主要用作序列化映射到已经存在Hbase表的数据,适配HBase Bytes.toBytes(int)方法。
3 TINYINT Byte [-128,127] binary表示是单个byte,为了排序符号位被翻转。
4 UNSIGNED_TINYINT Byte [0,127] binary表示是单个byte。这个类型主要用作序列化映射到已经存在Hbase表的数据,适配 HBase Bytes.toBytes(byte)方法。
5 SMALLINT Short [-32768,32767] binary表示是两个byte,为了排序符号位被翻转。
6 UNSIGNED_SMALLINT Short [0,32767] binary表示是两个byte。这个类型主要用作序列化映射到已经存在Hbase表的数据,适配HBase Bytes.toBytes(short)方法。
7 FLOAT Float [-3.402823466 E + 38,3.402823466 E + 38] binary表示是四个byte, 为了排序符号位被翻转。
8 UNSIGNED_FLOAT Float [0,3.402823466 E + 38] binary表示是四个byte。这个类型主要用作序列化映射到已经存在Hbase表的数据,适配HBase Bytes.toBytes(float)方法。
9 DOUBLE DOUBLE [-1.7976931348623158 E + 308,1.7976931348623158 E + 308] binary表示是8个byte,为了排序符号位被翻转。
10 UNSIGNED_DOUBLE DOUBLE [0,1.7976931348623158 E + 308] binary表示是8个byte。这个类型主要用作序列化映射到已经存在Hbase表的数据,适配HBase Bytes.toBytes(double)方法。
11 DECIMAL(precision,scale) BigDecimal 最大精度38位 binary是可比较的边长格式。如果用于rowkey。 当它不是最后一列时,比较终结符号是null byte
12 BOOLEAN BOOLEAN 0或1 binary表示0是flase, 1是true
13 TIME java.sql.Time 格式: yyyy-MM-dd hh:mm:ss 二进制表示是8位byte的long类型数据, 数据内容是客户端时区自1970-01-01 00:00:00 UTC到现在的毫秒大小(GMT)。此类型与 SQL 92中的Time类型不兼容
14 DATE java.sql.Date 格式: yyyy-MM-dd hh:mm:ss 二进制表示是8位byte的long类型数据, 数据内容是客户端时区自1970-01-01 00:00:00 UTC到现在的毫秒大小(GMT)。此类型与 SQL 92中的DATE类型不兼容。
15 TIMESTAMP java.sql.Timestamp 格式:yyyy-MM-dd hh:mm:ss[.nnnnnnnnn] 二进制表示是8位byte的long类型和4位整型纳秒。8位byte的long类型数据是客户端时区自1970-01-01 00:00:00 UTC到现在的毫秒大小(GMT)。
16 UNSIGNED_TIME java.sql.Time 格式: yyyy-MM-dd hh:mm:ss 二进制表示是8位byte的long类型数据, 数据内容是客户端时区自1970-01-01 00:00:00 UTC到现在的毫秒大小(GMT)。这个类型主要用作序列化映射到已经存在Hbase表的数据,适配HBase Bytes.toBytes(long)方法。
17 UNSIGNED_DATE java.sql.Date 格式: yyyy-MM-dd hh:mm:ss 二进制表示是8位byte的long类型数据, 数据内容是客户端时区自1970-01-01 00:00:00 UTC到现在的毫秒大小(GMT)。这个类型主要用作序列化映射到已经存在Hbase表的数据,适配HBase Bytes.toBytes(long)方法。
18 UNSIGNED_TIMESTAMP java.sql.Timestamp 格式:yyyy-MM-dd hh:mm:ss[.nnnnnnnnn] 二进制表示是8位byte的long类型和4位整型纳秒。8位byte的long类型数据是客户端时区自1970-01-01 00:00:00 UTC到现在的毫秒大小(GMT)。这个类型主要用作序列化映射到已经存在Hbase表的数据,适配HBase Bytes.toBytes(long)方法。
19 VARCHAR(precisionInt) java.lang.String 变长,可选最大长度 对应UTF-8字符通过HBase Bytes.toBytes(String)转换的二进制。如果用于rowkey。 当它不是最后一列时,比较终结符号是null byte
20 CHAR ( precisionInt ) java.lang.String 定长 对应UTF-8字符通过HBase Bytes.toBytes(String)转换的二进制。
21 BINARY ( precisionInt ) byte[] 定长 定长byte数组
22 VARBINARY byte[] 变长 变长byte数组
23 ARRAY [dimension] java.sql.Array - Java原始类型数组,只支持一维数组。例如:VARCHAR ARRAY, CHAR(10) ARRAY [5],INTEGER [],INTEGER [100]

最后更新:2017-11-16 14:34:21

  上一篇:go  剑桥AI公司:7天精通一门新语言,未来将学会7000种语言
  下一篇:go  apache防盗链设置