当前位置:   article > 正文

hive内表和外表_hive外表

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使用,如果随意删除会影响其他模块使用。

 

 

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/451053
推荐阅读
相关标签
  

闽ICP备14008679号