靜態(tài)分區(qū) SP(static partition)
1、靜態(tài)分區(qū)是在編譯期間指定的指定分區(qū)名
2、支持load和insert兩種插入方式
2.1load方式
1)會將分區(qū)字段的值全部修改為指定的內容
2)一般是確定該分區(qū)內容是一致的時候才會使用
2.2insert方式
1)必須先將數據放在一個沒有設置分區(qū)的普通表中
2)該方式可以在一個分區(qū)內存儲一個范圍的內容
3)從普通表中選出的字段不能包含分區(qū)字段
3、適用于分區(qū)數少,分區(qū)名可以明確的數據 動態(tài)分區(qū) DP(dynamic partition)
1、根據分區(qū)字段的實際值,動態(tài)進行分區(qū)
2、是在sql執(zhí)行的時候進行分區(qū)
3、需要先將動態(tài)分區(qū)設置打開(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ū)是通過數據來進行判斷。