hive的动态分区加载数据和静态分区加载数据

静态分区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;

                       hive先获取select的最后两个位置的se.cnty和se.st参数值,然后将这两个值填写到Insert语句partition中的两
                        个country和state变量中,即动态分区是通过位置来对应分区值的。原始表select出来的值和输出partition的值
                        的关系仅仅是通过位置来确定的,和名字并没有关系,比如这里se.cnty和county的名称完全没有关系。
                        INSERT OVERWRITE TABLE employees

                        PARTITION (country, state)

                        SELECT ..., se.cnty, se.st

                        FROM staged_employees se;
                        
                        只要位置正确,你可以混用动态分区和静态分区值设定。
                        INSERT OVERWRITE TABLE employees

                        PARTITION (country = 'china', state)

                        SELECT ..., se.cnty, se.st FROM staged_employees se

                        WHERE se.cnty = 'china';
    原文作者:miss幸运
    原文地址: https://www.jianshu.com/p/0f5cbebd1e16
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞