当前位置:   article > 正文

Hive Managed Table与 External Table区别

managed 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
);
  • 1
  • 2
  • 3
  • 4

创建一个External Table:

create external table xx_external
(
  a int
);
  • 1
  • 2
  • 3
  • 4

说明:

  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部分保留

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

闽ICP备14008679号