前面两篇文章我已经对hive的基本定义、安装以及简单实用做了一个详细的介绍,今天我就对hive中表的类型在做一个简单介绍,希望各位看官满意~
一、hive中表的分类
hive中的表可以分为外部表和内部表。
(1)内部表(MANAGED_TABLE,又被称为管理表、受控表)
它指的是表中数据受到了表定义的影响,在删除表的定义时,表中的数据也会随之被删除。
创建内部表(就是普通的建表语句):
hive> create table fz
> (id int,name string,age int,tel string)
> ROW FORMAT DELIMITED
> FIELDS TERMINATED BY ',';
(2)外部表(EXTERNAL_TABLE)
它指的是表中数据不受表定义的影响,当删除表结构时,表中的数据并不会被删除。它其实相当于java中的引用。
外部表相对于内部表来说,有两大好处:
①可以提高数据安全,在删除表时,并不会对数据造成影响。
②操作共享数据。
创建外部表(使用关键字external ):
create external table t8_external_1 (id int) location '/input/hive';
在创建表的时候,要指定数据所在的目录,注意:此处是目录,而不是文件
或者直接使用:alter table t8_external set location '/inp