Hive動態分割槽

2021-08-07 14:29:17 字數 1318 閱讀 9110

關係型資料庫(如oracle)中,對分割槽表insert資料時候,資料庫自動會根據分割槽欄位的值,將資料插入到相應的分割槽中,hive中也提供了類似的機制,即動態分割槽(dynamic partition),只不過,使用hive的動態分割槽,需要進行相應的配置。

現有非分割槽表 test , 分割槽表 test_partitioned , 需要按照month、day來插入到分割槽表中

test

dayurl

2015-05-10

url1

2015-05-10

url2

2015-06-14

url1

2015-06-14

url2

2015-06-15

url1

2015-06-15

url2

目標表:test_partitioned

create

table t_lxw1234_partitioned (

url string

) partitioned by (month string,day string)

stored as textfile;

test中的資料按照月份(month)、日期(day),插入到目標表test_partitioned的相應分割槽中。

如果按照之前介紹的往指定乙個分割槽中insert資料,那麼這個需求很不容易實現。

這時候就需要使用動態分割槽來實現.

使用動態分割槽需要注意設定以下引數:

set hive.exec.dynamic.partition=true;

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

set hive.exec.max.dynamic.partitions.pernode = 1000;

set hive.exec.max.dynamic.partitions=1000;

insert overwrite table t_lxw1234_partitioned partition (month,day)

select url,substr(day,1,7) as

month,day

from t_lxw1234;

注意事項

注意:在partition (month,day)中指定分割槽欄位名即可;

在select子句的最後兩個字段,必須對應前面partition (month,day)中指定的分割槽字段,包括順序。

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...