Format Atlas

对比

Parquet 与 Zarr 的区别

Apache Parquet 将表格存为文件,并划分为行组和列块。Zarr 将多维数组拆为数据块,并在存储中保存数组元数据。

应该选择哪种格式?

分析查询需要扫描表格中的指定列时选 Parquet。大型多维数组需要按块访问或存入对象存储时可考虑 Zarr。

适用于 Parquet

为分析保存结构化表格

  • 只需读取部分列的大型数据集

适用于 Zarr

分块保存大型多维数组 · 处理云对象存储中的科学数据

  • 高效读取大型数组的指定区域
  • 在兼容工具间共享分片数据

基本信息

项目ParquetZarr
扩展名.parquet.zarr
MIME 类型application/vnd.apache.parquet
常见用途为分析保存结构化表格分块保存大型多维数组 · 处理云对象存储中的科学数据
打开方式使用支持 Parquet 的工具检查模式、列类型、行数和值。使用支持Zarr的库或分析工具。检查版本、数组形状、分块网格、codec和属性;保留整个本地目录或所需对象键,并参考创建者文档。
导出或转换从 CSV 等格式转换时,检查类型、空值、时间戳、编码、分区和行数。从netCDF或HDF5转换时,检查维度、类型、分块、属性和坐标约定映射。保留原始数据,并在转换后验证数值。

按用途选择

只需读取部分列的大型数据集

为分析保存结构化表格

Parquet

高效读取大型数组的指定区域

分块保存大型多维数组 · 处理云对象存储中的科学数据

Zarr

在兼容工具间共享分片数据

分块保存大型多维数组 · 处理云对象存储中的科学数据

Zarr

关键点 1

Parquet 行组含列块,其位置由文件元数据记录;Zarr 将shape、类型、块网格、codec等元数据与编码后的块存入存储。

进一步了解差异

关键点 2

Parquet 围绕表格行列组织;Zarr 围绕N维数组轴和数据块组织。

进一步了解差异

进一步了解差异

列式分析表适合用 Parquet;大型数组的分块访问适合用 Zarr。根据真实查询或切片方式调整行组或块布局,并检查存储环境。

  • Parquet元数据定位行组中的列块。Zarr元数据描述数组形状、类型、块网格和codec,块数据以独立键保存。
  • Parquet映射表格行列;Zarr映射数组维度和块。性能取决于布局是否符合查询或切片模式。
  • 转换时映射行、列和维度,核对类型、空值或缺失值、单位、时间与坐标元数据、codec和读取性能。迁移Zarr时需一起复制所有元数据和块键。

常见问题

Parquet 和 Zarr 可以直接互相替代吗?

不可以。一个用于表格,一个用于多维数组;转换前需明确映射维度、类型、缺失值和元数据。

了解详情

参考资料与规范