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的内部表

1,建表语句

create table students
(
    id bigint,
    name string,
    age int,
    school string,
    class string
)
#指定分隔符(下面语句表示数据以逗号分隔开)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','   
#手动指定该内部表表格创建在HDFS下的/user/hive/warehouse目录内,也可以不指定,默认存放/user/hive/warehouse下
LOCATION '/user/hive/warehouse';

2,存储位置

内部表数据存储的位置是hive在hdfs中存在默认的存储路径,即default数据库(默认:/user/hive/warehouse)

3,管理主体

内部表的数据是Hive自身管理,创建内部表时,会将数据移动到数据仓库指向的路径

4,内部表转换为外部表

alter table table_name set tblproperties('EXTERNAL'='TRUE');
可以通过 desc formatted 表名  来查看表的属性

5,数据删除问题

删除内部表会直接删除元数据(metadata)及存储数据,对内部表的修改会将修改直接同步给元数据

二、hive的外部表

1,建表语句

# 关键词external 表示创建的hive表为外部表
create external table students
(
    id bigint,
    name string,
    age int,
    school string,
    class string
)
#指定分隔符(下面语句表示数据以逗号分隔开)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','   
#手动指定该内部表表格创建在HDFS下的/user/hive/warehouse_external 目录内
LOCATION '/user/hive/warehouse_external ';

2,存储位置

外部表数据存储的位置可以自己指定,指定除/user/hive/warehouse以外的路径。

3,管理主体

外部表数据由HDFS管理,创建外部表时,仅记录数据所在的路径,不对数据的位置做任何改变。

4,外部表转换为内部表

alter table table_name set tblproperties('EXTERNAL'='FALSE');
可以通过 desc formatted 表名  来查看表的属性

5,数据删除问题

删除外部表仅仅会删除元数据,HDFS上的文件并不会被删除,而对外部表的表结构和分区进行修改,则需要修复(MSCK REPAIR TABLE table_name)

三、hive内部表与外部表的不同使用场景

1,场景一

因为hive内部表在删除表是同时删除表数据与元数据,而外部表删除的时候,仅仅会删除元数据,HDFS上的文件并不会被删除,所以外部表相对来说更加安全些,数据组织也更加灵活,方便共享源数据。

2,场景二

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

3,场景三

我们在管理表不方便和其他工作共享数据。可以创建一个外部表指向这份数据,而并不需要对其具有所有权。

我们在使用hive内部表与外部表的时候,需要根据合适的业务场景去选择哦!

我是晓之以理的喵~,欢迎大家相互交流!!!

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-05-01 15:49:32  更:2022-05-01 15:53:00 
 
开发: 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 0:49:01-

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