ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

05-Hive内部表和外部表

2021-11-09 15:33:31  阅读:200  来源: 互联网

标签:内部 05 外部 创建 Hive LOCATION table EXTERNAL


Hive内部表和外部表

在hive中,表数据主要分为两种,

第一种:内部表

- 也叫管理表
- 表目录会创建在集群上的{hive .metastore.warehouse.dir}下的相应的库对应的目录中。
- 默认创建的表就是内部表

第二种:外部表

- 外部表需要使用关键字"external",
- 外部表会根据创建表时LOCATION指定的路径来创建目录,
- 如果没有指定LOCATION,则位置跟内部表相同,一般使用的是第三方提供的或者公用的数据。
- 建表语法:必须指定关键字external.
create external table tableName(id int ,name string)[location "path"];

create external table t_user7(
id int,
name string
)
row format delimited
fields terminated by ','
localtion '/publicData'

内部表和外部表转换:

内部表转外部表

alter table t_user6 set tblproperties('EXTERNAL'='TRUE');
注意:颞部表转外部表,true一定要大写

外部表转内部表

alter table t_user6 set set tblproperties('EXTERNAL'='FALSE');
说明:false不区分大小

两者之间的区别

  1. 创建时的差别

    1. 就差两个关键字,EXTERNAL和LOCATION

    2. 内部表 --CREATE TABLE T_INNER (ID INT);
      外部表 --CREATE EXTERNAL TABLE T_OUTER(ID INT) LOCATION 'HDFS:///AA/BB/XX';
      
  2. hive表创建时要做两件事

    1. 在hdfs下创建表目录
    2. 在元数据mysql创建相应表的描述数据(元数据)
  3. drop时有不同的特性

    1. drop时,元素据都会被清除
    2. drop时,内部表的表目录会被删除,但是外部表的表目录不会被删除
  4. 使用场景

    1. 内部表:平时用来测试或者少量数据,并且自己可以随时修改删除数据.
    2. 外部表∶使用后数据不想被删除的情况使用外部表〈推荐使用)所以,整个数据仓库的最底层的表使用外部表

标签:内部,05,外部,创建,Hive,LOCATION,table,EXTERNAL
来源: https://blog.csdn.net/xixihaha_coder/article/details/121229221

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有