前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Hive应用:数据外置内部表 原

Hive应用:数据外置内部表 原

作者头像
云飞扬
发布2019-03-13 10:15:02
4830
发布2019-03-13 10:15:02
举报
文章被收录于专栏:星汉技术星汉技术

介绍

个人认为这种表就体现了Hive的无节操无底线。会颠覆你对外部表和内部表的传统认知。

当你在创建内部表的时候,加上了location和目录,那么你的数据就存放在你指定的目录中,这个目录可以是在HDFS的任意目录,所以如果你的Hive库中存在这样的表,那么你就不能随意地删除你Hive中的任何表,因为使用show tables;命令查看Hive中的表的列表时,没有明确标识哪个表是外部表,哪个表是内部表,不小心删除之后,数据就彻底没了。

示例

先创建HDFS目录/data/person,将数据文件上传到此目录之下。数据内容如下:

代码语言:javascript
复制
1.0|张三|20.0|男|未知|0
2.0|李四|25.0|男|河北|0
3.0|张飞|30.0|男|河北|0
4.0|关羽|35.0|男|山东|0
5.0|小乔|38.0|女|浙江|0
6.0|刘备|40.0|男|成都|0
7.0|小李|29.0|男|江南|0

创建Hive内部表:

代码语言:javascript
复制
hive> create table person(id string,name string,age string,gender string,address string,test int) row format delimited fields terminated by '|' location 'hdfs://192.168.75.150:9000/data/person';
OK
Time taken: 0.148 seconds
hive> select * from person;
OK
1.0	张三	20.0	男	未知	0
2.0	李四	25.0	男	河北	0
3.0	张飞	30.0	男	河北	0
4.0	关羽	35.0	男	山东	0
5.0	小乔	38.0	女	浙江	0
6.0	刘备	40.0	男	成都	0
7.0	小李	29.0	男	江南	0
Time taken: 0.141 seconds, Fetched: 7 row(s)
hive> 

此时就创建了一个数据外置的内部表,这个表也允许先有数据,上面展示的数据,就是证明了这一点,完美展示了数据外置的内部表。

然而如果删除Hive中的这个表的话,数据也会跟着被删除。

下图是数据存放的目录:

在看一下test数据库目录:

没有person表的目录。

接下来将删除person表看看目录的变化:

代码语言:javascript
复制
hive> drop table preson;
OK
Time taken: 0.184 seconds
hive> show tables;
OK
person
promo
tab
Time taken: 0.222 seconds, Fetched: 3 row(s)
hive> drop table person;
OK
Time taken: 0.189 seconds
hive> show tables;
OK
promo
tab
Time taken: 0.076 seconds, Fetched: 2 row(s)
hive> 

第一遍删除竟然没有成功,不知道闹哪样,第二次删除成功,下面是目录结构:

data目录空了,person文件夹也不存在了。

总结

所以综上所述,这种内部表有普通外部表的先有数据的特性,还具有普通内部表删除表数据也同时删除的特性。那么如果这个表也是内部表的话,那么内部表和外部表的区别在哪里?只剩下一个external关键字了,其他的没有区别了,而且Hive中表的列表中没有明确标识表的种类,稀里糊涂一顿删除,有可能删除的就是这种表!

这种表出现有两种可能:一种是创建外部表的时候手误忘记写external关键字,另外一种就是真的需要这样一种表,但是好像在我的职业生涯中,还暂时没有遇到这种需求,而本人只是手误忘记写external关键字,才产生的这种表,然后删除,重新创建,发现存放数据的目录以及数据都没有了,才进一步做了以上的实验来证明这个事情。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018/08/09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
  • 示例
  • 总结
相关产品与服务
大数据
全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档