How do I access HBase table in Hive & vice-versa?
HBase-Hive Integration:
Creating an external table
in hive for HBase table allows you to query HBase data o be queried in Hive without the need for duplicating data. You can just update or delete data from HBase table and you can view the modified table in Hive too.
Example:
Consider you have an hbase table with columns id
, name
and email
.
Sample external table command for hive:
CREATE EXTERNAL TABLE hivehbasetable(key INT, id INT, username STRING, password STRING, email STRING) STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,id:id,name:username,name:password,email:email") TBLPROPERTIES("hbase.table.name" = "hbasetable");
For more information on Hive-Hbase integration look here
Using Apache Phoenix
One quick solution would be to use apache phoenix layer over HBase tables. Apache Phoenix is an interface that enables OLTP SQL queries to be used over Hbase NoSql DB. This doesn't have any additional overhead, rather it produces a view of data present in HBase using SQL queries.
Refer these links for further details:
- https://www.linkedin.com/pulse/apache-phoenix-tool-enables-oltp-sql-queries-over-hbase-g-r/
- https://phoenix.apache.org/