为什么要分区?单分区和多分区的区别?
随着系统运行时间增长,表的数据量越来越大,而hive查询时通常是是全表扫描,这样将导致大量的不必要的数据扫描,从而大大减低查询效率。从而引进分区技术,使用分区技术,避免hive全表扫描,提升查询效率。1
可以将用户的整个表的数据在存储时划分到多个子目录,从而在查询时可以指定查询条件(子目录以分区变量的值来命名)eg:year=‘2018’。2
静态分区
1、创建单分区
create table tab(
id int,
name string,
age int)
partitioned by (dt int)
row format delimited
fields terminated by ','
collection items terminated by '-'
map keys terminated by ':'
lines terminated by '\n';
2、创建成功
3、 分区字段不能与表中其他字段重复 否则会报错 ↓ ↓ ↓
查看一下表的结构
desc tab;
查看表的数据