IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Hive内部表和外部表区别 -> 正文阅读

[大数据]Hive内部表和外部表区别

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

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

下面我们将用一个关于NBA球员分析的数据进行区别内部表和外部表。

创建内部表t1

-- 创建有一个内部表t1
drop table if exists t1;
create table t1(
                      name string comment '名字',
                      pos string comment '位置',
                      height double comment '身高',
                      weight int comment '体重',
                      age int comment '年龄',
                      nba_age int comment '球龄',
                      nums int comment '出场次数',
                      avgtime double comment '平均时间',
                      attack double comment '进攻能力',
                      defend int comment '防守能力',
                      allstar string comment '是否进入全明星',
                      income bigint comment '薪资'
) comment "NBA球员分析"
row format delimited
fields terminated by ',';

-- 查看表结构
desc formatted t1;

这里有个table type标明MANAGED_TABLE说明这个表是受监管的。也就是内部表。

创建外部表t2

-- 创建外部表t2
drop table if exists t2;
create external table t2(
                      name string comment '名字',
                      pos string comment '位置',
                      height double comment '身高',
                      weight int comment '体重',
                      age int comment '年龄',
                      nba_age int comment '球龄',
                      nums int comment '出场次数',
                      avgtime double comment '平均时间',
                      attack double comment '进攻能力',
                      defend int comment '防守能力',
                      allstar string comment '是否进入全明星',
                      income bigint comment '薪资'
) comment "NBA球员分析"
row format delimited
fields terminated by ',';

-- 查看表结构
desc formatted t2;

将数据导入到两个表之间然后删除

-- 数据载入t1,t2
load data inpath '/NBA.txt' into table t1;
load data inpath '/NBA.txt' into table t2;
select * from t1;
select * from t2;

查看HDFS端口9870:删除前

?删除后

?HDFS上只有t2的源数据还在,但是它的元数据已经没有了。这里显示表找不到。

而t1在HDFS源数据直接被删除以及元数据也被删除。因为它是内部表。

所以我们在选择建表时,当需要通过Hive完全管理控制表的整个生命周期时,请使用内部表。

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

?

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-02-14 21:14:25  更:2022-02-14 21:15:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 14:11:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码