Parquet
是一種
開源檔案格式
,可用于 Hadoop 生态系統中的任何項目。與基于行的檔案(如
CSV
或
TSV
檔案)相比,
Apache Parquet
專為高效且性能良好的平面柱存儲格式而設計。
Parquet
使用
record shredding
和
assembly
算法,該算法優于嵌套命名空間的簡單拼合。Parquet 經過優化,可批量處理複雜的資料,并采用不同的方式進行高效的資料壓縮和編碼類型。此方法最适合需要從大型表中讀取某些列的查詢。
Parquet
隻能讀取所需的列,是以極大地将
IO 最小化
。
列式存儲的優點
- 與基于行的檔案(如 CSV)相比,像
這樣的列式存儲旨在提高效率。查詢時,列存儲可以非常快速地跳過非相關資料。是以,與面向行的資料庫相比,聚合查詢更耗時。這種存儲方式已轉化為硬體節省,并最大限度地減少了通路資料的延遲。Apache Parquet
-
是從零開始建造的。是以,它能夠支援嵌套資料結構。Parquet 資料檔案的布局針對處理大量資料的查詢進行了優化,每個檔案可達GB 。Parquet
-
旨在支援靈活的壓縮選項和高效的編碼方案。由于每列的資料類型非常相似,是以每列的壓縮都很簡單(這使得查詢更快)。可以使用可用的多個編解碼器之一壓縮資料;是以,可以以不同的方式壓縮不同的資料檔案。Parquet
- Apache Parquet 最适合互動式和無伺服器技術,如 AWS Athena、Google BigQuery 和 Google Dataproc。
Parquet和 CSV 的差別
CSV 是一種簡單且廣泛傳播的格式,由許多工具(如 Excel、Google 表格)使用,許多其他工具都可以生成 CSV 檔案。即使 CSV 檔案是資料處理管道的預設格式,它也有一些缺點:
Amazon Athena和 Spectrum 将基于每個查詢掃描的資料量收費。
Google 和亞馬遜會根據 GS/S3 上存儲的資料量向您收費。
Parquet
幫助其使用者将大型資料集的存儲需求至少減少了三分之一,此外,它還極大地改善了掃描和去序列化時間,進而降低了總體成本。
下表比較了将資料從 CSV 轉換為 Parquet 獲得的節省和加速。
參考
列存儲格式Parquet淺析 - 簡書
Spark SQL的Parquet那些事兒 - 雲+社群 - 騰訊雲
What is Apache Parquet?