1、内部表和外部表
没有指定建表的类型的话,默认为内部表(Internal Table或者是Managed Table)
可以通过这行代码查看表的类型:
describe formatted 表名;
内部表和外部表的区别以及适合使用的范围:
2、分区表--避免全表扫描,提高查询效率
需要注意的是,在创建分区表时,分区字段不能再作为表中字段;
因为分区字段也会在表中占用一个字段,故不能相同;
partitioned by (role string)
3、分区表数据加载--静态分区
向分区表中加载数据,只是使用hadoop fs -put这个命令是没有用的,需要用这个命令:
load data local inpath '文件路径' into table 表名 parttiton(分区字段='分区值');
create table t1(
id string,
name string
)partitioned by(name1 string)
row format delimited
fields terminated by ",";
例如:
4、静态加载————多重分区表(PARTITION BY后面指定的分区字段不只有一个)
5、动态加载
insert into table t2 partition(name1)
select tmp.*,tmp.name from t1 tmp;
6、分桶表
分桶的语法:
使用分桶功能时,需要先将分桶功能开启:
set hive.enforce.bucketing=true;
标签:tmp,string,分桶,分区,数据仓库,分区表,加载
From: https://www.cnblogs.com/liuzijin/p/17730216.html