hive 沒有專門的資料儲存格式,也沒有為資料建立索引,使用者可以非常自由的組織 hive 中的表,只需要在建立表的時候告訴 hive 資料中的列分隔符和行分隔符,hive 就可以解析資料。
其次,hive 中所有的資料都儲存在 hdfs 中,hive 中包含以下資料模型:table,external table,partition,bucket。
hive 中的 table 和資料庫中的 table 在概念上是類似的,每乙個 table 在 hive 中都有乙個相應的目錄儲存資料。例如,乙個表 pvs,它在 hdfs 中的路徑為:/wh/pvs,其中,wh 是在 hive-site.xml 中由 $ 指定的資料倉儲的目錄,所有的 table 資料(不包括 external table)都儲存在這個目錄中。
partition 對應於資料庫中的 partition 列的密集索引,但是 hive 中 partition 的組織方式和資料庫中的很不相同。在 hive 中,表中的乙個 partition 對應於表下的乙個目錄,所有的 partition 的資料都儲存在對應的目錄中。例如:pvs 表中包含 ds 和 city 兩個 partition,則對應於 ds = 20090801, ctry = us 的 hdfs 子目錄為:/wh/pvs/ds=20090801/ctry=us;對應於 ds = 20090801, ctry = ca 的 hdfs 子目錄為;/wh/pvs/ds=20090801/ctry=ca
buckets 對指定列計算 hash,根據 hash 值切分資料,目的是為了並行,每乙個 bucket 對應乙個檔案。將 user 列分散至 32 個 bucket,首先對 user 列的值計算 hash,對應 hash 值為 0 的 hdfs 目錄為:/wh/pvs/ds=20090801/ctry=us/part-00000;hash 值為 20 的 hdfs 目錄為:/wh/pvs/ds=20090801/ctry=us/part-00020
external table 指向已經在 hdfs 中存在的資料,可以建立 partition。它和 table 在元資料的組織上是相同的,而實際資料的儲存則有較大的差異。
hive 資料儲存格式詳解
hive的三種檔案格式 textfile sequencefile rcfile 中,textfile和sequencefile的儲存格式都是基於行儲存的,rcfile是基於行列混合的思想,先按行把資料劃分成n個row group,在row group中對每個列分別進行儲存。另 hive能支援自定義...
hive儲存格式
textfile 預設格式,行儲存,匯入資料時直接把資料檔案拷貝到hdfs的hive表目錄 hive location 資料檔案可先經過gzip等壓縮,再導hive表 系統自動檢查,執行查詢時自動解壓 但使用這種方式,hive不會對資料進行切分,從而無法對資料進行並行操作.優點 資料載入快 load...
Hive儲存格式
hive的四種儲存格式 textfile sequencefile rcfile parquet 列式儲存和行式儲存的比較 優點缺點 行式儲存 一行資料是一條記錄,放在同乙個block塊中 只查詢幾個列時,也會讀取整行的資料,當資料量大時,影響效能 方便進行insert update操作 不同型別的...