1.插入的值如果是字符串的话,必须要用单引号括起来,不能用双引号
2.建表的时候如果要想小写的话,必须要用双引号括起
插入:upsert into "test" values('002','Jack','Ma','ali','hangzhou');
更新:upsert into "test"(empid,"name","address") values('002','Ali','Hangzhou')
index ::CREATE INDEX "my_index" ON "test" ("company"."name");
phoenix 建表无法映射hbase已有字段的问题解决(开启namespace后出现的问题)
phoenix版本:4.13.2-cdh5.11.2
遇到问题:当开启phoenix namespace功能之后,在phoenix中映射已有hbase的数据时,出现phoenix建表时不能匹配hbase表已有字段的问题:
如图:
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>
最后测试:
上边解决方法任意一种都可以,统一把控可直接在hbase-site.xml做统一配置
参考:https://phoenix.apache.org/columnencoding.html