当前位置:   article > 正文

【Hive】内外部表的创建和区别_desc formatted table

desc formatted table

内部表(管理表)

  • 默认创建的表都是所谓的管理表,有时也被称为内部表。因为这种表,Hive 会(或多或 少地)控制着数据的生命周期。 Hive 默认情况下会将这些表的数据存储在由配置项hive.metastore.warehouse.dir(例如,/user/hive/warehouse)所定义的目录的子目录下。 当我们删除一个管理表时,Hive 也会删除这个表中数据。管理表不适合和其他工具共享数据。

  • 实例操作
    原始数据

在这里插入图片描述

普通创建表

create table if not exists student( id int, name string
)
row format delimited fields terminated by '\t' stored as textfile
location '/user/hive/warehouse/student';
  • 1
  • 2
  • 3
  • 4

根据查询结果创建表(查询的结果会添加到新创建的表中)

create table if not exists student2 as select id, name from student; 
  • 1

根据已经存在的表结构创建表

create table if not exists student3 like student; 
  • 1

查询表的类型

hive (default)> desc formatted student2;
 Table Type:	MANAGED_TABLE
  • 1
  • 2

外部表

  • 因为表是外部表,所以 Hive 并非认为其完全拥有这份数据。删除该表并不会删除掉这 份数据,不过描述表的元数据信息会被删除掉。

  • 案例实操
    数据
    在这里插入图片描述
    建表语句,创建外部表 创建

create external table if not exists dept( deptno int,
dname string, loc int
)
row format delimited fields terminated by '\t';
  • 1
  • 2
  • 3
  • 4

创建员工表

create external table if not exists emp( empno int,
ename string, job string, mgr int,
hiredate string, sal double,
comm double, deptno int)
row format delimited fields terminated by '\t';
  • 1
  • 2
  • 3
  • 4
  • 5

查看表格式化数据

hive (default)> desc formatted dept;
 Table Type:	EXTERNAL_TABLE
  • 1
  • 2

管理表与外部表的互相转换

修改内部表 student2 为外部表

alter table student2 set tblproperties('EXTERNAL'='TRUE'); 
  • 1

修改外部表 student2 为内部表

alter table student2 set tblproperties('EXTERNAL'='FALSE'); 
  • 1

注意:(‘EXTERNAL’=‘TRUE’)和(‘EXTERNAL’=‘FALSE’)为固定写法,区分大小写!

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

闽ICP备14008679号