Hive動態分割槽

2021-07-22 09:58:55 字數 954 閱讀 8320

insert overwrite table_part1 partition(dt="2016-09-03")

select * from test_data

test_data表

idname

1liming

2jenny

3denny

上面**是往表的某乙個固定分割槽插入資料

但是當我們要插入的分割槽不確定的時候,該怎麼做?

這時候就會用到動態分割槽。

insert overwrite table_part partition(dt)

select id as dt,name

from test_data

我們從test_data表中取出id,作為分割槽,最後會產生三個分割槽,以id作為分割槽,如下圖:

dt=1

dt=2

dt=3

每個分割槽中存放了一條資料。

執行語句前需要設定屬性:

set hive.exec.dynamic.partition=true;

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

動態分割槽也就是當要插入分割槽表的分割槽欄位不確定的時候,使用表中的某個字段或者自定義的變數作為分割槽的字段。

當我們需要批量刪除分割槽,會用到動態刪除分割槽,其實命令比較簡單

alter table table_part drop partition(dt<」10」);

在刪除分割槽的時候,是按照字串的順序來刪除的。

例如:若有以下分割槽

dt=a1

dt=a

dt=a2

alter table table_part drop partition(dt<」a」);

會將dt=a1和dt=a2全部刪除

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