您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“Hive存儲格式是怎么樣的”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Hive存儲格式是怎么樣的”這篇文章吧。
Hive的默認存儲格式是文本文件格 式,這個也可以通過可選的子句STORED AS TEXTFILE顯式指定,同時用戶還可以在創 建表時指定各種各樣的分隔符。這里我們重新展示下之前討論過的那個ods.ods_login表:
CREATE TABLE ods.ods_login(`uuid` string,`event` string,`time` string)ROW FORMAT DELIMITEDFIELDS TERMINATED BY *\001*COLLECTION ITEMS TERMINATED BY '\002*MAP KEYS TERMINATED BY '\003'LINES TERMINATED BY *\n'STORED AS TEXTFILE;
TEXTFILE意味著所有字段都使用字母、數字、字符編碼,包括那些國際字符集,盡管 我們可以發現Hive默認是使用不可見字符來作為“\001”(分隔符)的。使用 TEXTFILE就意味著,每一行被認為是一個單獨的記錄。
用戶可以將TEXTFILE替換為其他Hive所支持的內置文件格式,比如orc,parquet之類的,它們使用二進制編碼和壓縮(可選)來優化磁盤空間使用以及I/O帶寬性能的。
對比一下常用的Hive存儲格式:
TextFile 每一行都是一條記錄,每行都以換行符(\ n)結尾。數據不做壓縮,磁盤開銷大,數據解析開銷大。可結合Gzip、Bzip2使用(系統自動檢查,執行查詢時自動解壓),但使用這種方式,hive不會對數據進行切分,從而無法對數據進行并行操作。
SequenceFile 是Hadoop API提供的一種二進制文件支持,其具有使用方便、可分割、可壓縮的特點。支持三種壓縮選擇:NONE, RECORD, BLOCK。Record壓縮率低,一般建議使用BLOCK壓縮。存儲空間消耗最大,壓縮的文件可以分割和合并 查詢效率高,需要通過text文件轉化來加載
RCFile 是一種行列存儲相結合的存儲方式。首先,其將數據按行分塊,保證同一個record在一個塊上,避免讀一個記錄需要讀取多個block。其次,塊數據列式存儲,有利于數據壓縮和快速的列存取。
AVRO 是開源項目,為Hadoop提供數據序列化和數據交換服務。您可以在Hadoop生態系統和以任何編程語言編寫的程序之間交換數據。Avro是基于大數據Hadoop的應用程序中流行的文件格式之一。
ORC 文件代表了優化排柱狀的文件格式。ORC文件格式提供了一種將數據存儲在Hive表中的高效方法。這個文件系統實際上是為了克服其他Hive文件格式的限制而設計的。Hive從大型表讀取,寫入和處理數據時,使用ORC文件可以提高性能。壓縮快,快速列存取 ,效率比rcfile高,是rcfile的改良版本
Parquet 是一個面向列的二進制文件格式。Parquet對于大型查詢的類型是高效的。對于掃描特定表格中的特定列的查詢,Parquet特別有用。Parquet桌子使用壓縮Snappy,gzip;目前Snappy默認相對于ORC,Parquet壓縮比較低,查詢效率較低,不支持update、insert和ACID。但是Parquet支持Impala查詢引擎
以上是“Hive存儲格式是怎么樣的”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。