hive内表和外表

真实数据和元数据区分参考博文:https://blog.csdn.net/u010916338/article/details/90247121

一,内表

1,真实数据存放在hdfs上。

2,真实数据存放在hive默认创建的路径下。

如图所示stu就是内表。

3,内表一般都是先创建表再插入数据。

             注:采用方式(1)插入数据,创建表不需要指定分割符: create table stu (id int,name string);

                    采用方式(2)和(3)插入数据,创建表必须指定分隔符:create table stu1(id int,name string) row format delimited fields terminated by ' ';

          (1)insert into stu values(1,'zhang');

          (2)从Linux服务器本地磁盘加载:load data local inpath '/home/software/2.txt' into table stu;

          (3)不通过load 指令,可以直接向stu(表名)目录下上传一个文件,前提是分割符必须和创建表时指定的一样。思路有三:1,采用命令hadoop fs -put stu3.txt /user/hive/warehouse/park.db/stu    2,采用hdfs追加写入方式,Java和spark均可操作。3,使用flumesink落地到hdfs方式。

 二,外表

1,真实数据存放在hdfs上。

2,但是真实数据没有存放在hive默认创建的路径下。

3,外表一般都是先有了外部数据,然后hive才创建表将其关联起来。

create external table stu (id int,name string) row format delimited fields terminated by  '  ' location   '/data';
 注:这里的‘/data’一定是hdfs上的文件,因为外表只能关联hdfs上的文件。

注意事项:

        内表删除时会删除真实数据,外表删除时不会删除真实数据。原因:内表真实数据存在于hive默认创建的路径下,此数据只有hive会用到,直接删除不影响其他模块使用(比如spark)。但是外表就不同,不单单只有hive使用,如果随意删除会影响其他模块使用。

 

 

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值