天天看點

Hadoop Parquet格式入門

Parquet

是一種

開源檔案格式

,可用于 Hadoop 生态系統中的任何項目。與基于行的檔案(如

CSV

TSV

檔案)相比,

Apache Parquet

專為高效且性能良好的平面柱存儲格式而設計。

Parquet

使用

record shredding

assembly

算法,該算法優于嵌套命名空間的簡單拼合。Parquet 經過優化,可批量處理複雜的資料,并采用不同的方式進行高效的資料壓縮和編碼類型。此方法最适合需要從大型表中讀取某些列的查詢。

Parquet

隻能讀取所需的列,是以極大地将

IO 最小化

列式存儲的優點

  • 與基于行的檔案(如 CSV)相比,像

    Apache Parquet

    這樣的列式存儲旨在提高效率。查詢時,列存儲可以非常快速地跳過非相關資料。是以,與面向行的資料庫相比,聚合查詢更耗時。這種存儲方式已轉化為硬體節省,并最大限度地減少了通路資料的延遲。
  • Parquet

    是從零開始建造的。是以,它能夠支援嵌套資料結構。Parquet 資料檔案的布局針對處理大量資料的查詢進行了優化,每個檔案可達GB 。
  • 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 獲得的節省和加速。

Hadoop Parquet格式入門

參考

列存儲格式Parquet淺析 - 簡書

Spark SQL的Parquet那些事兒 - 雲+社群 - 騰訊雲

What is Apache Parquet?

繼續閱讀