hive外部表删除遇到的一个坑

操作步骤

  1. 创建某个表(create external table xxx location xxx
  2. 插入数据(insert xxx select xxx from xxx)
  3. 删除表(drop table xxx
  4. 重新创建
  5. 插入数据
  6. 查询数据

现象

  • 查询数据发现部分第一次插入的数据
  • 查询数据量发现大于第二次插入的数量

原因

与其说是坑,不如说是自己忽略了一点:

  • 插入的是外部表,当drop表之后,数据并没有删除
  • 第二次创建表location指向的还是原来的位置
  • 也就导致了上述的问题

所以,如果外表想重建并且指向原来的位置,需要注意不要忘记删掉原来位置的文件

注意:[创建外部表的初衷并不是为了删除它,这只是为了删除数据简单想的方式]

Hive中的外部表是比较安全的一种数据管理方式,有时也会误删

使用外部表有一个很好的好处,如果不小心将表误删了,只需要重新创建外部表然后使用下面的语句修复分区即可。

MSCK REPAIR TABLE  table_name;

参考:

hive外部表删除遇到的一个坑_weixin_34248023的博客-CSDN博客

Hive外部表误删后的恢复_需求是无耻的-CSDN博客_hive 修复外部表

HIVE删除外部表_行走的IT-CSDN博客_hive删除外部表

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐