Hive的DDL--外部表&like复制

①external关键字可以让用户创建一个外部表,在建表的同时指定一个指向实际数据的路径(location)

[xiaokang@hadoop hive_data]$ hadoop fs -mkdir /stu
[xiaokang@hadoop hive_data]$ hadoop fs -put students.txt /stu

可以看到/stu路径下出来一个students.txt
在这里插入图片描述

hive (xiaoliu)> create external table student_ext(sno int,sname string,sex string,sage int,sdept string)
              > row format delimited
              > fields terminated by ','
              > location '/stu';
hive (xiaoliu)> select * from student_ext;
OK
student_ext.sno	student_ext.sname	student_ext.sex	student_ext.sage	student_ext.sdept
95001	李勇	男	20	CS
95002	刘晨	女	19	IS
95003	王敏	女	22	MA
95004	张立	男	19	IS
95005	刘刚	男	18	MA
95006	孙庆	男	23	CS
95007	易思玲	女	19	MA
95008	李娜	女	18	CS
95009	梦圆圆	女	18	MA
95010	孔小涛	男	19	CS
95011	包小柏	男	18	MA
95012	孙花	女	20	CS
95013	冯伟	男	21	CS
95014	王小丽	女	19	CS
95015	王君	男	18	MA
95016	钱国	男	21	MA
95017	王风娟	女	18	IS
95018	王一	女	19	IS
95019	邢小丽	女	19	IS
95020	赵钱	男	21	IS
95021	周二	男	17	MA
95022	郑明	男	20	MA
NULL	NULL	NULL	NULL	NULL

在这里插入图片描述
如上图所示,在默认路径下没有student_ext表,由此也可知student_ext为外部表

②hive创建内部表时,会将数据移动到数据仓库指向的路径;若创建外部表,仅记录数据所在的路径,不对数据的位置做任何改变。在删除表的时候,内部表的元数据和数据会被一起删除,而外部表只删除元数据,不删除数据。

内部表:
#删除一个内部表t1
hive (xiaoliu)> drop table t1;
OK
Time taken: 0.468 seconds

如下图所示,可以看到,t1表以及其结构化数据文件都不见了
在这里插入图片描述

外部表:
#删除外部表student_ext
hive (xiaoliu)> drop table student_ext;
OK
Time taken: 0.153 seconds

在/stu路径下仍然存在student.txt
在这里插入图片描述
可以这样理解,内部表时受hive管理的表,外部表是不受hive管理的表

③like允许用户复制现有的表结构,但是不复制数据。

hive (xiaoliu)> select * from t_user;
OK
t_user.id	t_user.name	t_user.country
6	kongzi	China
7	mozi	China
8	laozi	China
1	Allen	US
2	Bob	US
3	Tom	US
hive (xiaoliu)> create table t_user_copy like t_user;
OK
Time taken: 0.085 seconds
hive (xiaoliu)> select * from t_user_copy;
OK
t_user_copy.id	t_user_copy.name	t_user_copy.country
Time taken: 0.159 seconds
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小刘新鲜事儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值