Hive 中的表分為內部表、外部表、分區表和 Bucket 表

Hive 的元數據存儲在 RDBMS 中,除元數據外的其它所有數據都基於 HDFS 存儲。默認情況下,Hive 元數據保存在內嵌的 Derby 數據庫中,只能允許一個會話連接,只適合簡單的測試。實際生產環境中不適用,為了支持多用戶會話,則需要一個獨立的元數據庫,使用 MySQL 作為元數據庫,Hive 內部對 MySQL 提供了很好的支持。

獲取更多Hadoop、HDFS、HBase、MapReduce、YARN、Hive等等技術內容,可訪問下面的Hadoop大數據技術專欄。

專欄

Hadoop v3.1大數據技術快速入門

作者:軟件架構

33.9幣

22人已購

查看


Hive 中的表分為內部表、外部表、分區表和 Bucket 表

Hive 中的表分為內部表、外部表、分區表和 Bucket 表。

內部表和外部表的區別:

  • 刪除內部表,刪除表元數據和數據。
  • 刪除外部表,刪除元數據,不刪除數據。

內部表和外部表的使用選擇:

  • 大多數情況,它們的區別不明顯,如果數據的所有處理都在 Hive 中進行,那麼傾向於選擇內部表,但是如果 Hive 和其他工具要針對相同的數據集進行處理,外部表更合適。
  • 使用外部表訪問存儲在 HDFS 上的初始數據,然後通過 Hive 轉換數據並存到內部表中。
  • 使用外部表的場景是針對一個數據集有多個不同的 Schema。
  • 通過外部表和內部表的區別和使用選擇的對比可以看出來,hive 其實僅僅只是對存儲在 HDFS 上的數據提供了一種新的抽象。而不是管理存儲在 HDFS 上的數據。所以不管創建內部表還是外部表,都可以對 hive 表的數據存儲目錄中的數據進行增刪操作。

專欄

Spring Cloud微服務架構項目實戰

作者:軟件架構

33.9幣

40人已購

查看

分區表和分桶表的區別:

Hive 數據表可以根據某些字段進行分區操作,細化數據管理,可以讓部分查詢更快。同時表和分區也可以進一步被劃分為 Buckets,分桶表的原理和 MapReduce 編程中的 HashPartitioner 的原理類似。

Hive 中的表分為內部表、外部表、分區表和 Bucket 表

分區和分桶都是細化數據管理,但是分區表是手動添加區分,由於 Hive 是讀模式,所以對添加進分區的數據不做模式校驗,分桶表中的數據是按照某些分桶字段進行 hash 散列形成的多個文件,所以數據的準確性也高很多。

Hive 中的表分為內部表、外部表、分區表和 Bucket 表

專欄

SkyWalking分佈式鏈路追蹤和監控

作者:軟件架構

33.9幣

50人已購

查看


分享到:


相關文章: