当前位置:   article > 正文

hive load data外部表报错_hive 内部表和外部表

hive 通过分区键查询外部分区表时报错 ttransport.readall

hive以其优良的特性受到越来越多数据仓库使用者的青睐了,其与传统的数据库有相同点也有不同点,DDL操作也有基本相同,但是hive中的表分内部表和外部表的概念(内部表对应hive中的MANAGED_TABLE,外部表对应hive中的EXTERNAL_TABLE),下面主要介绍一下两类表之间的主要区别:

1、建表方式

外表建表是需要添加external的关键字。

--创建内部表

建表的时候也可以指定表的location,即位置

2、是否删除数据

内表在删除表的时候会将其中的表的元数据和数据一并删除。如果在建表的时候指定了表的location的话,load数据的时候会将数据移动到location中,删除表会将location内的全部删除。

而外部表删除表的时候只是删除了表的元数据但是数据是不会被删除的。如果在建表的时候指定了表的location的话,load数据的时候会将数据转到location中(前提是load的数据在hdfs上面),在删除外部表的时候location中的数据会保留的。

个人建议:

hive之所以引入外部表是因为如果大量数据在hdfs上面可以直接加载到表中,无需移动数据,如果你的数据量在TB级别的话,建议直接建立带分区的外表,这样能够直接将数据入库。

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

闽ICP备14008679号