HBase資料遷移至Hive

2021-07-30 18:56:26 字數 1555 閱讀 9493

背景:需要將hbase中表xyz(列簇cf1,列val)遷移至hive

1. 建立hive和hbase的對映關係

1.1 執行hive shell進入hive命令列模式,執行如下指令碼

create

external

table hbase_table_1(key

int, value string)

stored by

'org.apache.hadoop.hive.hbase.hbasestoragehandler'

tblproperties ("hbase.table.name" = "xyz", "hbase.mapred.output.outputtable" = "xyz");

(external表示hbase中已經存在了xyz表;如果hbase中不存在,則去掉external關鍵字,執行命令後,將會在hbase中建立xyz表)

1.2 在hive中檢視hbase_table_1

1.3在hbase中檢視xyz

2. 插入資料測試

2.1 在hbase端xyz表插入資料

2.1.1 在hive中的hbase_table_1表檢視

2.2 在hive端hbase_table_1表插入資料

2.2.1 在hbase中的xyz表檢視

總結

至此其實並沒有將hbase的資料遷移到hive中,或者說是物理遷移(將hbase中的資料拷貝至hive檔案系統,並生成相應檔案),只是在hive中建了乙個與hbase表有一一對映的關係表(如果熟悉關係型資料庫的,可以把這種對映關係理解為關係型資料庫間的dblink。),通過hive這個表你可以進行查詢、新增,但是不能做修改、刪除操作。如下圖所示:

此時資料只存在於hbase中,從hive表對應的檔案目錄中並沒有具體檔案,就可以得出這個結論。

如果需要真正在hive中儲存有資料,可以通過

create

table hbase_table_hive as

select * from hbase_table_1;

生成乙個新的hive表,這個表中的資料就儲存在hive檔案系統中的。

Oracle資料遷移至HBase操作記錄

近期需要把oracle資料庫中的十幾張表t級別的資料遷移至hbase中,過程中遇到了許多苦難和疑惑,在此記錄一下希望能幫到一些有同樣需求的兄弟。首先,是根據oracle的資料規劃hbase的表和表結構。從業務上看,十幾張表大概可以分為兩大部分 剛開始的計畫是將所有表都匯入hbase中的一張大表,但是...

Oracle資料遷移至HBase操作記錄

hbase 近期需要把oracle資料庫中的十幾張表t級別的資料遷移至hbase中,過程中遇到了許多苦難和疑惑,在此記錄一下希望能幫到一些有同樣需求的兄弟。首先,是根據oracle的資料規劃hbase的表和表結構。從業務上看,十幾張表大概可以分為兩大部分 剛開始的計畫是將所有表都匯入hbase中的一...

hbase資料遷移到hive中

描述 原先資料是儲存在hbase中的,但是直接查詢hbase速度慢 hbase是寬表結構 所以想把資料遷移到hive中 1.先hbase 和 hive建立 外部表鏈結,可以在hive直接查詢 2.利用建立的外部表,直接在hive中建立內部表 直接上 建立hive外部表鏈結 create extern...