Hive内部表与外部表的区别具体说明

文章介绍了在Hadoop环境下对内部表和外部表的操作,包括创建、加载数据、查询及删除。内部表在删除时会一并删除对应HDFS上的数据,而外部表则不会影响HDFS上的文件。示例中展示了如何从/local文件系统向HDFS上传文件,并将其与表关联。
摘要由CSDN通过智能技术生成

目录

1.在/opt/atguigu/目录下,新建两个txt文件

2.在hadoop的web端递归创建一个目录,存储这两个文件

3.查看web端的文件

一、内部表:

1.创建一个内部表,并指定内部表的存储位置

2.查看内部表,内部表中没有数据

3.加载本地数据到内部表

4.再次查询,此时内部表中有数据

5.清空内部表,上传hdfs上的数据到内部表,内部表有数据

6.但是/file/txt目录下上传到内部表的文件数据被剪切

7.删除内部表,hdfs上传到内部表的数据也被删除

二、外部表

1.创建一个外部表,指定外部表的路径在公共文件目录下

2.直接查询外部表,公共文件中的数据直接上传到外部表

3.删除外部表,公共文件的数据不会被删除

三、总结


1.在/opt/atguigu/目录下,新建两个txt文件

[root@lxm147 atguigu]# cat /opt/atguigu/student.txt
1001    student1
1002    student2
1003    student3
1004    student4
1005    student5
1006    student6
1007    student7
1008    student8
1009    student9
1010    student10
1011    student11
1012    student12
1013    student13
1014    student14
1015    student15
1016    student16


[root@lxm147 atguigu]# cat /opt/atguigu/student2.txt 
1001	student1
1002	student2
1003	student3
1004	student4
1005	student5
1006	student6
1007	student7
1008	student8
1009	student9
1010	student10

2.在hadoop的web端递归创建一个目录,存储这两个文件

dfs -mkdir -p /file/txt;

dfs -put /opt/atguigu/student.txt /file/txt;
dfs -put /opt/atguigu/student2.txt /file/txt;

3.查看web端的文件

dfs -ls /file/txt;

一、内部表:

1.创建一个内部表,并指定内部表的存储位置

create table if not exists student
(
    id   int,
    name string
)
    row format delimited fields terminated by '\t'
    location '/tables'; 

2.查看内部表,内部表中没有数据

select * from student;

3.加载本地数据到内部表

load data local inpath '/opt/atguigu/student.txt' into table student;

4.再次查询,此时内部表中有数据

5.清空内部表,上传hdfs上的数据到内部表,内部表有数据

truncate table student;

load data inpath '/file/txt/student2.txt' into table student;

select * from student;

6.但是/file/txt目录下上传到内部表的文件数据被剪切

7.删除内部表,hdfs上传到内部表的数据也被删除

drop table student;

二、外部表

1.创建一个外部表,指定外部表的路径在公共文件目录下

create external table if not exists student_wb
(
    id   int,
    name string
)
    row format delimited fields terminated by '\t'
    location '/file/txt';

2.直接查询外部表,公共文件中的数据直接上传到外部表

select * from student_wb;

3.删除外部表,公共文件的数据不会被删除

drop table student_wb;

dfs -ls /file/txt;

三、总结

将hdfs上的数据上传到内部表中,数据是被剪切到内部表中,内部表删除,hdfs上的数据也被删除;

将hdfs上的数据上传到外部表中,数据是被拷贝到外部表中,外部表删除,hdfs上的数据不会被删除。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值