Apache Parquet是一種開源的、麵向列的數據文件格式,設計用於高效的數據存儲和檢索。它提供了高效的數據壓縮和編碼方案,增強了處理批量複雜數據的性能。Apache Parquet被設計為用於批處理和交互式工作負載的通用交換格式。中可用的其他柱狀存儲文件格式類似Hadoop,即RCFile和ORC。
Apache Parquet是使用記錄分解和彙編算法實現的,該算法適應可用於存儲數據的複雜數據結構。Parquet經過優化,可大量處理複雜數據,並具有高效數據壓縮和編碼類型的不同方法。這種方法特別適合那些需要從大型表中讀取某些列的查詢。Parquet隻能讀取所需的列,因此極大地減少了IO。
CSV是一種簡單而通用的格式,被許多工具使用,如Excel,穀歌Sheets和許多其他工具。即使CSV文件是數據處理管道的默認格式,它也有一些缺點:
Parquet已經幫助用戶在大型數據集上減少了至少三分之一的存儲需求,此外,它還大大提高了掃描和反序列化時間,從而降低了總體成本。下表比較了將數據從CSV轉換為Parquet所獲得的節省和加速。
數據集 |
Amazon S3上的大小 |
查詢運行時間 |
數據掃描 |
成本 |
以CSV格式存儲的數據 |
1 TB |
236秒 |
1.15結核病 |
5.75美元 |
以Apache Parquet格式存儲的數據 |
130 GB |
6.78秒 |
2.51 GB |
0.01美元 |
儲蓄 |
使用Parquet時減少87% |
快34倍 |
掃描數據減少99% |
99.7%的儲蓄 |
開源三角洲湖項目構建並擴展了Parquet格式,添加了額外的功能,如雲對象存儲上的ACID事務、時間旅行、模式演化和簡單的DML命令(CREATE/UPDATE/INSERT/DELETE/MERGE)。Delta Lake通過使用有序的事務日誌實現了許多重要的特性,這使得數據倉庫功能在雲對象存儲上成為可能。在Databricks博客文章中了解更多信息潛入Delta Lake:打開事務日誌.