phoenix和hbase表遷移

工作中有時因爲溝通問題,在phoenix中新建的表和hbase導入數據到表名稱不一樣,需要將有數據的表名更改爲線上有的表名。

思路:在hbase中通過快照方式將有數據的表遷移到線上用的phoenix表

先禁用舊錶
disable 'temp:old_table'
再將舊錶備份成快照
snapshot 'temp:old_table', 'tableSnapshot'
克隆快照數據到新表(注意:新表不能先建,如果已經存在會報錯)
clone_snapshot 'tableSnapshot', 'temp:new_table'
查看新表數據和舊錶數據是否一樣(記錄數)
count 'temp:old_table'
scan 'temp:old_table'
沒問題後刪除快照
delete_snapshot 'tableSnapshot'
刪除舊錶數據
drop 'temp:old_table'
再在phoenix中新建和hbase同名稱的表(注意:必須先將hbase表遷移後再新建phoenix去映射,不然做聚合會報錯)

CREATE TABLE IF NOT EXISTS temp:new_table (
      error_code VARCHAR NOT NULL,
      error_name VARCHAR NOT NULL,
      error_type VARCHAR NOT NULL,
      content VARCHAR NOT NULL
      CONSTRAINT my_pk PRIMARY KEY (error_code, error_name,error_type,content));
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章