Hive儲存格式

2021-09-24 04:14:27 字數 1519 閱讀 6427

hive的四種儲存格式;textfile、sequencefile、rcfile、parquet

列式儲存和行式儲存的比較

優點缺點

行式儲存

一行資料是一條記錄,放在同乙個block塊中

只查詢幾個列時,也會讀取整行的資料,當資料量大時,影響效能

方便進行insert/update操作

不同型別的資料放在同乙個block中,導致不容易獲得乙個極高的壓縮比,也就是空間利用率不高

不是所有的列都適合作為索引

列式儲存

查詢時只有涉及到的列才會被查詢

insert/update不方便

同型別資料存放在同乙個block塊裡面,壓縮效能好,節省儲存空間、計算記憶體和cpu

不適合掃瞄資料量小的資料

任何列都可以作為索引

查詢全表時需要資料重組

textfile

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

sequencefile

sequencefile是hadoop api 提供的一種二進位制檔案,它將資料以的形式序列化到檔案中。這種二進位制檔案內部       使用hadoop 的標準的writable 介面實現序列化和反序列化。

rcfile

rcfile是hive推出的一種專門面向列的資料格式。 它遵循「先按列劃分,再垂直劃分」的設計理念。當查詢過程中,針對它並不關心的列時,它會在io上跳過這些列。需要說明的是,rcfile在map階段從 遠端拷貝仍然是拷貝整個資料塊,並且拷貝到本地目錄後rcfile並不是真正直接跳過不需要的列,並跳到需要讀取的列, 而是通過掃瞄每乙個row group的頭部定義來實現的,但是在整個hdfs block 級別的頭部並沒有定義每個列從哪個row group起始到哪個row group結束。所以在讀取所有列的情況下,rcfile的效能反而沒有sequencefile高。

parquet

parquet是不跟任何資料處理技術繫結在一起的,可以用於多種資料處理框架

hive的資料儲存 

1、hive中所有的資料都儲存在 hdfs 中,沒有專門的資料儲存格式(可支援text,sequencefile,parquetfile,rcfile等) 

2、只需要在建立表的時候告訴 hive 資料中的列分隔符和行分隔符,hive 就可以解析資料。 

3、hive 中包含以下資料模型:db、table,external table,partition,bucket。 

db:在hdfs中表現為$目錄下乙個資料夾 

table:在hdfs中表現所屬db目錄下乙個資料夾 

external table:外部表, 與table類似,不過其資料存放位置可以在任意指定路徑 

普通表: 刪除表後, hdfs上的檔案都刪了 

external外部表刪除後, hdfs上的檔案沒有刪除, 只是把檔案刪除了 

partition:在hdfs中表現為table目錄下的子目錄 

bucket:桶, 在hdfs中表現為同乙個表目錄下根據hash雜湊之後的多個檔案, 會根據不同的檔案把資料放到不同的檔案中

hive儲存格式

textfile 預設格式,行儲存,匯入資料時直接把資料檔案拷貝到hdfs的hive表目錄 hive location 資料檔案可先經過gzip等壓縮,再導hive表 系統自動檢查,執行查詢時自動解壓 但使用這種方式,hive不會對資料進行切分,從而無法對資料進行並行操作.優點 資料載入快 load...

hive 儲存格式

hive有textfile,sequencefile,rcfile三種檔案格式。textfile為預設格式,建表時不指定預設為這個格式,匯入資料時會直接把資料檔案拷貝到hdfs上不進行處理。sequencefile,rcfile格式的表不能直接從本地檔案匯入資料,資料要先匯入到textfile格式的...

HIVE檔案儲存格式

hive檔案儲存格式包括以下幾類 textfile sequencefile rcfile orcfile 其中textfile為預設格式,建表時不指定預設為這個格式,匯入資料時會直接把資料檔案拷貝到hdfs上不進行處理。sequencefile,rcfile,orcfile格式的表不能直接從本地檔...