hive之insert匯入分割槽資料

2022-06-12 20:27:10 字數 3078 閱讀 2944

資料庫分割槽的主要目的是為了在特定的sql操作中減少資料讀寫的總量以縮減響應時間,主要包括兩種分割槽形式:水平分割槽與垂直分割槽。水平分割槽是對錶進行行分割槽。而垂直分割槽是對列進行分割槽,一般是通過對錶的垂直劃分來減少目標表的寬度,常用的是水平分割槽。

hive.exec.max.dynamic.partitions:允許的最大的動態分割槽的個數。預設1000。

hive.exec.max.dynamic.partitions.pernode:乙個mapreduce job所允許的最大的動態分割槽的個數。預設是100。

(1)分割槽表建立

create

table

test

.user_list

(user_id

string

,msisdn

string

,imsi

string

)partitionedby(

city

string

,sdate

string

)row

format

delimited

fields

terminated

by','

;

(2)臨時表建立(輔助分割槽表測試)

create

table

test

.user_list_tmp

(user_id

string

,msisdn

string

,imsi

string

city

string

,sdate

string

)row

format

delimited

fields

terminated

by','

;

(1)靜態分割槽插入資料:

insert

into

table

user_list

partition

(city

='hangzhou'

,sdate

='20200101'

)selectt.

user_id,t

.msisdn,t

.imsi

from

test

.user_list_tmp

t

(2)動靜混合分割槽插入資料

set

hive

.exec

.dynamic

.partition

=true

;set

hive

.exec

.dynamic

.partition

.mode

=strick

;--set hive.exec.dynamic.partition.mode=nonstrick;

insert

into

table

user_list

partition

(city

='hangzhou'

,sdate

)selectt.

user_id,t

.msisdn,t

.imsi,t

.sdate

from

test

.user_list_tmp

t

注意:動靜分割槽混合時,靜態分割槽引數必須放置在前面。

(3)動態分割槽插入資料

set

hive

.exec

.dynamic

.partition

=true

;set

hive

.exec

.dynamic

.partition

.mode

=nonstrick

;insert

into

table

user_list

partition

(city

,sdate

)selectt.

user_id,t

.msisdn,t

.imsi,t

.city,t

.sdate

from

test

.user_list_tmp

t

insert into示例:

insert

into

table

user_list

partition

(city

='hangzhou'

,sdate

='20200101'

)selectt.

user_id,t

.msisdn,t

.imsi

from

test

.user_list_tmp

t

insert overwrite示例:

insert

overwrite

table

user_list

partition

(city

='hangzhou'

,sdate

='20200101'

)selectt.

user_id,t

.msisdn,t

.imsi

from

test

.user_list_tmp

t

兩者區別:insert into直接追加到表中資料的尾部,而insert overwrite會重寫資料,既先進行刪除,再寫入。

hive之insert匯入分割槽資料

資料庫分割槽的主要目的是為了在特定的sql操作中減少資料讀寫的總量以縮減響應時間,主要包括兩種分割槽形式 水平分割槽與垂直分割槽。水平分割槽是對錶進行行分割槽。而垂直分割槽是對列進行分割槽,一般是通過對錶的垂直劃分來減少目標表的寬度,常用的是水平分割槽。回到頂部 hive.exec.max.dyna...

Hive分割槽表匯入資料

在hive上建立乙個簡單的分割槽表 create table school student info name string,age int,string partitioned by grade string,teacher string row format serde org.apache.h...

Hive之動態分割槽

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