什么是parquet
parquet是为了数据的高性能存储和索取而生的列式数据存储格式,同时parquet提供了高效的数据压缩和编码方案来增强处理复杂数据块的性能。
Reference:
- what-is-parquet
- Apache Parquet
parquet特性
- 开源免费
- 无语言论数据格式
- 基于列的数据格式:节省空间且提高了分析查询的速度
- 高性能数据压缩和解压缩
- 支持复杂的数据类型和高级的嵌套数据类型
parquet带来的好处
- 存储任何类型的大数据(结构化数据、图片、视频、文档)
- 为不同数据类型的列提供高性能的数据压缩和灵活的编码方案
- 增加数据的吞吐量且提升了查询的性能(通过类似于数据跳跃的技术,使得查询过程不需要读取所有数据)
parquet使用record-shredding(记录粉碎)和assembly algorithm(组装算法)实现,并且包含了复杂的数据结构用来存储数据。Parquet 已针对批量处理复杂数据进行了优化,并具有用于高效数据压缩和编码类型的不同方式。这种方法最适合那些需要从大表中读取某些列的查询。Parquet 只能读取所需的列,因此大大减少了 IO。
列格式的数据存储优势
- 相比于行式存储结构,列式存储在聚合查询上面花费更少的时间,这种存储方式已转化为节省硬件并最大限度地减少访问数据的延迟。
- parquet由分组(group)组成,所以其支持高级嵌套数据结构,Parquet 数据文件的布局针对处理大量数据的查询进行了优化,每个文件的数据量在千兆字节范围内。
- parquet提供了灵活的压缩选项和高效的编码方式,由于每列的数据类型非常相似,因此每列的压缩很简单(这种方式甚至会使查询更快),其次,不同的数据也可以使用不同的压缩方式。
- parquet最适用于交互式和无服务技术。
parquet和csv之间区别的比较
csv是大家再熟悉不过的存储数据的格式了。
Parquet 已帮助其用户将大型数据集的存储需求减少了至少三分之一,此外,其大大提高了数据的浏览和反序列化时间,从而降低了总成本。
下表展示了将数据由csv转成parquet所节省的花销:
Dataset | Size on Amazon S3 | Query Run Time | Data Scanned | Cost |
---|
Data stored as CSV files | 1 TB | 236 seconds | 1.15 TB | $5.75 |
Data stored in Apache Parquet Format | 130 GB | 6.78 seconds | 2.51 GB | $0.01 |
Savings | 87% less when using Parquet | 34x faster | 99% less data scanned | 99.7% savings |