hive之insert匯入分割槽資料

2021-10-20 19:39:29 字數 2344 閱讀 3107

資料庫分割槽的主要目的是為了在特定的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)

partitioned by (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')   

select

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

select

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

select

t.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')  

select

t.user_id,

t.msisdn,

t.imsi

from test.user_list_tmp t

insert overwrite示例:

insert overwrite table user_list partition(city='hangzhou',sdate='20200101')   

select

t.user_id,

t.msisdn,

t.imsi

from test.user_list_tmp t

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

hive之insert匯入分割槽資料

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

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 開啟動態分割槽功...