1.分区
按照数据表的某列或某些列分为多个分区,分区从形式上可以理解为文件夹,比如我们要收集某个大型 网站的日志数据,一个网站每天的日志数据存在同一张表上,由于每天会生成大量的日志,导致数据表 的内容巨大,在查询时进行全表扫描耗费的资源非常多。那其实这个情况下,我们可以按照日期对数据 进行分区,不同日期的数据存放在不同的分区,在查询时只要指定分区字段的值就可以直接从该分区查 找。分区是以字段的形式在表结构中存在,通过describe table命令可以查看字段存在,但是该字段不存 放实际的数据内容,仅仅是分区的表示。
1. 静态分区
create table if not exists sopdm.wyp2(id int,name string,tel string)
partitioned by(age int) row format delimited fields terminated by ‘,’ stored as textfile;
-- overwrite是覆盖,into是追加
insert into table sopdm.wyp2 partition(age=‘25’) select id,name.tel from sopdm.wyp;
2. 动态分区
-- 设置为true表示开启动态分区功能(默认为false)
set hive.exec.dynamic.partition=true