Phoenix02 的数据类型介绍


1. 数值类型

数值类型
INTEGER 范围为 -2147483648 到 2147483647 与 java.lang.Integer 映射。但注意的是其二进制表示需要其会把第一个符号位进行翻转,这样保证负数排列在正数前面。
UNSIGNED_INT 范围为0到2147483647 这个是与 java.lang.Integer 对应,其二进制呈现形式和Bytes.toBytes(int) 方法产生的一致。
BIGINT 范围为 -9223372036854775808 到9223372036854775807 与 java.lang.Long 对应。8个字节,同时也是符号位反转。
UNSIGNED_LONG 可能值为 0 到 9223372036854775807 与 Bytes.toBytes(long) 对应。
TINYINT -128 到 127 与 java.lang.Byte 对应。符号位也需要反转。
UNSIGNED_TINYINT 0 到 127 二进制表示形式就是一个单字节,和 Bytes.toBytes(byte) 对应。
SMALLINT -32768 到 32767 与 java.lang.Short 对应。符号位需要反转。
UNSIGNED_SMALLINT 0 到 32767 二进制表示形式与Bytes.toBytes(short)对应。
FLOAT -3.402823466 E+ 38 到 3.402823466 E + 38 与 java.lang.Float 对应,首字节需要反转。
UNSIGNED_FLOAT 0 到 3.402823466 E + 38 二进制表示形式与 Bytes.toBytes(float) 一致。
DOUBLE 范围为 -1.7976931348623158 E + 308 到1.7976931348623158 E + 308 与 java.lang.Double 对应,二进制形式首位需反转。
UNSIGNED_DOUBLE: 0 到 1.7976931348623158E + 308 二进制表示形式与 Bytes.toBytes(double) 对应。
DECIMAL 具有固定精度。最大精度为18位 与 java.math.BigDecimal 对应。其二进制表示形式为可变长度格式。当用于 rowkey 中,其后会产生一个 nullbyte ,除非它是最后一列

2. 布尔类型

Boolean 类型
BOOLEAN 二进制形式 0 表示 false,1 表示true

3. 时间类型

时间类型
TIME 格式为 yyyy-MM-DD hh:mm:ss,具有日期和时间两部分。 与 java.sql.Time 对应。二进制表示形式为8个字节的long型,代表从EPOCH开始的毫秒数
DATE: 格式为 yyyy-MM-DD hh:mm:ss,具有日期和时间两部分。 与 java.sql.DATE 对应。二进制表示形式为8个字节的long型,代表从EPOCH开始的毫秒数
TIMESTAMP 格式为 yyyy-MM-dd hh:mm:ss[.nnnnnnnnn], 与 java.sql.Timestamp,二进制表示为12个字节,8个字节表示 long 毫秒数,4个字节表示 int 纳秒数

4. 字符串类型

字符串类型
VARCHAR 具有最大字节长度(可选)的可变长字符串。当用于 rowkey 时,会在末尾加一个 null 字节,而如果它正好位于 rowkey 最后部分则不加
CHAR 固定长度字符串。 二进制表示是UTF8形式与 Bytes.toBytes(string) 对应

5. 数组类型

数组
BINARY 原始固定长度二进制字节数组, 与byte[]对应
VARBINARY 原始可变长度二进制格式字节数组

文章作者: hnbian
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 hnbian !
评论
  目录