Hive之 資料儲存
首先,Hive 沒有專門的資料儲存格式,也沒有為資料建立索引,使用者可以非常自由的組織 Hive 中的表,只需要在建立表的時候告訴 Hive 資料中的列分隔符和行分隔符,Hive 就可以解析資料。
其次,Hive 中所有的資料都儲存在 HDFS 中,Hive 中包含以下資料模型:Table,External Table,Partition,Bucket。
1)表table:一個表就是hdfs中的一個目錄
2)區Partition:表內的一個區就是表的目錄下的一個子目錄
3)桶Bucket:如果有分割槽,那麼桶就是區下的一個單位,如果表內沒有區,那麼桶直接就是表下的單位,桶一般是檔案的形式。
- Hive 中的 Table 和資料庫中的 Table 在概念上是類似的,每一個 Table 在 Hive 中都有一個相應的目錄儲存資料。例如,一個表 pvs,它在 HDFS 中的路徑為:/wh/pvs,其中,wh 是在 hive-site.xml 中由 ${hive.metastore.warehouse.dir} 指定的資料倉儲的目錄,所有的 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。表是否分割槽,如何新增分割槽,都可以透過Hive-QL語言完成。透過分割槽,即目錄的存放形式,Hive可以比較容易地完成對分割槽條件的查詢。
- 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 。桶是Hive的最終的儲存形式。在建立表時,使用者可以對桶和列進行詳細地描述。
- External Table 指向已經在 HDFS 中存在的資料,可以建立 Partition。它和 Table 在後設資料的組織上是相同的,而實際資料的儲存則有較大的差異。
- Table 的建立過程和資料載入過程(這兩個過程可以在同一個語句中完成),在載入資料的過程中,實際資料會被移動到資料倉儲目錄中;之後對資料對訪問將會直接在資料倉儲目錄中完成。刪除表時,表中的資料和後設資料將會被同時刪除。
- External Table 只有一個過程,載入資料和建立表同時完成(CREATE EXTERNAL TABLE ……LOCATION),實際資料是儲存在 LOCATION 後面指定的 HDFS 路徑中,並不會移動到資料倉儲目錄中。當刪除一個 External Table 時,僅刪除
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31383567/viewspace-2145123/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 掌握Hive資料儲存模型Hive模型
- Hive之儲存格式Hive
- Hive簡易教程 - 資料儲存Hive
- Flutter持久化儲存之資料庫儲存Flutter持久化資料庫
- 好程式設計師大資料培訓分享之hive儲存過程程式設計師大資料Hive儲存過程
- 好程式設計師大資料學習路線之hive儲存格式程式設計師大資料Hive
- 儲存資料之SharedPreference
- IOS資料儲存之NSUserDefaultsiOS
- k8s之資料儲存-配置儲存K8S
- IOS資料儲存之檔案沙盒儲存iOS
- IOS資料儲存之Sqlite資料庫iOSSQLite資料庫
- IOS資料儲存之FMDB資料庫iOS資料庫
- Hive -------- 使用mysql儲存hive後設資料,Mysql的安裝以及配置步驟HiveMySql
- Android中的資料儲存之檔案儲存Android
- k8s之資料儲存-高階儲存K8S
- 大資料元件-Hive部署基於MySQL作為後設資料儲存大資料元件HiveMySql
- hive檔案儲存格式Hive
- Android資料儲存之SharedPreferences及如何安全儲存Android
- 分散式資料恢復-hbase+hive分散式儲存資料恢復方案分散式資料恢復Hive
- 資料儲存--檔案儲存
- 《資料儲存》之《分庫,分表》
- 海量資料儲存之動態SchemaOU
- MaxCompute實戰之資料儲存
- greenDAO資料庫之修改儲存地址資料庫
- 安卓開發之資料儲存方式安卓
- Android資料儲存之SQLCipher資料庫加密AndroidSQL資料庫加密
- 資料儲存
- hive資料倉儲匯入資料的方法Hive
- Hive之 資料型別Hive資料型別
- 資料儲存(1):從資料儲存看人類文明-資料儲存器發展歷程
- 資料庫表設計之儲存引擎資料庫儲存引擎
- ORACLE資料檔案儲存之我見Oracle
- IOS資料儲存之歸檔/解檔iOS
- 大資料儲存平臺之異構儲存實踐深度解讀大資料
- Hive:資料倉儲構建步驟Hive
- 資料儲存:CoreData
- iOS 資料儲存iOS
- IOS資料儲存iOS