对比
Parquet 与 Zarr 的区别
Apache Parquet 将表格存为文件,并划分为行组和列块。Zarr 将多维数组拆为数据块,并在存储中保存数组元数据。
应该选择哪种格式?
分析查询需要扫描表格中的指定列时选 Parquet。大型多维数组需要按块访问或存入对象存储时可考虑 Zarr。
适用于 Parquet
为分析保存结构化表格
- 只需读取部分列的大型数据集
适用于 Zarr
分块保存大型多维数组 · 处理云对象存储中的科学数据
- 高效读取大型数组的指定区域
- 在兼容工具间共享分片数据
基本信息
| 项目 | Parquet | Zarr |
|---|---|---|
| 扩展名 | .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 可以直接互相替代吗?
不可以。一个用于表格,一个用于多维数组;转换前需明确映射维度、类型、缺失值和元数据。