靜態(tài)分區(qū) SP(static partition)
1、靜態(tài)分區(qū)是在編譯期間指定的指定分區(qū)名
2、支持load和insert兩種插入方式
2.1load方式
1)會將分區(qū)字段的值全部修改為指定的內(nèi)容
2)一般是確定該分區(qū)內(nèi)容是一致的時候才會使用
2.2insert方式
1)必須先將數(shù)據(jù)放在一個沒有設(shè)置分區(qū)的普通表中
2)該方式可以在一個分區(qū)內(nèi)存儲一個范圍的內(nèi)容
3)從普通表中選出的字段不能包含分區(qū)字段
3、適用于分區(qū)數(shù)少,分區(qū)名可以明確的數(shù)據(jù) 動態(tài)分區(qū) DP(dynamic partition)
1、根據(jù)分區(qū)字段的實際值,動態(tài)進行分區(qū)
2、是在sql執(zhí)行的時候進行分區(qū)
3、需要先將動態(tài)分區(qū)設(shè)置打開(set hive.exec.dynamic.partition.mode=nonstrict )
4、只能用insert方式
5、通過普通表選出的字段包含分區(qū)字段,分區(qū)字段放置在最后,多個分區(qū)字段按照分區(qū)順序放置 靜態(tài)分區(qū)與動態(tài)分區(qū)的主要區(qū)別在于靜態(tài)分區(qū)是手動指定,而動態(tài)分區(qū)是通過數(shù)據(jù)來進行判斷。