1. 外部表与内部表、临时表
1.1. 内部表
1 2
| create table test (name string , age string) location '/input/table_data';
|
1.2. 外部表
1
| create external table test (name string , age string) location '/input/table_data';
|
1.3. 区别
- 未被
external
修饰的表是内部表(managed table),被 external
修饰的是外部表(external table)。
- 内部表的数据是由Hive自身管理的,外部表的数据是由HDFS管理的;删除内部表会删除元数据和存储的数据;删除外部表只删除元数据不删除存储的数据。
1.4. 转换
1 2 3 4
| alter table tableA set TBLPROPERTIES('EXTERNAL'='true')
alter table tableA set TBLPROPERTIES('EXTERNAL'='false')
|
2. 临时表
1
| create temporary table (name string , age string)
|
表只对当前session有效,session退出后,表自动删除。不支持分区字段和创建索引。