Hive Managed Table与 External Table区别

在Hive上有两种类型的表,一种是Managed Table,另一种是External Table。
它俩的

主要区别在于

当我们drop表时,Managed Table会同时删去data和meta data,而External Table只会删meta data。

一、Create Table

两者建表区别在于external关键字。
创建一个Managed Table:

create table xx_managed
(
  a int
);

创建一个External Table:

create external table xx_external
(
  a int
);

说明:

  1. Managed Table和External Table在建表时都可以指定data的location,也可以不指定,不指定时会使用默认的location。默认location通过$HIVE_HOME/conf/hive-site.xml中的hive.metastore.warehouse.dir设置
  2. 表建好后同样可以变更表的location属性,通过语句alter table xx_external set location '…'来变更

二、Drop Table

两者都是通过drop table xx来删表,但是Managed Table会同时删去data和meta data,而External Table只会删meta data。

三、使用场景

Managed Table
需要Hive全权负责Managed Table的data和meta data的生命周期管理时,即Table的data和meta data均有hive负责产出、修改和删除。
External Table
Table的data部分被hive以外的程序使用或者修改时,如MR Job处理log
Drop表时希望data部分保留

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值