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

在了解内部表和外部表区别前,

我们需要先了解一下Hive架构

aa714105a63cbee459616d8ae8038051.png

大家可以简单看一下这个架构图,我介绍其中要点:

Hive的数据分为两种,一种为普通数据,一种为元数据。

  1. 元数据存储着表的基本信息,增删改查记录,类似于Hadoop架构中的namespace。普通数据就是表中的详细数据。
  2. Hive的元数据默认存储在derby中,但大多数情况下存储在MySQL中。普通数据如架构图所示存储在hdfs中。

下面我们来介绍表的两种类型:内部表和外部表

  1. 内部表(MANAGED):hive在hdfs中存在默认的存储路径,即default数据库。之后创建的数据库及表,如果没有指定路径应都在/user/hive/warehouse下,所以在该路径下的表为内部表。
  2. 外部表(EXTERNAL):指定了/user/hive/warehouse以外路径所创建的表
  3. 而内部表和外部表的主要区别就是
  • 内部表:当删除内部表时,MySQL的元数据和HDFS上的普通数据都会删除 ;
  • 外部表:当删除外部表时,MySQL的元数据会被删除,HDFS上的数据不会被删除;

1.准备数据: 按tab键制表符作为字段分割符

c76f1f81e4cbefb55cd1cbbbdf396678.png

2.内部表测试:

2.1 在Hive里面创建一个表:

17f7aeed5e6bddff2f5911479f3ca01c.png

2.2 这样我们就在Hive里面创建了一张普通的表,现在给这个表导入数据:

ce2391c645634bfec8f7a61659cf57ce.png

2.3 内部表删除

9d4570f8f4dc47924dcd0da995325a91.png

3.外部表测试:

3.1 创建外部表多了external关键字说明以及hdfs上location ‘/hive/external’

14033138b9741886248f044e4267ae30.png

创建外部表,需要在创建表的时候加上external关键字,同时指定外部表存放数据的路径

(当然,你也可以不指定外部表的存放路径,这样Hive将 在HDFS上的/user/hive/warehouse/文件夹下以外部表的表名创建一个文件夹,并将属于这个表的数据存放在这里)

3.2 外部表导入数据和内部表一样:

4a56d0ee00472f97d7ee2692c1537a38.png

3.3 删除外部表

f478b7bd196ddbb91e897c415773495c.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值