@Author : Spinach | GHB
@Link : http://blog.csdn.net/bocai8058
文章目录
同步过程
- 在Hbase中创建一张表create ‘user_sysc’, {NAME => ‘info’};
- 在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')
- 将外部表指向hbase中的表,在hive运行如下:
# 将外部表映射到hbase
insert into table user_sysc select id,name from user_info;
- 然后,在hbase里面运行scan ‘user_sysc’能够看到:
# 扫描查看user_sysc中的内容
scan ‘user_sysc’
- 接下来,在hbase里面运行deleteall ‘user_sysc’, ‘11’删掉一条数据。例如以下:
# 删除整行
deleteall ‘user_sysc’, ‘11’
- 然后,在hive里面查询看看如下:
说明自己主动同步过来了。因此,仅仅要创建hive表时。与hbase中的表做了映射。表名和字段名能够不一致,之后不管在hbase中新增删除数据还是在hive中。都会自己主动同步。
假设在hive里面是创建的外部表须要在hbase中先创建。内部表则会在hbase中自己主动创建指定的表名。
由于hive不支持删除等操作。而hbase里面比较方便,所以我们能够采用这样的方式。
引用:https://www.cnblogs.com/liguangsunls/p/7272848.html
来源:CSDN
作者:GSpinach
链接:https://blog.csdn.net/bocai8058/article/details/82956631