背景:需要將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...