hive的資料儲存

2021-03-04 05:52:37 字數 1381 閱讀 8570

1樓:聯盟巨猩

首先,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 在元資料的組織上是相同的,而實際資料的儲存則有較大的差異。

table 的建立過程和資料載入過程(這兩個過程可以在同乙個語句中完成),在載入資料的過程中,實際資料會被移動到資料倉儲目錄中;之後對資料對訪問將會直接在資料倉儲目錄中完成。刪除表時,表中的資料和元資料將會被同時刪除。 external table 只有乙個過程,載入資料和建立表同時完成(create external table ……location),實際資料是儲存在 location 後面指定的 hdfs 路徑中,並不會移動到資料倉儲目錄中。

當刪除乙個 external table 時,僅刪除元資料,表中的資料不會真正被刪除。

simulink中,將示波器的資料儲存資料在w

首先新增乙個clock時間 控制項,輸出時間t到乙個示波器裡。修改該示波器引數,進入到data history,刪除limit data,勾選save data to workspace,變數名t,格式array。仿照上面示波器引數設定,修改所要顯示的示波器。操作如下 1 開啟matlab。2 定義...

在資料結構中,資料的邏輯結構,資料的儲存結構及資料的運算之間

資料的邏輯結構決定了資料間運算關係的具體定義,而資料的儲存結構與資料的運算方法,沒有直接的關係,資料的儲存結構決定了維護資料邏輯結構時各種操作的運算複雜程度。在資料結構課程中,資料的邏輯結構,資料的儲存結構及資料的運算之間存在著怎樣的關係?1 資料的邏輯結copy構說明資料元素bai之間的順序du關...

硬碟資料結構的資料儲存原理,硬碟資料結構的介紹

1.檔案的讀取。作業系統從目錄區中讀取檔案資訊 包括檔名 字尾名 檔案大小 修改日期和檔案在資料區儲存的第乙個簇的簇號 我們這裡假設第乙個簇號是0023。作業系統從0023簇讀取相應的資料,然後再找到fat的0023單元,如果內容是檔案結束標誌 ff 則表示檔案結束,否則內容儲存資料的下乙個簇的簇號...