如何从Hbase访问Phoenix表

时间:2016-09-14 06:58:06

标签: hbase phoenix

我正在尝试访问从Hbase通过Phoenix创建的表。我能够读取字符串值,但无法读取十进制值。例如,DECIMAL_PLACE_CNT的实际值为6,但是从hbase shellit显示的值= \ xC1 \ x07
我怎样才能将它推断回6?

get 'ODS.CCY',"\x00ANG"
COLUMN                                   CELL
 0:CCY_CTRY_CD                           timestamp=1470245652652, value=NL
 0:CCY_DESC                              timestamp=1470245652652, value=NETHERLANDS ANTILLIAN GUILDER
 0:CCY_RVSE_IND                          timestamp=1470245652652, value=N
 0:DECIMAL_PLACE_CNT                     timestamp=1470245652652, value=\xC1\x07

1 个答案:

答案 0 :(得分:0)

如上所述here,当定义类型为DECIMAL的列时,Phoenix会将值映射到java.math.BigDecimal
在向Hbase写入值时,Phoenix将使用java.math.BigDecimal序列化org.apache.phoenix.schema.types.PDataType.toBytes的值。此方法的源代码为here,通过搜索static int toBytes可以找到准确的位置。