parquet介绍

概述

Apache Parquet 是一种开源的列式数据文件格式,旨在实现高效的数据存储和检索。它提供高性能压缩和编码方案(encoding schemes)来批量处理复杂数据,并且受到许多编程语言和分析工具的支持。

parquet-format

parquet-format 存储库托管 Apache Parquet 文件格式的官方规范,该规范定义了数据的结构和存储方式。此规范以及 Thrift 元数据定义和其他关键组件对于开发人员有效读取和写入 Parquet 文件至关重要。parquet-format 项目专门包含理解和正确使用 Parquet 文件所需的格式规范。

作为一个专注于规范的存储库,parquet 格式的存储库不包含源代码。

文件格式

应该将此文件和 thrift 定义一起阅读才能理解其格式。

在这里插入图片描述

在上面的例子中,该表有 N 列,分为 M 个行组。文件元数据包含所有列块(column chunks)起始位置的位置。有关元数据中包含的内容的更多详细信息,请参阅 Thrift 定义。

在这里插入图片描述

该格式明确设计用于将元数据与数据分离。这样可以将列拆分为多个文件,也可以让单个元数据文件引用多个 parquet 文件。

配置

行组大小

较大的行组允许较大的列块,从而可以进行较大的顺序 IO。建议使用较大的行组(512MB - 1GB)。

数据页大小

数据页应被视为不可分割的,因此较小的数据页允许更细粒度的读取(例如单行查找)。较大的页面大小会产生较少的空间开销(较少的页眉)和潜在的较少的解析开销(处理页眉)。建议页面大小为 8KB。

元数据

元数据有两种类型:文件元数据和页眉(page header)元数据。

文件元数据由FileMetaData结构描述,此文件元数据提供在浏览 Parquet 文件时有用的偏移量和大小信息。

页眉元数据(PageHeader以及图中的子元数据)与页面数据内联存储,并用于读取和解码所述数据。

所有 thrift 结构都使用 TCompactProtocol 序列化。这些结构的完整定义在 Parquet Thrift 定义中给出。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shulu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值