• [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

    INTEGER INTEGER [-2147483648, 2147483647] binary表示是4个byte的整数, 符号位被翻转(为了让负数排在正数前面)

    2

    UNSIGNED_INT Integer [ 0,2147483647] binary表示是4个byte的整型。这个类型主要用作序列化映射到已经存在Hbase表的数据,适配HBase Bytes.toBytes(int)方法。

    3

    BIGINT Long [-9223372036854775808 ,9223372036854775807] binary表示是8位byte的Long类型, 符号位被翻转(为了让负数排在正数前面)

    4

    UNSIGNED_LONG Long [0 ,9223372036854775807] binary表示是8位byte的Long类型。这个类型主要用作序列化映射到已经存在Hbase表的数据,适配HBase Bytes.toBytes(long)方法。

    5

    TINYINT Byte [-128,127] binary表示是单个byte,为了排序符号位被翻转。

    6

    UNSIGNED_TINYINT Byte [0,127] binary表示是单个byte。这个类型主要用作序列化映射到已经存在Hbase表的数据,适配 HBase Bytes.toBytes(byte)方法。

    7

    SMALLINT Short [-32768,32767] binary表示是两个byte,为了排序符号位被翻转。

    8

    UNSIGNED_SMALLINT Short [0,32767] binary表示是两个byte。这个类型主要用作序列化映射到已经存在Hbase表的数据,适配HBase Bytes.toBytes(short)方法。

    9

    FLOAT Float [-3.402823466 E + 38,3.402823466 E + 38] binary表示是四个byte, 为了排序符号位被翻转。

    10

    UNSIGNED_FLOAT Float [0,3.402823466 E + 38] binary表示是四个byte。这个类型主要用作序列化映射到已经存在Hbase表的数据,适配HBase Bytes.toBytes(float)方法。

    11

    DOUBLE DOUBLE [-1.7976931348623158 E + 308,1.7976931348623158 E + 308] binary表示是8个byte,为了排序符号位被翻转。

    12

    UNSIGNED_DOUBLE DOUBLE [0,1.7976931348623158 E + 308] binary表示是8个byte。这个类型主要用作序列化映射到已经存在Hbase表的数据,适配HBase Bytes.toBytes(double)方法。

    13

    DECIMAL(precision,scale) BigDecimal 最大精度38位 binary是可比较的边长格式。如果用于rowkey。 当它不是最后一列时,比较终结符号是null byte

    14

    BOOLEAN BOOLEAN 0或1 binary表示0是flase, 1是true

    15

    TIME java.sql.Time 格式: yyyy-MM-dd hh:mm:ss 二进制表示是8位byte的long类型数据, 数据内容是客户端时区自1970-01-01 00:00:00 UTC到现在的毫秒大小(GMT)。此类型与 SQL 92中的Time类型不兼容

    16

    DATE java.sql.Date 格式: yyyy-MM-dd hh:mm:ss 二进制表示是8位byte的long类型数据, 数据内容是客户端时区自1970-01-01 00:00:00 UTC到现在的毫秒大小(GMT)。此类型与 SQL 92中的DATE类型不兼容。

    17

    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)。

    18

    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)方法。

    19

    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)方法。

    20

    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)方法。

    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

    VARBINARY byte[] 变长 变长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技术社区群

  • 相关阅读:
    PAT1064(上)分析部分
    网络支付极其简单的体会
    L3,please send me a card
    PAT1008
    里氏转换
    数组遍历问题
    注册登录界面(简陋版)
    表单事件,onblur,onfocus,焦点
    复制所有链接,全选,反选
    剪切板
  • 原文地址:https://www.cnblogs.com/hbase-community/p/8655347.html
Copyright © 2020-2023  润新知