Trafodion Rename Table不成功的另外一种解决方法

Trafodion支持使用”Alter table table_name rename to new_name”来修改表名,但有一些特殊情况会遇到”Alter table”不成功的时候,比如会遇到冲突问题,

SQL>alter table JL_AMSE_NEW rename to JL_AMSE;

*** ERROR[8616] A conflict was detected during commit processing. Transaction has been aborted. [2017-09-14 09:25:07]

其实我们也可以通过另外一种方法去实现alter table,即依赖HBase Snapshot功能创建一个新表,新表的数据和表结构与原表完全一致,只是表名不同,然后删除原表即可。

大致步骤如下,
1 在Trafodion中创建新表

create table new_name () ...

2 进入HBase shell,删除刚刚创建的新表
注:此步骤执行完,新表的元数据信息仍然还在

hbase shell
disable 'TRAFODION.SCHEMA_NAME.NEW_NAME';
drop 'TRAFODION.SCHEMA_NAME.NEW_NAME';

3 基于旧表创建Snapshot

snapshot 'TRAFODION.SCHEMA_NAME.OLD_NAME','TRAFODION.SCHEMA_NAME.OLD_NAME_SNAPSHOT'

4 根据上述创建的Snapshot克隆新表

clone_snapshot 'TRAFODION.SCHEMA_NAME.OLD_NAME_SNAPSHOT', 'TRAFODION.SCHEMA_NAME.NEW_NAME'

5 在Trafodion中检查新表是否能正常查询

trafci
select [first 1]* from new_name;

6 如上述没问题则删除Hbase中的Snapshot

delete_snapshot 'TRAFODION.SCHEMA_NAME.OLD_NAME_SNAPSHOT'
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据源的港湾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值