Hive 内部表(管理表)和外部表的区别【重点】

简介: Hive 内部表(管理表)和外部表的区别【重点】

一、内部表和外部表的区别:

内部表和外部表的区别可以从三方面讨论,创建表时、删除表时、选择表时:

1. 创建表:

建表时,未被 external 修饰的是内部表,被 external 修饰的是外部表。

内部表数据由 hive 自身管理,外部表数据由 HDFS 管理。

内部表数据存储的位置默认是 “user/hive/warehouse”,外部表数据存储的位置由自己制定。(如果没有 location,hive 将在 HDFS 上的 “user/hive/warehouse” 文件夹下以外部表的表名创建一个文件夹,并将属于这个表的数据存放在这里)

2. 删除表:

删除内部表会直接删除元数据以及数据,所以管理表不适合和其他工具共享数据

删除外部表仅仅会删除元数据,HDFS 上的文件不会被删除,所以外部表相对更加安全,方便共享元数据。

3. 选择表:

内部表适合数据临时处理、转换等操作,及对数据进行清洗、统计分析、计算等需求;  外部表适用于数据的长期存储、备份和共享等需求。

内部表和外部表没有太大区别,如果所有数据都由 hive 处理则创建内部表;如果数据的处理由 hive 和其他工具一起处理,则创建外部表;

 

二、他们各自的应用场景,你们公司建表是内部还是外部:

内部表适合数据临时处理、转换等操作,及对数据进行清洗、统计分析、计算等需求;  外部表适用于数据的长期存储、备份和共享等需求。

对于建表,不同公司有不同的实践。

一般来说,在数据分析和处理的场景下,内部表应用更加广泛,因为它可以提供更好的数据管理和查询性能。

而外部表更多用于数据仓库和数据湖等需要长期存储和备份的场景。

相关文章
|
4月前
|
SQL 缓存 关系型数据库
ClickHouse(19)ClickHouse集成Hive表引擎详细解析
Hive引擎允许对HDFS Hive表执行 `SELECT` 查询。目前它支持如下输入格式: -文本:只支持简单的标量列类型,除了 `Binary` - ORC:支持简单的标量列类型,除了`char`; 只支持 `array` 这样的复杂类型 - Parquet:支持所有简单标量列类型;只支持 `array` 这样的复杂类型
164 1
|
5月前
|
SQL 关系型数据库 MySQL
Hive 表注释乱码解决
Hive元数据在MySQL默认使用`latin1`字符集导致注释乱码。可通过修改MySQL配置文件`/etc/my.cnf`,在`[mysqld]`和末尾添加`character-set-server=utf8`等设置,重启MySQL。然后在Hive数据库中调整表字段、分区字段、索引注释的字符集。注意,这仅对新表生效。测试创建带注释的Hive表,问题解决。
|
5月前
|
SQL Java 数据处理
【Hive】Hive的函数:UDF、UDAF、UDTF的区别?
【4月更文挑战第17天】【Hive】Hive的函数:UDF、UDAF、UDTF的区别?
|
5月前
|
SQL HIVE
Hive表删除数据不支持使用Delete From...
Hive表删除数据不支持使用Delete From...
161 0
|
5月前
|
SQL 存储 分布式计算
【Hive】hive内部表和外部表的区别
【4月更文挑战第14天】【Hive】hive内部表和外部表的区别
|
5月前
|
SQL 存储 分布式计算
Hive【基础 01】核心概念+体系架构+数据类型+内容格式+存储格式+内外部表(部分图片来源于网络)
【4月更文挑战第6天】Hive【基础 01】核心概念+体系架构+数据类型+内容格式+存储格式+内外部表(部分图片来源于网络)
110 1
|
5月前
|
SQL 数据库 HIVE
Hive【基础知识 05】常用DDL操作(数据库操作+创建表+修改表+清空删除表+其他命令)
【4月更文挑战第8天】Hive【基础知识 05】常用DDL操作(数据库操作+创建表+修改表+清空删除表+其他命令)
79 0
|
5月前
|
SQL 分布式计算 数据处理
【Hive】sort by 和 order by 的区别
【4月更文挑战第15天】【Hive】sort by 和 order by 的区别
|
5月前
|
SQL HIVE
bigdata-20-Hive内外部表
bigdata-20-Hive内外部表
37 0
|
5月前
|
SQL 数据采集 数据挖掘
大数据行业应用之Hive数据分析航班线路相关的各项指标
大数据行业应用之Hive数据分析航班线路相关的各项指标
173 1
下一篇
无影云桌面