Hive 表

內表和外表

內表(Managed Table)

也稱爲“管理表”,其數據文件、元數據及統計信息全部由Hive進程自身管理.內表的數據存儲在由hive.metastore.warehouse.dir指定的路徑下,類似於/user/hive/warehouse/dbname.db/tablename/。刪除內表時,其數據文件、元數據信息都會統一刪除,一般在生產環境下不會使用內表,需要創建臨時表或者聲明週期完全有Hive管理的表時,推薦使用內表

外表(External Table)

通過原信息或者Schema描述外部文件的結構。外表的文件可以被Hive之外的進程訪問和管理,例如HDFS。當刪除外表時,刪除的爲hive算管理的元數據信息,由外部文件系統所管理的數據是不會被刪除的

區分內外表

在hive中執行desc fromatted 表名來查看錶是屬於內表還是外表

文件存儲格式

在hive的建表過程中,通過STORED AS來指定表的存儲格式

  • STORED AS TEXTFIEL hive表的默認存儲格式
  • STORED AS SEQUENCEFILE 已壓縮的序列化文件
  • STORED AS ORC 存儲爲ORC格式的文件
  • STORED AS PARQUET 存儲Parquet文件 列式格式文件
  • STORED AS AVRO 存儲AVRO格式的文件
  • STORED AS RCFILE 存儲RC(Record Columnar)格式文件
  • STORED BY 由非內置id表格式存儲,例如用HBase存儲數據
    通常使用列式存儲的方式進行數據的存儲,如ORC、PARQUET、AVRO等

序列化和反序列化

序列化是將數據對象轉化爲字節序列的一個過程.
反序列化是序列化的逆過程,是將字節序列轉化爲數據對象的過程

序列化的用途

  • 對象的持久化
  • 對象數據的網絡傳輸
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章