Hbase与Hive数据同步

@Author  : Spinach | GHB
@Link    : http://blog.csdn.net/bocai8058

文章目录

同步过程

  1. 在Hbase中创建一张表create ‘user_sysc’, {NAME => ‘info’};
  2. 在hive中运行如下,从而创建一个外部表user_sysc:
# 在hive中创建一个外表
CREATE EXTERNAL TABLE user_sysc (key int, value string) ROW FORMAT SERDE 'org.apache.hadoop.hive.hbase.HBaseSerDe' 
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' 
WITH SERDEPROPERTIES ( 'serialization.format'='\t', 'hbase.columns.mapping'=':key,info:value', 'field.delim'='\t')
TBLPROPERTIES ('hbase.table.name'='user_sysc')
  1. 将外部表指向hbase中的表,在hive运行如下:
# 将外部表映射到hbase
insert into table user_sysc select id,name from user_info;

在这里插入图片描述

  1. 然后,在hbase里面运行scan ‘user_sysc’能够看到:
# 扫描查看user_sysc中的内容
scan ‘user_sysc’

在这里插入图片描述

  1. 接下来,在hbase里面运行deleteall ‘user_sysc’, ‘11’删掉一条数据。例如以下:
# 删除整行
deleteall ‘user_sysc’, ‘11’

在这里插入图片描述

  1. 然后,在hive里面查询看看如下:

在这里插入图片描述

说明自己主动同步过来了。因此,仅仅要创建hive表时。与hbase中的表做了映射。表名和字段名能够不一致,之后不管在hbase中新增删除数据还是在hive中。都会自己主动同步。
假设在hive里面是创建的外部表须要在hbase中先创建。内部表则会在hbase中自己主动创建指定的表名。

由于hive不支持删除等操作。而hbase里面比较方便,所以我们能够采用这样的方式。

引用:https://www.cnblogs.com/liguangsunls/p/7272848.html


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小学僧来啦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值