文章目录

  • 一、准备
    • 1.1 官方文档
    • 1.2 依赖服务
  • 二、表映射
    • 2.1 列映射(单列)
    • 2.2 列映射(多列)
    • 2.3 列族映射
  • 三、总结

一、准备

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表 映射方法
index1 hbase_table1 列映射(单列)
index1 hbase_table2 列映射(多列)
index1 hbase_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");

在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)

第一列为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");

在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)

第一列为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");

在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)

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

三、总结

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

推荐hive的可视化连接工具dbeaver:
https://blog.csdn.net/qq_39680564/article/details/89945195

Hbase表映射Hive表三种方法相关推荐

  1. mysql改存储引擎教程_MySQL中修改数据表存储引擎的三种方法

    第一种方法:ALTER TABLE 将表从一个引擎修改为另一个引擎最简单的办法是使用ALTER TABLE语句,转换表的存储引擎会导致失去原引擎相关的所有特性. 例:将mytable的引擎修改为Inn ...

  2. Spring Boot(三):RestTemplate提交表单数据的三种方法

    在REST接口的设计中,利用RestTemplate进行接口测试是种常见的方法,但在使用过程中,由于其方法参数众多,很多同学又混淆了表单提交与Payload提交方式的差别,而且接口设计与传统的浏览器使 ...

  3. 关于表单序列化的三种方法:

    转自:https://blog.csdn.net/vivian_wang07/article/details/78749771 表单序列化: 方法1:serialize(): 就是把表单信息序列化成一 ...

  4. 两个有序表的合并(三种方法)

    设有两个递增排列的有序表,要求合并后仍按递增(非递减)有序排列 目录 一.顺序表 1.1 初始化顺序表 1.2 创建顺序表 1.3 合并两个有序表 1.4

  5. php mysql 表字段_php mysql获取表字段名称和字段信息的三种方法

    php mysql获取表字段名称和字段信息的三种方法 先给出本实例中使用的表的信息: 使用desc获取表字段信息 php代码如下: mysql_connect("localhost" ...

  6. latex自动生成中文目录_自动生成工作表目录三种方法,看哪种适合你?

    如果在一个工作簿内有很多工作表需要去维护管理,一个个的查找显然是很麻烦的,建立一个工作表的导航目录无疑是最便捷的方法. 下面介绍三种生成工作表目录的方法: 一.利用宏表函数生成可导航目录 第1步:定义 ...

  7. 统计内表行数常用的三种方法

    以下是统计内表行数常用的三种方法, 如下:   1.LOOP AT it_itab.    g_lines2 = g_lines2 + 1.    ENDLOOP.    该方法是通过循环内部表自己累 ...

  8. ABAP中创建动态内表的三种方法(转载)

    BAP中创建动态内表的三种方法 第一种: 如果我们需要的动态内表字段或者动态工作区和数据字典中的类型一致,可以直接使用CREATE DATA生成,当然也可以是自定义类型. 比如要产生和数据表MARA结 ...

  9. oracle数据迁移过程中,把表中数据导出为txt文件的三种方法

    在数据迁过程中需求需要将oracle数据库数据导出程txt格式然后再导入db2库中,经查询实验汇总三种方法: 1.plsqldev 里面有一个选项可以把表以excel格式到时 2.使用spool sq ...

最新文章

  1. 51CTO交流摘录(2):SOC的应用现状
  2. 小米游戏本bios_小米游戏本2019款发布:顶配i7-9750H+RTX2060+144Hz
  3. css聊天布局,CSS实现聊天布局
  4. 关于返回结构体的函数
  5. LeetCode 67. 二进制求和
  6. 一键 caddy php h5ai_H5ai 在线播放搭建
  7. Jenkins使用经验谈
  8. 学习指南:零基础java入门教程(入门篇)
  9. 深度学习领域最新的技术(CV、NLP)
  10. 《软件开发》串口调试助手
  11. python 进行照片分类_python 照片文件名分类
  12. IDC发布中国AI云服务市场报告 百度智能云排名第一
  13. 随机数模拟抛硬币实验
  14. Win10怎么删除快速访问中最近使用文件记录
  15. vscode中选中多行多光标进行操作及一些常用的命令(快捷键)
  16. 【知其然,知其所以然】配置中心 Apollo源码剖析
  17. 用友T3的常见下载地址及问题解决(精华)
  18. 基于jQuery实现tab选项卡【js实现页签切换】
  19. 首次!中控技术先进控制系统成功应用于R125装置
  20. 松拓手表如何不连接计算机更新,QA 斯巴达常见问题解答(配对、固件更新)...

热门文章

  1. 荣耀magicbook笔记本如何重装win10系统教程
  2. 分析事件监听器注解:@EventListener、@TransactionalEventListener
  3. 微信小程序实现单选跳跃选择动画
  4. 关于SynchronousQueue线程池使用的一些认识
  5. three.js 根据不同的图片做不同的动画特效 科技感十足
  6. CMD指令 javac不是内部指令
  7. 君莫问海角天涯,可四海为家
  8. 基于模拟退火和粒子群算法结合的MATLAB
  9. win2012配置pptp_windows server 2008 R2 单网卡静态地址搭建pptp服务器
  10. 两个复数相乘取共轭的结论