1. 程式人生 > >hive 表關聯hbase表 命令和總結

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上的表也就會不在了。