Hive動態分割槽

2021-08-16 22:41:12 字數 1129 閱讀 8485

靜態分割槽sp(static partition)

動態分割槽dp(dynamic partition)

靜態分割槽與動態分割槽的主要區別在於靜態分割槽是手動指定,而動態分割槽是通過資料來進行判斷。詳細來說,靜態分割槽的列實在編譯時期,通過使用者傳遞來決定的;動態分割槽只有在sql執行時才能決定。

1、建立一張分割槽表,包含兩個分割槽dt和ht表示日期和小時

我有幾張阿里雲幸運券分享給你,用券購買或者公升級阿里雲相應產品會有特惠驚喜哦!把想要買的產品的幸運券都領走吧!快下手,馬上就要搶光了。

create table partition_table001 

( name string,

ip string

)partitioned by (dt string, ht string)

row format delimited fields terminated by "\t"

;

2、啟用hive動態分割槽,只需要在hive會話中設定兩個引數:

set

hive.exec.dynamic.partition=true

;set

hive.exec.dynamic.partition.mode=nonstrict;

3、把partition_table001表某個日期分割槽下的資料load到目標表partition_table002 使用靜態分割槽時,必須指定分割槽的值,如:

create table if

notexists partition_table002 like partition_table001;

insert overwrite table partition_table002 partition (dt='20150617'

, ht='00'

) select name, ip from

partition_table001 where dt='20150617'

andht='00'

;

此時我們發現乙個問題,如果希望插入每天24小時的資料,則需要執行24次上面的語句。而動態分割槽會根據select出的結果自動判斷資料改load到哪個分割槽中去。

4、使用動態分割槽

HIVE動態分割槽

一 前段時間因為導表需求 從一張表中查詢出資料,按日期分割槽overwrite 到指定分割槽表中 在hive裡面研究了一下自動分割槽。步驟 1 建好所需分割槽表 2 設定分割槽引數?1 2 3 4 sethive.exec.dynamic.partition true 可通過這個語句檢視 sethi...

Hive動態分割槽

動態分割槽指不需要為不同的分割槽新增不同的插入語句,分割槽不確定,需要從資料中獲取。相關引數設定 set hive.exec dynamic partition true 使用動態分割槽 可通過這個語句檢視 set hive.exec dynamic partition set hive.exec ...

hive動態分割槽

不需要為不同的分割槽新增不同的插入語句 分割槽不確定,需要從資料中獲取 幾個引數 set hive.exec dynamic partition true 使用動態分割槽 set hive.exec dynamic partition mode nonstrick 無限制模式,如果模式是strict...