[Phoenix] 二、数据类型

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

1. INTEGER
2. UNSIGNED_INT
3. BIGINT
4. UNSIGNED_LONG
5. TINYINT
6. UNSIGNED_TINYINT
7. SMALLINT
8. UNSIGNED_SMALLINT
9. FLOAT
10. UNSIGNED_FLOAT
11. DOUBLE
12. UNSIGNED_DOUBLE
13. DECIMAL
14. BOOLEAN
15. TIME
16. DATE
17. TIMESTAMP
18. UNSIGNED_TIME
19. UNSIGNED_DATE
20. UNSIGNED_TIMESTAMP
21. VARCHAR
22. CHAR
23. BINARY
24. VARBINARY
25. ARRAY

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

 

转自:https://yq.aliyun.com/articles/253048

交流

如果大家对HBase有兴趣,致力于使用HBase解决实际的问题,欢迎加入Hbase技术社区群交流:

微信HBase技术社区群,假如微信群加不了,可以加秘书微信: SH_425 ,然后邀请您。

 

 

​  钉钉HBase技术社区群

转载于:https://www.cnblogs.com/hbase-community/p/8655347.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值