在Hive中,内部表和外部表的区别主要有如下几点:
1,通过external关键字区分
内部表:内部表直接使用create table 内部表名 的形式创建即可
外部表:外部表需要使用external 关键字来修饰,因此创建外部表语法时,create external table table 外部表名
2,在Hive中的管理范围不一样
内部表:表类型表示为Manage_table ,Hive在管理内部表时当使用drop删除表,既能删除内部表的元数据,也能删除在HDFS中的实际数据,因此,Hive能完全控制和管理内部表,所以内部表也可以称为管理表
外部表:表类型表示为,external_taable,Hive在管理外部表时,只能删除元数据信息,而不能删除HDFS中的实际数据,当使用drop删除外部表时,只能删除外部表的元数据,而不能删除外部表位于HDFS中的真实数据,因此,Hive仅能管理外部表的部分内容,所以外部表也可以称为关联表。
3,两类表更改表结构的操作有所不同
内部表:更改内部表结构时,HDFS中可以同步更改数据结果;
外部表:当对外部表更改结构后,HDFS中不能立马同步结果,而需要进行对外部表进行修复操作;
内部表与外部表的区别(二)
最新推荐文章于 2024-07-12 22:15:20 发布