这次我们主要针对hive的操作表做简单的介绍:
- 托管表和外部表
- 分区和桶
这2个部分做简介
Hive表格逻辑上有存储的数据和描述表格中数据形式的相关元数据组成。数据一般存储在HDFS上,也可以存放在本地文件系统中。元数据存放在关系数据库中。
1. 托管表和外部表
托管表
- hive会把数据移动到它的仓库,这里使用的是load的命令,把文件系统的数据移动到hive的仓库目录,如果数据和表的结构不匹配,这里是不会异常,在查询的时候会出现null空值
//加载hdfs的数据,数据会移动到hive的表目录下
create table managed_table(dummy string);
load data inpath '/usr/tom/data.txt' into table manage_table;
//加载本地的数据,增加了local的关键字,数据不会移动
create table managed_table(dummy string);
load data local inpath '/usr/tom/data.txt' into table manage_table;
- 删除表 drop
drop table manage_table ;
会将表的元数据和表的数据一起删除,会导致数据彻底丢失。而load是移动操作,而drop是删除,所以这里是托管表.
外部表
create external table external_table(dummy