HIve之分割槽

2021-10-06 07:58:34 字數 4119 閱讀 3626

將表內的資料按照一定的業務進行劃分,可以減少資料的冗餘,同時可以提高分割槽資料查詢的效率。

1.建立分割槽表,分割槽欄位為日期date

create

table my_partition_table(id int

, name string) partitioned by

(partition_date string)

row format delimited fields

terminated

by","

;

2.檢視表詳情

方式一: show

方式二: desc formatted my_partition_table;

3. 分割槽插入資料

load

data

local inpath "/home/temp/student.txt"

into

table my_partition_table partition

(partition_date=

'2020-05-19'

);

4.hdfs中檢視資料

5.檢視表的分割槽

4. 根據分割槽查資料

1.hive的靜態分割槽,實際上就是手動指定分割槽的值為靜態值,這種對於小批量的分割槽插入比較友好。也就是手動指定了分割槽的值。

load

data

local inpath "/home/temp/student.txt"

into

table my_partition_table partition

(partition_date=

'2020-05-19'

);

2.hive的動態分割槽,其實就是把靜態分割槽中的分割槽值設定為動態的值,就可以了,也就是動態指定分割槽欄位的值,對於大批量的分割槽插入是乙個很方便的用法

insert overwrite table demo_dynamic_partition 

partition

(year

=year

,month

=month

,day

=day

,hour

=hour

)select user_id, user_name,

trade_year as

year

,trade_month as

month

,trade_day as

day,

trade_hour as

hour

from user_demo

當然動態分割槽需要進行一些設定

- hive預設配置值

-- 開啟或關閉動態分割槽

hive.

exec

.dynamic.

partition

=false

;-- 設定為nonstrict模式,讓所有分割槽都動態配置,否則至少需要指定乙個分割槽值

hive.

exec

.dynamic.

partition

.mode

=strict;

hive.

exec

.max.dynamic.partitions.pernode=

100;

-- 一條帶有動態分割槽sql語句所能建立的最大動態分割槽總數,超過則報錯

hive.

exec

.max.dynamic.partitions=

1000

;-- 全域性能被建立檔案數目的最大值,通過hadoop計數器跟蹤,若超過則報錯

hive.

exec

.max.created.files=

100000

;

3.動態分割槽和靜態分割槽聯合使用

partition

(year

="2020"

,month

="05"

,day

=day

,hour

=hour

)select user_id, user_name,

trade_year as

year

,trade_month as

month

,trade_day as

day,

trade_hour as

hour

from user_demo

where trade_year=

"2020"

and trade_month=

"04"``

`

1.修改分割槽的語句

a.把乙個分割槽打包成乙個har包

alter

table employees archive partition

(country=

"china"

,state=

"asia"

)b.把乙個分割槽har包還原成原來的分割槽

alter

table employees unarchive partition

(country=

"china"

,state=

"asia"

)c.保護分割槽防止被刪除

alter

table employees partition

(country=

"china"

,state=

"asia"

)enable no_drop

d.保護分割槽防止被查詢

alter

table employees partition

(country=

"china"

,state=

"asia"

)enable offline

e.允許分割槽刪除和查詢

alter

table employees partition

(country=

"china"

,state=

"asia"

)disable no_drop

alter

table employees partition

(country=

"china"

,state=

"asia"

)disable offline

2.快速建立表

建立表,攜帶資料

create

table employees1 as

select

*from employees1

建立表,攜帶表結構

create

table employees2 like employees

hive手冊之分割槽使用

介紹hive如何新增分割槽 刪除分割槽 自定義分割槽以及分割槽插入資料 如何自定義分割槽 create table test name string,int partitions birth string,age string create table yxtest name string,int ...

Hive的資料模型之分割槽表

一 分割槽表 partition 1 partiition對應於資料庫的partition列的密集索引。2 在hive中,表中的乙個partition對應於表下的乙個目錄,所有的partition的資料都儲存在對應的目錄中。二 理解分割槽表 三 實戰 1 建立分割槽表 create table pa...

Linux之分割槽

安裝linux系統之後,將會對磁碟進行劃分 一般是這樣的,分為三個 1.boot 下面掛載乙個,100mb 2.swap交換區掛載乙個,是物理記憶體的2倍,也就是8g x 2 16g,但是它不能超過256mb,這個規定是以前制定的,因為之前電腦記憶體很小。現在一般統一指定它為最大,256mb。3.根...