bigdata-20-Hive内外部表

简介: bigdata-20-Hive内外部表

4.7 Hive 内外部表区别

内部表

内部表(Internal table)也称为被Hive拥有和管理的托管表(Managed table)。默认情况下创建的表就是内部表,Hive拥有该表的结构和文件。换句话说,Hive完全管理表(元数据和数据)的生命周期,类似于RDBMS中的表。

当你删除表时,会同时删除数据和元数据

create table student(
    num int,
    name string,
    sex string,
    age int,
    dept string) 
row format delimited 
fields terminated by ',';

可以使用 DESC FORMATTED TABLENAME的格式来获取表的描述信息

外部表

外部表(External table)中的数据不是Hive拥有或管理的,只管理表元数据的生命周期。要创建一个外部表,需要使用EXTERNAL语法关键字。

删除外部表只会删除元数据,而不会删除实际数据。在Hive外部仍然可以访问实际数据。

而且外部表更为方便的是可以搭配location语法指定数据的路径。

create external table student_ext(
    num int,
    name string,
    sex string,
    age int,
    dept string)
row format delimited
fields terminated by ','
location '/stu';

差异

无论内部表还是外部表,Hive都在Hive Metastore中管理表定义及其分区信息。删除内部表会从Metastore中删除表元数据,还会从HDFS中删除其所有数据/文件。

删除外部表,只会从Metastore中删除表的元数据,并保持HDFS位置中的实际数据不变

选择

当需要通过Hive完全管理控制表的整个生命周期时,请使用内部表。

当文件已经存在或位于远程位置时,请使用外部表,因为即使删除表,文件也会被保留。

目录
相关文章
|
15天前
|
SQL 存储 分布式计算
Hive【基础 01】核心概念+体系架构+数据类型+内容格式+存储格式+内外部表(部分图片来源于网络)
【4月更文挑战第6天】Hive【基础 01】核心概念+体系架构+数据类型+内容格式+存储格式+内外部表(部分图片来源于网络)
30 1
|
10月前
|
SQL 存储 安全
Hive 内部表(管理表)和外部表的区别【重点】
Hive 内部表(管理表)和外部表的区别【重点】
281 1
|
11月前
|
SQL 存储 HIVE
Hive 内部表和外部表对比
Hive 内部表和外部表区别
103 0
|
SQL 存储 HIVE
Hive内部表与外部表的区别及使用场景
Hive内部表与外部表的区别及使用场景
|
SQL 存储 缓存
【Hive】如何在 Hive 中创建外部表映射 Hbase 中已存在的表
【Hive】如何在 Hive 中创建外部表映射 Hbase 中已存在的表
901 0
|
SQL 存储 Shell
hive:建库建表、表分区、内部表外部表、数据导入导出
hive:建库建表、表分区、内部表外部表、数据导入导出
366 0
|
SQL 大数据 Apache
Apache Hive--DDL--创建表--内外部表&like复制| 学习笔记
快速学习 Apache Hive--DDL--创建表--内外部表&like复制
Apache Hive--DDL--创建表--内外部表&like复制| 学习笔记
|
SQL 存储 Linux
hive内部表和外部表的区别
hive内部表和外部表的区别
393 0