hive外部表删除
hive外部表删除遇到的一个坑操作步骤创建某个表(create external table xxx location xxx)插入数据(insert xxx select xxx from xxx)删除表(drop table xxx)重新创建插入数据查询数据现象查询数据发现部分第一次插入的数据查询数据量发现大于第二次插入的数量原因与其说是坑,不如说是自己忽略了一点:插入的是外部表,当drop表
·
hive外部表删除遇到的一个坑
操作步骤
- 创建某个表(
create external table xxx location xxx
) - 插入数据(
insert xxx select xxx from xxx
) - 删除表(
drop table xxx
) - 重新创建
- 插入数据
- 查询数据
现象
- 查询数据发现部分第一次插入的数据
- 查询数据量发现大于第二次插入的数量
原因
与其说是坑,不如说是自己忽略了一点:
- 插入的是外部表,当drop表之后,数据并没有删除
- 第二次创建表location指向的还是原来的位置
- 也就导致了上述的问题
所以,如果外表想重建并且指向原来的位置,需要注意不要忘记删掉原来位置的文件
注意:[创建外部表的初衷并不是为了删除它,这只是为了删除数据简单想的方式]
Hive中的外部表是比较安全的一种数据管理方式,有时也会误删
使用外部表有一个很好的好处,如果不小心将表误删了,只需要重新创建外部表然后使用下面的语句修复分区即可。
MSCK REPAIR TABLE table_name;
参考:
hive外部表删除遇到的一个坑_weixin_34248023的博客-CSDN博客
更多推荐
所有评论(0)