一、Hive分区。
是指按照数据表的某列或某些列分为多个区,区从形式上可以理解为文件夹,
比如我们要收集某个大型网站的日志数据,一个网站每天的日志数据存在同一张表上,由于每天会生成大量的日志,导致数据表的内容巨大,在查询时进行全表扫描耗费的资源非常多。那其实这个情况下,我们可以按照日期对数据表进行分区,不同日期的数据存放在不同的分区,在查询时只要指定分区字段的值就可以直接从该分区查找。
常用的分区字段都是按照时间来区分。
#创建分区表
create table t1 (
id int comment '编号',
name string comment '姓名',
age int comment' 年龄'
)
partitioned by (pdate string)
row format delimited fields terminated by '\001'
;
常用命令:
查看分区数据:
select * from t1 where pdate='2020-01-01';
查看有哪些分区:
show partitions t1;
向分区插入数据:
insert overwrite table t1 partition(pdate='2020-01-01')
select * from xxx
使用场景:
庞大的数据集可能需要耗费大量的时间去处理。在许多场景下,可以通过分区或切片的方法减少每一次扫描总数据量,这种做法可以显著地改善性能。
数据会依照单个或多个列进行分区,通常按照时间、地域或者是商业维度进行分区。比如vido表&#