Hive无法删除表的解决办法

商业智能-ETL 专栏收录该内容
8 篇文章 0 订阅

背景介绍:

业务系统(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方式导入或指定字段的方式导入都可以。
  • 2
    点赞
  • 1
    评论
  • 3
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值