Hive无法删除表的解决办法

背景介绍:

业务系统(Oracle关系型数据库)针对同一个业务实体,每年设计不同的表,表结构并不一致,有细微差异。
最开始我并不了解这种情况,试图将多张不同结构的表导入同一张hive表,结果第一张表导入成功之后,再导入其他表的数据卡住了,想删除也无法删除该表。

解决办法:

1.解锁该表,删除目标表${table_name}
由于元数据冲突,该表已经被锁,hive存在两种锁,共享锁Shared(S)和排它锁Exclusive(X),共享锁是可以被访问和删除的,排它锁在锁定期间不允许删除表。
所以针对该表该表解锁。
查看锁:

show locks ${table_name} ;

解锁:

unlock table  ${table_name} ;

删除表:

drop table   ${table_name} ;

发现这一步还是卡住了,需要在执行的时候 再开一个hive sql客户端执行解锁

unlock table  ${table_name} ;

等一会儿,就发现删除表执行成功了。

2.多张相同业务实体分表存储,分表之间存在结构差异的数据整合办法:

  • 取最大字段集合,使用query方式导入,对没有的字段置空(null)
  • 取最小字段集合,使用query方式导入或指定字段的方式导入都可以。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值