Hive外部表使用创建以及删除测试

简述:
Hive外部表会在指定的路径处创建数据目录(hdfs),在所建的hive库中仍保留表名,但是在hdfs中是看不见的; 外部表的查询可以通过所建库下直接查询与内部表无异,跨库则需加上库名;
删除表是删不掉数据的,删除的只是元数据,当给数据附上字段,表名重新创建后还是能直接访问数据。

实例:

create external table external_test 
(
id int, name string
) row format delimited fields terminated by '\t' location '/external_test'     
 create external table external_test (id int, name string) row format delimited fields terminated by '\t' location '/external_test';

(建错之后可以通过 :bin/hadoop fs -rm -r /external_test 删除文件夹)

创建好了之后查看hive所在库的表并向表中插入测试数据,(注意最好不要使用insert into valus的方式,这样会产生临时文件,生产上是禁忌,最好使用load)

show tables

在这里插入图片描述

该表显示是在 hive_test 目录下,继续查看hdfs的文件路径

在这里插入图片描述
其数据表并没有存在于hive_test 库下

继续查看是否在我们指定的数据目录下面:

在这里插入图片描述
此时我们可以得出结论:

外部表会在所建 数据库中有表名出现,但是并不是真实存在于该库下面

但是作为查询,它仍然挂在所建库的名下,比如跨库查询测试一下:

在这里插入图片描述
测试查询完成

之后我们继续测试 删除外部表:

在这里插入图片描述
1)删除之后就不能继续查询数据

在这里插入图片描述
但是hdfs数据目录仍然存在

2) 再以相同的方式创建此外部表 不添加数据的情况下直接查询:

在这里插入图片描述
发现数据是存在的,仍然保留。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值