作为一名开发人员,我通过使用以下命令从现有 MySQL 表导入数据,为我们的项目创建了 HBase 表:sqoop job
。问题是我们的数据分析师团队熟悉MySQL语法,意味着他们可以查询HIVE
轻松上桌。对于他们,我需要在 HIVE 中公开 HBase 表。我不想通过在 HIVE 中再次填充数据来复制数据。此外,复制数据将来可能会出现一致性问题。
我可以在 HIVE 中公开 HBase 表吗无需重复数据?如果是,我该怎么做?另外,如果我insert/update/delete
我的 HBase 表中的数据更新后的数据会出现在 HIVE 中吗?
有时,我们的数据分析团队会在 HIVE 中创建表并填充数据。我可以将它们暴露给 HBase 吗?如果是,怎么办?
HBase-Hive 集成:
创建一个external table
Hive 中的 HBase 表允许您在 Hive 中查询 HBase 数据,而不需要复制数据。您可以只更新或删除 HBase 表中的数据,也可以在 Hive 中查看修改后的表。
Example:
假设您有一个包含列的 hbase 表id
, name
and 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");
有关 Hive-Hbase 集成的更多信息,请查看here https://cwiki.apache.org/confluence/display/Hive/HBaseIntegration
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)