phoenix 建表无法映射hbase已有字段的问题解决(开启namespace后出现的问题)

phoenix版本:4.13.2-cdh5.11.2

遇到问题:当开启phoenix namespace功能之后,在phoenix中映射已有hbase的数据时,出现phoenix建表时不能匹配hbase表已有字段的问题:

如图:

phoenix 建表无法映射hbase已有字段的问题解决(开启namespace后出现的问题)

hbase的字段NT_SALE_ORDER_ID没有被映射过来

解决,这里有两种解决办法:

1、在建表时添加参数“COLUMN_ENCODED_BYTES = 0”

例:

CREATE TABLE NT_SALE_ORDER(

id VARCHAR NOT NULL PRIMARY KEY, 

"info"."NT_SALE_ORDER_ID" VARCHAR)

COLUMN_ENCODED_BYTES = 0;

2、在phoenix client的hbase-site.xml中添加配置,

<property>

<name>phoenix.default.column.encoded.bytes.attrib</name>

<value>0</value>

</property>

最后测试:

phoenix 建表无法映射hbase已有字段的问题解决(开启namespace后出现的问题)

上边解决方法任意一种都可以,统一把控可直接在hbase-site.xml做统一配置

参考:https://phoenix.apache.org/columnencoding.html