静态分区static partition:手动输入数据分区名称。
动态分区dynamic partition:通过数据来判断数据分区名称。
开启动态分区:set hive.exec.dynamic.partition=true;
set hive.exec.dynamic.partition.mode=nostrict;
set hive.exec.max.dynamic.partitions.pernode=1000;
个country和state变量中,即动态分区是通过位置来对应分区值的。原始表select出来的值和输出partition的值
。
INSERT OVERWRITE TABLE employees
PARTITION (country, state)
SELECT ..., se.st
FROM staged_employees se;
只要位置正确,你可以混用动态分区和静态分区值设定。
INSERT OVERWRITE TABLE employees
PARTITION (country = 'china', state)
SELECT ..., se.st FROM staged_employees se
WHERE = 'china';