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

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级别的话,建议直接建立带分区的外表,这样能够直接将数据入库。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值