hive 表关联hbase表 命令和总结

    在hive shell中创建关联表的命令如下:

CREATE TABLE hive表名(rowkey date-type, value1 date-type, value2 date-type, value3 date-type)    
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'  
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":rowkey,列族名:列名,列族名:列名,列族名:列名")
TBLPROPERTIES("hbase.table.name" = "hbase表名");      

                                                                                                                                                                                                 创建后的表若导入数据,不能直接从hive外面直接导入文件数据到关联表中,需要通过中间表用insert命令导入关联表。


还可以直接对hbase中已经存在的表进行关联,命令基本一样 只有一个地方有区别:

CREATE TABLE hive表名(rowkey date-type, value1 date-type, value2 date-type, value3 date-type)    
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'  
WITH SERDEPROPERTIES ("hbase.columns.mapping" = "rowkey,列族名:列名,列族名:列名,列族名:列名")
TBLPROPERTIES("hbase.table.name" = "hbase表名");      

以上字段名要 “rowkey,列族名:列名,列族名:列名,列族名:列名 ”要对应,rowkey就是行键 前面对比上面的少了一个:号这就是区别。

以上就是代码就创建好了hive关联表,当hive上增加记录时,对应hbase表也会自动添加数据。

hbase表添加数据时,对应的hive表也会跟着添加记录。

表的删除注意事项:

1:第一种创建方法,当先删除hive上的表时,hbase也就不再了。 如果先删除hbase上面的表时,hive上的表show tables;还会显示存在,但是如果查找里面的数据时是没有信息的会报错,输入drop table 表名;后也会报错说不存在该表 ,但是这时候show tables;的时候该表已经消失了。

2:第二种创建方法,当删除hive上的表时,hbase上的关联表没有受到影响,如果先删除hbase上的表时,hive上的表也就会不在了。 



你可能感兴趣的:(hive,hbase,表关联,问题,hive,hbase)