热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Hive和HBase关联

一、建立Hive表,关联HBase表,插入数据到Hive表的同时能够影响HBase表CREATETABLEmydatabase.hive_hbase_emp_table(rowke

一、建立 Hive 表,关联 HBase 表,插入数据到 Hive 表的同时能够影响 HBase 表

CREATE TABLE mydatabase.hive_hbase_emp_table(
rowkey string,
word string
)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" =":key,f1:word")
TBLPROPERTIES ("hbase.table.name" = "test:table1");

hive建表语句中的字段和后面映射hbase的字段是按照顺序一一对应的。

hbase存在rowkey,即默认存在一个key字段,所以hive中第一个字段为代表rowkey的字符串。

创建完成,插入一条数据,"2021-12-15"为 rowkey,"hello world" 为 f1:word的值。

insert into table mydatabase.hive_hbase_emp_table values("2021-12-15","hello world")

可以同时通过hive和hbase shell 查询到该数据。

数据实际上放在HBase的目录


二、在 HBase 中已经存储了某一张表 test:table2,然后在 Hive 中创建一个外部表来关联该表


1、通过hbase shell 创建 test:table2

hbase(main):003:0> create 'test:table2', {NAME => 'f1', VERSIOnS=>5}

2、向hbase表插入一条数据

hbase(main):003:0> put 'recmd:java','2021-12-10','f1:word','rem'

3、创建关联表

CREATE EXTERNAL TABLE mydatabase.relevance_hbase_emp(
rowkey string,
word string
)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" =":key,f1:word")
TBLPROPERTIES ("hbase.table.name" = "test:table2");

通过hql查询

hive (default)> select * from mydatabase.relevance_hbase_emp;


推荐阅读
author-avatar
docetaxel
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有