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));

猜你喜欢

转载自blog.csdn.net/lz6363/article/details/105962422