Я хочу создать внешнюю таблицу улья поверх hbase.
Таблица Hbase создается через Phoenix.
Таблица Phoenix имеет составные первичные ключи, которые, в свою очередь, имеют составные ключи строк в таблице Hbase
Феникс Создать таблицу
CREATE TABLE Employee (
id Bigint Not Null,
dept varchar(10) Not Null,
Name varchar(25),
pincode Integer,
CONSTRAINT Enployee_PK PRIMARY KEY (id,dept));
Заявления о расторжении
upsert into Employee values(1,'DEV','john',1234);
upsert into Employee values(2,'DEV2','john2',2222);
upsert into Employee values(3,'DEV3','john3',3333);
upsert into Employee values(4,'DEV4','john4',4444);
улей внешний стол
CREATE EXTERNAL TABLE hbase_Employee(key struct<id:String,dept:String>,Name String,pincode String) STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,0:NAME,0:PINCODE") TBLPROPERTIES ("hbase.table.name" = "EMPLOYEE");
когда я выбираю из внешней таблицы улья, это дает вывод, как
{"id":"�\u0000\u0000\u0000\u0000\u0000\u0000\u0001DEV","dept":null} john ��
{"id":"�\u0000\u0000\u0000\u0000\u0000\u0000","dept":"DEV2"} john2 �
{"id":"�\u0000\u0000\u0000\u0000\u0000\u0000\u0003DEV3","dept":null} john3 �
{"id":"�\u0000\u0000\u0000\u0000\u0000\u0000\u0004DEV4","dept":null} john4 �\
Мне не нужны значения байтов, мне нужны фактические значения 'id' и 'dept' из таблицы hbase.