Parquet的那些事(一)基本原理

本文介绍了Parquet文件结构,包括Header、Data Block和Footer,强调了列式存储、Predicate Filter特性和常见Parquet工具。Parquet通过列式存储、Column Projection和Partition Pruning实现大数据的高效查询。Predicate Filter利用文件Metadata进行过滤,减少数据传输,提升性能。
摘要由CSDN通过智能技术生成

数据的接入、处理、存储与查询,是大数据系统不可或缺的四个环节。随着数据量的增加,大家开始寻找一种高效的数据格式,来解决存储与查询环节的痛点。

  • 高效的压缩编码,用于降低存储成本
  • 高效的读取能力,用于支撑快速查询

Parquet便是在这样的背景下诞生,与TEXT、JSON、CSV等文件格式相比,它有三个核心特征,为解决上述的痛点问题提供了基础。

  • 列式存储
  • 自带Schema
  • 具备Predicate Filter特性

在行式存储中,一行的多列是连续的写在一起的,而在列式存储中,数据按列分开存储。由于同一列的数据类型是一样的,可以使用更高效的压缩编码进一步节约存储空间。

对于大多数数据存储服务,如MySQL、MongoDB、Elasticsearch等,为了提高查询性能,都会在数据写入时建立相应的索引。而存放在HDFS、AWS S3上的大数据是直接以文件形式存储的,那么如何实现快速查询呢?目前主要有三种手段,核心目的是尽可能只加载有符合数据的文件,而这些手段都能基于Parquet实现。

  • Partition Pruning。类似于将文件分文件夹存放的思路,根据某些字段将数据进行分区,在查询时指定相应的分区条件。
  • Column Projection。在查询中指定需要返回的字段,跳过不必要的字段,减少需要加载的数据量。
  • Predicate
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值