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
儲存結構,其廣泛應用於
公司的資料分析系統
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.列式儲存和行式儲存 右邊第乙個為行式儲存,第二個為列式儲存 行儲存的特點 查詢滿足條件的一整行資料的時候,列儲存則需要去每個聚集的字段找到對應的每個列的值,行儲存只需要找到其中乙個值,其餘的值...