【Hive】drop table需注意外部表

什么是内部表,外部表?

比较专业的定义:

外部表需要转为内部表,执行删除操作才能真的删表结构删表数据。否则drop table仅是删除了表数据,表结构还是存在的。

alter table tb_name set TBLPROPERTIES('EXTERNAL'='false');

这个只是把表设成内部表,如果表本身是外部表的话。如果你本来表就是内部表就不用执行这个

drop table if exists tb_name ;

Q: 内部外部是对生产账号来说的对吗?

A: 不是,内部,外部,是表的一个类型,跟生产帐号没有关系。如果是外部表,你DROP的时候只会删除表分区,但表的文件依然存在,不会做清理。

所以,如果是外部表,你在DROP的时候相当于没有做清理

注意用spark执行会报错,以下语句要使用hive执行。

ALTER TABLE tb_name SET TBLPROPERTIES('EXTERNAL' = 'FALSE');

报错信息:

INFO Error in query: Cannot set or change the preserved property key: 'EXTERNAL';

在知乎看到的解决方案:https://zhuanlan.zhihu.com/p/161771826

(其实并没有说怎么解决,可能只能hive引擎使用)

相关推荐
isNotNullX14 小时前
数据怎么分层?从ODS、DW、ADS三大层一一拆解!
大数据·开发语言·数据仓库·分布式·spark
随心............15 小时前
hive的相关的优化
数据仓库·hive·hadoop
亲亲菱纱17 小时前
数仓面试题
数据仓库
万能小锦鲤17 小时前
《大数据技术原理与应用》实验报告一 熟悉常用的Linux操作和Hadoop操作
大数据·linux·hadoop·ubuntu·vmware·实验报告·大数据技术原理与应用
码字的字节18 小时前
深入解析Hadoop中的HDFS架构设计
大数据·hadoop·hdfs
码字的字节18 小时前
深入探讨Hadoop YARN Federation:架构设计与实践应用
hadoop·yarn·federation
zhangjin122220 小时前
kettle从入门到精通 第九十七课 ETL之kettle kettle资源仓库的5种方式
数据仓库·etl·kettle插件·kettle资源仓库
liupenglove1 天前
自动驾驶数据仓库:时间片合并算法。
大数据·数据仓库·算法·elasticsearch·自动驾驶
吃手机用谁付的款2 天前
基于hadoop的竞赛网站日志数据分析与可视化(下)
大数据·hadoop·python·信息可视化·数据分析
码字的字节2 天前
深入解析Hadoop RPC:技术细节与推广应用
hadoop·rpc