當前位置:首頁 » 存儲配置 » 大數據存儲格式選擇

大數據存儲格式選擇

發布時間: 2025-02-28 13:29:58

1. 大數據中常見數據存儲格式與壓縮格式

大數據時代,存儲和壓縮數據的方式至關重要。為節省空間並確保數據完整性,我們採用了多種策略,包括不同的存儲格式和壓縮演算法。存儲格式主要有單行/列式存儲、混合行列式存儲,其中行式存儲適用於實時處理(OLTP),列式存儲擅長數據分析(OLAP),混合存儲則結合兩者特性。常見的存儲格式有Parquet(適合數據分析)、ORC(Hive特有)、TextFile(簡單但效率低)、SequenceFile(Hadoop API兼容)和AVRO(靈活且支持多種功能)。

壓縮格式的選擇同樣關鍵,常見的有Deflate、Snappy、ZLib、Gzip、Bzip2、LZ4和LZO等。壓縮比和速度是關鍵考慮因素:Bzip2提供最高壓縮比但速度慢,Snappy速度最快但壓縮率低;Gzip和ZLib適中,支持Hadoop native庫;LZO速度快且支持split,但需要額外安裝;LZ4和Deflater注重速度。

在數據分層中,ODS層(源數據層)傾向於使用高壓縮比的ZLIB、GZIP或BZIP2,而DW層(數據倉層)和DA層(數據應用層)由於查詢頻繁,適合選用解壓縮速度較快的Snappy。這樣,我們可以根據數據特性和需求,靈活選擇最優化的存儲和壓縮方案,以提升存儲效率和查詢性能。

2. 為什麼大數據存儲都喜歡使用 ORC 格式,因為快,小

ORC File,它的全名是Optimized Row Columnar (ORC) file,其實就是對RCFile做了一些優化。據官方文檔介紹,這種文件格式可以提供一種高效的方法來存儲Hive數據。它的設計目標是來克服Hive其他格式的缺陷。運用ORC File可以提高Hive的讀、寫以及處理數據的性能。

在工作中,用的最多的地方是在 Hive 中。我們的數據存儲格式使用的 ORC

存儲數據除了考慮安全性, 所佔空間 以及 查詢效率 是直接關繫到我們的業務的。數據量不壓縮,對於大數據團隊來說,集群的磁碟很容易不夠用。數據存進去,我們是要用的,業務方提了一個小需求,你的任務跑了大半個小時,顯然也是不合理的。

這些問題都可以解決掉,但並不是完全解決。

如果我的文章對您有幫助,歡迎關注、轉發。您的支持就是我更新的最大動力。

3. 大數據常用文件格式介紹

圖片看不見的話可以看我CSDN上的文章:
https://blog.csdn.net/u013332124/article/details/86423952

最近在做hdfs小文件合並的項目,涉及了一些文件格式的讀寫,比如avro、orc、parquet等。期間閱讀了一些資料,因此打算寫篇文章做個記錄。

這篇文章不會介紹如何對這些格式的文件進行讀寫,只會介紹一下它們各自的特點以及底層存儲的編碼格式

[圖片上傳失敗...(image-a5104a-1547368703623)]

使用sequencefile還可以將多個小文件合並到一個大文件中,通過key-value的形式組織起來,此時該sequencefile可以看做是一個小文件容器。

[圖片上傳失敗...(image-4d03a2-1547368703623)]

Parquet是一個基於列式存儲的文件格式,它將數據按列劃分進行存儲。Parquet官網上的文件格式介紹圖:

[圖片上傳失敗...(image-92770e-1547368703623)]

我們可以看出,parquet由幾個部分構成:

[圖片上傳失敗...(image-391e57-1547368703623)]

Orc也是一個列式存儲格式,產生自Apache Hive,用於降低Hadoop數據存儲空間和加速Hive查詢速度。

[圖片上傳失敗...(image-ba6160-1547368703623)]

目前列式存儲是大數據領域基本的優化項,無論是存儲還是查詢,列式存儲能做的優化都很多,看完上面對orc和parquet的文件結構介紹後,我們列式存儲的優化點做一個總結:

在壓縮方面

在查詢方面

就網上找到的一些數據來看,Orc的壓縮比會比Parquet的高一些,至於查詢性能,兩個應該不會差距太大。本人之前做過一個測試,在多數場景,hive on mr下,orc的查詢性能會更好一些。換成hive on spark後,parquet的性能更好一些

本文介紹的4種大數據存儲格式,2個是行式存儲,2個是列式存儲,但我們可以看到一個共同點:它們都是支持分割的。這是大數據文件結構體系中一個非常重要的特點, 因為可分割使一個文件可以被多個節點並發處理,提高數據的處理速度

另外,當前大數據的主要趨勢應該是使用列式存儲,目前我們公司已經逐步推進列式存儲的使用,本人也在hive上做過一些測試,在多個查詢場景下,無論是orc還是parquet的查詢速度都完爆text格式的, 差不多有4-8倍的性能提升 。另外,orc和parquet的壓縮比都能達到10比1的程度。因此,無論從節約資源和查詢性能考慮,在大多數情況下,選擇orc或者parquet作為文件存儲格式是更好的選擇。另外,spark sql的默認讀寫格式也是parquet。

當然,並不是說列式存儲已經一統天下了,大多時候我們還是要根據自己的使用場景來決定使用哪種存儲格式。

Sequencefile

https://blog.csdn.net/en_joker/article/details/79648861

https://stackoverflow.com/questions/11778681/advantages-of-sequence-file-over-hdfs-textfile

Avro和Sequencefile區別

https://stackoverflow.com/questions/24236803/difference-between-avrodata-file-and-sequence-file-with-respect-to-apache-sqoop

parquet

https://www.cnblogs.com/ITtangtang/p/7681019.html

Orc

https://www.cnblogs.com/ITtangtang/p/7677912.html

https://www.cnblogs.com/cxzdy/p/5910760.html

Orc和parquet的一些對比

https://blog.csdn.net/colorant/article/details/53699822

https://blog.csdn.net/yu616568/article/details/51188479

熱點內容
深圳安卓軟體開發哪裡好 發布:2025-02-28 18:28:49 瀏覽:293
安卓一鍵刷機工具哪個好 發布:2025-02-28 18:28:46 瀏覽:556
閘閥編程 發布:2025-02-28 18:24:57 瀏覽:747
淘寶怎麼換個支付寶賬號和密碼 發布:2025-02-28 18:11:19 瀏覽:663
python安裝thrift 發布:2025-02-28 17:55:08 瀏覽:94
短片文字腳本 發布:2025-02-28 17:55:08 瀏覽:740
android輸入控制項 發布:2025-02-28 17:42:06 瀏覽:274
統一解壓密碼一般是多少 發布:2025-02-28 17:37:20 瀏覽:116
怎麼搭建伺服器在國外 發布:2025-02-28 17:37:20 瀏覽:625
域名轉伺服器ip 發布:2025-02-28 17:33:52 瀏覽:216