HIVE檔案儲存格式

2021-06-18 06:21:32 字數 2284 閱讀 4716

hive檔案儲存格式包括以下幾類:

textfile

sequencefile

rcfile

orcfile

其中textfile為預設格式,建表時不指定預設為這個格式,匯入資料時會直接把資料檔案拷貝到hdfs上不進行處理。

sequencefile,rcfile,orcfile格式的表不能直接從本地檔案匯入資料,資料要先匯入到textfile格式的表中,然後再從textfile表中用insert匯入到sequencefile,rcfile,orcfile表中。

預設格式,資料不做壓縮,磁碟開銷大,資料解析開銷大。

例項:hive > create table test1(str string)  

hive > stored as textfile;

匯入檔案:  

hive > load data local inpath '/home/work/data/test.txt' into table test1;  

sequencefile

是hadoop api

提供的一種二進位制檔案支援,其具有使用方便、可分割、可壓縮的特點。

sequencefile

支援三種壓縮選擇:

none, record, block

。record

壓縮率低,一般建議使用

block

壓縮。

例項:hive> create table test2(str string)  

> stored as sequencefile;

hive> set hive.exec.compress.output=true;  

hive> set io.seqfile.compression.type=block;  

hive> insert overwrite table test2 select * from test1; 

rcfile

是一種行列儲存相結合的儲存方式,其

遵循的是

「先水平劃分,再垂直劃分

」的設計理念

。首先,

rcfile

保證同一行的資料位於同一節點,因此元組重構的開銷很低;其次,像列儲存一樣,

rcfile

能夠利用列維度的資料壓縮,並且能跳過不必要的列讀取。

例項:hive > create table test3(str string)

hive > stored as rcfile;

hive > insert overwrite table test3 select * from test1;

rcfile

儲存結構,其廣泛應用於

facebook

公司的資料分析系統

hive

中。首先,

rcfile

具備相當於行儲存的資料載入速度和負載適應能力;其次,

rcfile

的讀優化可以在掃瞄**時避免不必要的列讀取,測試顯示在多數情況下,資料載入時效能消耗較大,但是具有較好的壓縮比和查詢響應;再次,

rcfile

使用列維度的壓縮,因此能夠有效提公升儲存空間利用率。資料倉儲的特點是一次寫入、多次讀取,因此,整體來看,rcfile相比其餘兩種格式具有較明顯的優勢。

)是hive 0.11

版裡引入的新的儲存格式,是對之前的

rcfile

儲存格式的優化。

每個orc檔案由1個或多個stripe組成,每個stripe250mb大小,這個stripe實際相當於之前的rcfile裡的rowgroup概念,每個stripe大小250mb,這樣能提公升順序讀的吞吐率。每個stripe裡有三部分組成,分別是indexdata,row data,stripe footer:

1,index data:乙個輕量級的index,預設是每隔1w行做乙個索引。這裡做的索引應該只是記錄某行的各字段在row data中的offset,還包括每個column的max和min值。

2,row data:存的是具體的資料,和rcfile一樣,先取部分行,然後對這些行按列進行儲存。與rcfile不同的地方在於每個列進行了編碼,分成多個stream來儲存,

3,stripe footer:存的是各個stream的型別,長度等資訊。

Hive檔案儲存格式

上圖左邊為邏輯表,右邊第乙個為行式儲存,第二個為列式儲存。行儲存的特點 查詢滿足條件的一整行資料的時候,列儲存則需要去每個聚集的字段找到對應的每個列的值,行儲存只需要找到 其中乙個值,其餘的值都在相鄰地方 所以此時行儲存查詢的速度更快。列儲存的特點 因為每個欄位的資料聚集儲存,在查詢只需要少數幾個欄...

Hive檔案儲存格式

上圖左邊為邏輯表,右邊第乙個為行式儲存,第二個為列式儲存。行儲存的特點 查詢滿足條件的一整行資料的時候,列儲存則需要去每個聚集的字段找到對應的每個列的值,行儲存只需要找到 其中乙個值,其餘的值都在相鄰地方 所以此時行儲存查詢的速度更快。列儲存的特點 因為每個欄位的資料聚集儲存,在查詢只需要少數幾個欄...

Hive檔案儲存格式

hive 支援的儲存數的格式主要有 textfile sequencefile orc parquet 1.列式儲存和行式儲存 右邊第乙個為行式儲存,第二個為列式儲存 行儲存的特點 查詢滿足條件的一整行資料的時候,列儲存則需要去每個聚集的字段找到對應的每個列的值,行儲存只需要找到其中乙個值,其餘的值...