我在HBase中有一个名为"HISTORY"
的表,其列族"VDS"
和列名ROWKEY, ID, START_TIME, END_TIME, VALUE.
我正在使用Cloudera Hadoop Distribution。我想使用Impala为HBase表提供SQL接口。为了做到这一点,我们必须在Hive中创建相应的外部表?那么如何创建指向这个HBase表的外部hive表呢?
答案 0 :(得分:1)
在Hive查询编辑器中运行以下代码:
CREATE EXTERNAL TABLE IF NOT EXISTS HISTORY
(
ROWKEY STRING,
ID STRING,
START_TIME STRING,
END_TIME STRING,
VALUE DOUBLE
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES
(
"hbase.columns.mapping" = ":key,VDS:ID,VDS:START_TIME,VDS:END_TIME,VDS:VALUE"
)
TBLPROPERTIES("hbase.table.name" = "HISTORY");
不要忘记使用以下bash命令创建外部表后刷新Impala元数据:
echo "INVALIDATE METADATA" | impala-shell;