閱讀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防盜鏈設置