当前位置:   article > 正文

Hbase表映射Hive表三种方法_hive hbase映射表

hive hbase映射表

一、准备

1.1 官方文档

https://cwiki.apache.org/confluence/display/Hive/HBaseIntegration

1.2 依赖服务

Hive3.1.1:https://blog.csdn.net/qq_39680564/article/details/89714184
Hbase2.1.0:https://blog.csdn.net/qq_39680564/article/details/89515459
hadoop3.0.3:https://blog.csdn.net/qq_39680564/article/details/89513162

二、表映射

Hbase表Hive表映射方法
index1hbase_table1列映射(单列)
index1hbase_table2列映射(多列)
index1hbase_table3列族映射

index1表结构
在这里插入图片描述
逻辑关系
在这里插入图片描述

2.1 列映射(单列)

Hive建表语句

CREATE EXTERNAL TABLE hbase_table_1(key string, value string) 
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES("hbase.columns.mapping" = "cf0:indexId") 
TBLPROPERTIES("hbase.table.name" = "index1", "hbase.mapred.output.outputtable" = "index1");
  • 1
  • 2
  • 3
  • 4

在Hive库中创建一个hbase_table_1表,列名为key、value
映射Hbase库中的index1表的cf0:indexId列
key、value为hive表的列名可修改
string为该字段的字符类型可修改

hive库中的表:

hive> show tables;
OK
hbase_table_1
Time taken: 0.03 seconds, Fetched: 1 row(s)
hive> select * from hbase_table_1;
11	11
13	11
9696	100
990111	11
990_11aa_aza	11
Time taken: 1.266 seconds, Fetched: 5 row(s)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

第一列为rowkey的值
第二列为cf0:indexId的值
没有展示cf0:muMac的值

2.2 列映射(多列)

Hive建表语句

CREATE EXTERNAL TABLE hbase_table_2(key int, indexId string, muMac string) 
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' 
WITH SERDEPROPERTIES ("hbase.columns.mapping" = "cf0:indexId,cf0:muMac") 
TBLPROPERTIES("hbase.table.name" = "index1", "hbase.mapred.output.outputtable" = "index1");
  • 1
  • 2
  • 3
  • 4

在Hive库中创建一个hbase_table_2表,列名为key、indexId、muMac
映射Hbase库中的index1表的cf0:indexId与cf0:muMac列
key、indexId、muMac为hive表的列名可修改
string为该字段的字符类型可修改

hive库中的表:

hive> show tables;
OK
hbase_table_1
hbase_table_2
Time taken: 0.02 seconds, Fetched: 2 row(s)
hive> select * from hbase_table_2;
OK
11	11	NULL
13	11	NULL
9696	100	NULL
9901	NULL	uzzu
990111	11	NULL
NULL	11	NULL
Time taken: 0.144 seconds, Fetched: 6 row(s)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

第一列为rowkey的值
第二列为cf0:indexId的值
第三列为cf0:muMac的值

2.3 列族映射

Hive建表语句

CREATE EXTERNAL TABLE hbase_table_3(value map<string,string>,row_key string) 
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = "cf0:,:key") 
TBLPROPERTIES("hbase.table.name" = "index1", "hbase.mapred.output.outputtable" = "index1");
  • 1
  • 2
  • 3
  • 4

在Hive库中创建一个hbase_table_3表,列名为value map、row_key
映射Hbase库中的index1表的cf0:列名
key、indexId、muMac为hive表的列名可修改
string为该字段的字符类型可修改

hive库中的表:

hive> show tables;
OK
hbase_table_1
hbase_table_2
hbase_table_3
Time taken: 0.922 seconds, Fetched: 3 row(s)
hive> select * from hbase_table_3;
{"indexId":"11"}	11
{"indexId":"11"}	13
{"indexId":"100"}	9696
{"muMac":"uzzu"}	9901
{"indexId":"11"}	990111
{"indexId":"11"}	990_11aa_aza
Time taken: 1.469 seconds, Fetched: 6 row(s)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

第一列为键值对
第二列为rowkey的值

三、总结

方法建表语句可视化
单列映射简单友好
多列映射复杂(列多)友好
列族映射简单不友好

推荐hive的可视化连接工具dbeaver:
https://blog.csdn.net/qq_39680564/article/details/89945195
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/78903
推荐阅读
相关标签
  

闽ICP备14008679号