未被external修饰的是内部表(managed table),被external修饰的为外部表(external table)。

区别

1.  内部表数据由Hive自身管理,外部表数据由HDFS管理;
     2.内部表数据存储的位置是hive.metastore.warehouse.dir(默认:/user/hive/warehouse),外部表数据的存储位置由自己制定(如果没有LOCATION,Hive将在HDFS的/user/hive/warehouse文件夹下以外部表的表名创建一个文件夹,并将属于这个表的数据存放在这里)。
     3.删除内部表会直接删除元数据(metadata)及存储数据;删除外部表仅仅会删除元数据,HDFS上的文件并不会被删除。
     4.对内部表的修改会将修改直接同步给元数据,而对外部表的表结构和分区进行修改,则需要修复(MSCK REPAIR TABLE table_name;)。

创建内部表

CREATE  TABLE IF NOT EXISTS b2(id int,name string,age int
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ',';
hive> describe formatted b2;
OK
# col_name              data_type               comment             id                      int
name                    string
age                     int                                         # Detailed Table Information
Database:               default
Owner:                  hadoop
CreateTime:             Sun Oct 24 02:44:00 CST 2021
LastAccessTime:         UNKNOWN
Protect Mode:           None
Retention:              0
Location:               hdfs://hadoop1:9000/user/hive/warehouse/b2
Table Type:             MANAGED_TABLE
Table Parameters:        transient_lastDdlTime  1635014640          # Storage Information
SerDe Library:          org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
InputFormat:            org.apache.hadoop.mapred.TextInputFormat
OutputFormat:           org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
Compressed:             No
Num Buckets:            -1
Bucket Columns:         []
Sort Columns:           []
Storage Desc Params:         field.delim            ,                   serialization.format    ,
Time taken: 0.218 seconds, Fetched: 29 row(s)

从上面我们可以看到表的类型Table TypeMANAGED_TABLE,即我们创建了一个内部表。

创建外部表

create external table b3(Name String, id Int,age int) row format delimited fields terminated by ',';
hive> describe formatted b3;
OK
# col_name              data_type               comment             name                    string
id                      int
age                     int                                         # Detailed Table Information
Database:               default
Owner:                  hadoop
CreateTime:             Sun Oct 24 03:06:11 CST 2021
LastAccessTime:         UNKNOWN
Protect Mode:           None
Retention:              0
Location:               hdfs://hadoop1:9000/user/hive/warehouse/b3
Table Type:             EXTERNAL_TABLE
Table Parameters:        EXTERNAL               TRUE                transient_lastDdlTime   1635015971          # Storage Information
SerDe Library:          org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
InputFormat:            org.apache.hadoop.mapred.TextInputFormat
OutputFormat:           org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
Compressed:             No
Num Buckets:            -1
Bucket Columns:         []
Sort Columns:           []
Storage Desc Params:         field.delim            ,                   serialization.format    ,
Time taken: 0.226 seconds, Fetched: 30 row(s)

从上图中,我们可以看到,表的类型是"External Table".

什么时候使用哪种表?

Managed Table

数据是临时数据
外部的程序无法访问这些数据
数据会随着表的删除而删除

External Table

数据可以被外部程序访问
你不能基于已经存在的表再创建表
表被删除时,数据不会被删除

hive中的内部表和外部表相关推荐

  1. 六、Hive中的内部表、外部表、分区表和分桶表

    文章目录 内部表 外部表 分区表 分桶表 在Hive数据仓库中,重要点就是Hive中的四个表.Hive 中的表分为内部表.外部表.分区表和分桶表. 内部表 默认创建的表都是所谓的内部表,有时也被称为管 ...

  2. hive中内部表和外部表有什么区别?一般什么时候使用内部表什么时候使用外部表?

    hive中内部表和外部表有什么区别? 在使用hive搭建数据仓库的时候,可以建立两种表格.一种是内部表(managed table),一种是外部表(external table). 内部表建表是不加修 ...

  3. hive内部表与外部表区别

    1.创建内部表与外部表的区别是什么? 2.external关键字的作用是什么? 3.外部表与内部表的区别是什么? 4.删除表的时候,内部表与外部表有什么区别? 5.load data local in ...

  4. Hive 内部表与外部表

    首先查看当前的表: 内部表 查看emp表: 查看这个emp表的详细信息: 可以看到Table Type是一个MANAGED_TABLE,就是所谓的内部表 内部表跟外部表有什么区别 首先看一下mysql ...

  5. hive 创建表_2min快速了解,Hive内部表和外部表

    在了解内部表和外部表区别前, 我们需要先了解一下Hive架构 : 大家可以简单看一下这个架构图,我介绍其中要点: Hive的数据分为两种,一种为普通数据,一种为元数据. 元数据存储着表的基本信息,增删 ...

  6. Hive关于数据表的增删改(内部表、外部表、分区表、分桶表 数据类型、分隔符类型)

    建表 基本语句格式 CREATE [external] TABLE if not exists student #默认建立内部表,加上external则是建立外部表(id int COMMENT'学号 ...

  7. Hive内部表与外部表区别详细介绍

    文章转载自:http://www.aboutyun.com/thread-7458-1-1.html 1.创建内部表与外部表的区别是什么? 2.external关键字的作用是什么? 3.外部表与内部表 ...

  8. Hive内部表和外部表

    hive创建内部表 hive> CREATE TABLE hT1(id INT,name STRING,hobby ARRAY<STRING>,address MAP<STRI ...

  9. hive内部表与外部表入门

    表分类 在Hive中,表类型主要分为两种, 第一种:内部表 也叫管理表 表目录会创建在集群上的{hive.metastore.warehouse.dir}下的相应的库对应的目录中. 默认创建的表就是内 ...

最新文章

  1. 中间层通讯 Socket? Remoting? WCF?
  2. 通过 html5 FileReader 实现上传图片预览功能
  3. Oracle中查看最近被修改过的表的方法
  4. PWA(Progressive Web App)入门系列:Fetch Request Headers Response Body
  5. 如何合理的配置线程数?
  6. 【英语学习】【English L06】U07 Jobs L5 Work overtime
  7. 2799元起!小米CC9 Pro正式开售:1亿像素加持DXOMark总分第一
  8. java分桃子_Java经典编程题分桃子
  9. python自学-学习Python,从入门到精通,其实只需要两个月就够了
  10. ffdshow神奇的功能:视频播放时显示运动矢量和QP
  11. Error:Cannot find bean: org.apache.struts.taglib.html.BEAN in any scope
  12. PyTorch学习—23.PyTorch的基本使用
  13. Netty权威指南(第2版)
  14. centos7 thinkpad trackpoint 中键滚动 关闭粘贴 配置
  15. c语言计算三棱柱体积,三棱柱的体积
  16. 一政网:公务员到底是做什么的?
  17. Java自学教程百度云盘,疯狂加持!腾讯大佬的
  18. python趣味编程100例-儿童Python趣味编程课程
  19. 2022年汽车驾驶员(中级)理论题库模拟考试平台操作
  20. ElasticSearch、ES、es使用教程

热门文章

  1. C语言:统计候选人的得票数
  2. WebView中你不知道的事localStorage
  3. 网站和APP用户注销功能的讨论
  4. 在小程序中使用dayjs
  5. Java 找出1000以内所有的完数
  6. IE-LAB网络实验室:交换机安全简介
  7. python情感分析:基于jieba的分词及snownlp的情感分析!
  8. c#和unity中用的c#的差距
  9. tcp_tw_reuse对客户端的作用
  10. 海尔计算机类,分享海尔计算机类笔试题 -管理资料