Я застрял в очень глупой проблеме, я загружаю данные из корзины s3 в таблицу Hbase. И те же данные должны быть запрошены Фениксом. Ниже приведены шаги, которые я выполнил:
- Создание таблицы в Phoenix.
- Создание таблицы в Hive и загрузка данных из корзины s3.
- Создание внешней таблицы в Hive с использованием HBaseStorageHandler.
- Вставить данные в отображенную таблицу Hive Hbase.
- Вышеуказанные шаги выполняются правильно и данные загружаются, но когда я пытался получить счет в Фениксе, отображается правильный счет, но когда я пытался выполнить оператор select для данных, которые ничего не отображают. Пожалуйста, проверьте ниже и дайте мне знать, если я делаю что-то не так.
Феникс: -
create table ship_mode2
(
sm_ship_mode_sk integer not null primary key,
sm_ship_mode_id char(16) ,
sm_type char(30) ,
sm_code char(10) ,
sm_carrier char(20) ,
sm_contract char(20)
);
Улей -
create external table ship_mode2
(
sm_ship_mode_sk integer ,
sm_ship_mode_id char(16) ,
sm_type char(30) ,
sm_code char(10) ,
sm_carrier char(20) ,
sm_contract char(20)
)ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION 's3/Location for ship_mode csv data/';
Улей -
create external table hbase_hive_ship_mode2(sm_ship_mode_sk
integer ,
sm_ship_mode_id char(16) ,
sm_type char(30) ,
sm_code char(10) ,
sm_carrier char(20) ,
sm_contract char(20) )stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' with SERDEPROPERTIES
("hbase.columns.mapping" = ":key,
0:sm_ship_mode_id,
0:sm_type,
0:sm_code,
0:sm_carrier,
0:sm_contract
")
TBLPROPERTIES ("hbase.table.name" = "SHIP_MODE2");
Загрузка данных -
insert into hbase_hive_ship_mode2 select * from ship_mode2 limit 10;
Феникс -
select count(*) from ship_mode2; o/p =10
select * from ship_mode2; O/p = Blank table.
Замечено, что данные доступны только в первом столбце в другом формате -87697787837 (то же значение для 10 строк). Остальные все столбцы не содержат никаких значений.