Разделение составного hbase rowkey через внешнюю таблицу улья на hbase - PullRequest
0 голосов
/ 28 апреля 2019

Я хочу создать внешнюю таблицу улья поверх 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.

...