如何在Hive中访问HBase表,反之亦然?

Abh*_*hek 7 hbase hive sqoop apache-hive

作为开发人员,我通过使用现有MySQL表导入数据为我们的项目创建了HBase表sqoop job.问题是我们的数据分析师团队熟悉MySQL语法,暗示他们可以HIVE轻松查询表.对他们来说,我需要在HIVE中公开HBase表.我不想通过在HIVE中再次填充数据来复制数据.此外,复制数据将来可能会出现一致性问题.

我可以在没有重复数据的情况下暴露HIVE中的HBase表吗?如果是,我该怎么办?另外,如果insert/update/delete我的HBase表中的数据将更新数据出现在HIVE中而没有任何问题?

有时,我们的数据分析团队会在HIVE中创建表格并填充数据.我可以将它们暴露给HBase吗?如果有,怎么样?

Raj*_*h N 7

HBase-Hive集成:

external table为HBase表创建一个in hive允许您查询在Hive中查询的HBase数据,而无需复制数据.您可以只更新或删除HBase表中的数据,也可以在Hive中查看修改后的表.

例:

考虑你有一个带有列的hbase表id,name以及email.

针对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");
Run Code Online (Sandbox Code Playgroud)

有关Hive-Hbase集成的更多信息,请查看此处