Hive内部表(管理表)和外部表的区别

1、定义

Hive内部表:默认创建的表是内部表。hive完全管理表(元数据和数据)的声明周期,类似于RDBMS的表。当删除表时,他会删除源数据以及表的元数据。

Hive外部表:外部表的数据不是Hive拥有或者管理的只管理元数据的声明周期。要创建一个外部表,需要使用external关键字。删除外部表是只会删除元数据,而不会删除实际数据(源数据)。在hive外部依然可以访问实际数据(HDFS)。

2、区别

数据存储位置、数据管理方式、数据的持久性以及数据的导入和更新行为等方面

区别内部表外部表
数据存储位置Hive数据仓库目录,通常位于HDFS(Hadoop Distributed File System)上的/user/hive/warehouse目录下用户指定的位置,如HDFS、本地文件系统等
数据管理方式Hive完全管理,表删除时数据同步被删除用户自行管理,Hive仅在元数据中维护表结构等元数据,不负责表的存储和文件管理。如果删除外部表,外部存储的数据不受影响
数据的持久性加载到表后会永久存储,除非显性删除。重启HIve或重新加载元数据后,内部表数据会保留加载到表后不一定永久存储,由用户管理。若是临时表,会话结束或者Hive重启后可能会丢失
数据导入INSERT语句多种方式加载,如通过LOAD DATA语句从本地文件系统或其他数据源加载数据。
ALTER操作可更改更改表的属性,例如更改列名、添加/删除分区等。仅允许更改表的一些元数据信息,例如重命名表、更改列的注释等,但不能更改表的存储位置或数据本身。

3、适用场景

1、内部表:
适用于需要完全由Hive管理和控制的数据;适合数据临时处理、转换等操作,及对数据进行清洗、统计分析、计算等需求;数据分析和处理的场景应用广泛。
2、外部表:
适用于数据的长期存储、备份和共享等需求;数据仓库和数据湖场景多

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值