資料庫分割槽的主要目的是為了在特定的sql操作中減少資料讀寫的總量以縮減響應時間,主要包括兩種分割槽形式:水平分割槽與垂直分割槽。水平分割槽是對錶進行行分割槽。而垂直分割槽是對列進行分割槽,一般是通過對錶的垂直劃分來減少目標表的寬度,常用的是水平分割槽。
hive.exec.max.dynamic.partitions:允許的最大的動態分割槽的個數。預設1000。
hive.exec.max.dynamic.partitions.pernode:乙個mapreduce job所允許的最大的動態分割槽的個數。預設是100。
(1)分割槽表建立
createtable
test
.user_list
(user_id
string
,msisdn
string
,imsi
string
)partitionedby(
city
string
,sdate
string
)row
format
delimited
fields
terminated
by','
;
(2)臨時表建立(輔助分割槽表測試)
createtable
test
.user_list_tmp
(user_id
string
,msisdn
string
,imsi
string
city
string
,sdate
string
)row
format
delimited
fields
terminated
by','
;
(1)靜態分割槽插入資料:
insertinto
table
user_list
partition
(city
='hangzhou'
,sdate
='20200101'
)selectt.
user_id,t
.msisdn,t
.imsi
from
test
.user_list_tmp
t
(2)動靜混合分割槽插入資料
sethive
.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)動態分割槽插入資料
sethive
.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示例:
insertinto
table
user_list
partition
(city
='hangzhou'
,sdate
='20200101'
)selectt.
user_id,t
.msisdn,t
.imsi
from
test
.user_list_tmp
t
insert overwrite示例:
insertoverwrite
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 開啟動態分割槽功...