Parquet

Parquet是可用于Hadoop生态系统中任何项目的开源文件格式。与基于行的文件(例如CSV或TSV文件)相比,Apache Parquet旨在提供高效且高性能的扁平列式数据存储格式。

Parquet使用记录粉碎和组装算法,该算法优于嵌套名称空间的简单拼合。Parquet经过优化,可以批量处理复杂的数据,并采用不同的方式进行有效的数据压缩和编码类型。这种方法最适合需要从大型表读取某些列的查询。Parquet只能读取所需的列,因此大大减少了IO。

以列格式存储数据的优点:
与CSV等基于行的文件相比,像Apache Parquet这样的列式存储旨在提高效率。查询列式存储时,您可以非常快地跳过无关数据。结果,与面向行的数据库相比,聚合查询耗时更少。这种存储方式已转化为节省硬件和最小化访问数据的延迟。
Apache Parquet是从头开始构建的。因此,它能够支持高级嵌套数据结构。Parquet数据文件的布局已针对处理大量数据的查询进行了优化,每个文件的千兆字节范围内。
Parquet构建为支持灵活的压缩选项和有效的编码方案。由于每一列的数据类型非常相似,因此每一列的压缩非常简单(这使查询更快)。可以使用几种可用的编解码器之一压缩数据。结果,可以不同地压缩不同的数据文件。
Apache Parquet最适合与AWS Athena,Amazon Redshift Spectrum,Google BigQuery和Google Dataproc等交互式和无服务器技术配合使用。
Parquet和CSV的区别
CSV是一种简单且广泛使用的格式,许多工具(例如Excel,Google表格和其他工具)都使用CSV来生成CSV文件。即使CSV文件是数据处理管道的默认格式,它也有一些缺点:

Amazon Athena和Spectrum将根据每个查询扫描的数据量收费。
Google和Amazon将根据GS / S3上存储的数据量向您收费。
Google Dataproc收费是基于时间的。
Parquet帮助其用户将大型数据集的存储需求减少了至少三分之一,此外,它大大缩短了扫描和反序列化时间,从而降低了总体成本。

下表比较了通过将数据从CSV转换为Parquet所节省的成本以及提速。

数据集

Amazon S3的大小

查询运行时间

扫描数据

成本

数据存储为CSV文件

1 TB

236秒

1.15 TB

$ 5.75

以Apache Parquet格式存储的数据

130 GB

6.78秒

2.51 GB

$ 0.01

积蓄

使用镶木地板时减少87%

快34倍

扫描数据减少99%

节省99.7%

posted @ 2020-08-04 15:47  独孤风  阅读(789)  评论(0编辑  收藏  举报