Format Atlas

对比

HDF5 与 Zarr

HDF5 在通用容器中层级组织组和数据集。Zarr 将多维分块数组及元数据表示为存储中的独立键,适用于文件系统和对象存储。

应该选择哪种格式?

已有 HDF5 文件、异构层级数据或依赖 HDF5 工具时优先选 HDF5。对象存储需要独立访问数组块时考虑 Zarr,并在实际环境测试版本与编解码器。

适用于 HDF5

以层级结构存储大型科学和技术数据 · 在一个容器中保存多维数组及相关元数据

  • 用组、数据集和属性组织复杂数据
  • 需要局部读写或数据集级压缩的科学工作流

适用于 Zarr

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

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

基本信息

项目HDF5Zarr
扩展名.h5, .hdf5.zarr
MIME 类型
常见用途以层级结构存储大型科学和技术数据 · 在一个容器中保存多维数组及相关元数据分块保存大型多维数组 · 处理云对象存储中的科学数据
打开方式使用支持 HDF5 的可视化或分析软件、或程序库打开。检查组层级、数据集形状与类型、属性和筛选器。不同应用可能定义自己的 HDF5 约定,请同时查阅创建者文档。使用支持Zarr的库或分析工具。检查版本、数组形状、分块网格、codec和属性;保留整个本地目录或所需对象键,并参考创建者文档。
导出或转换转换为 CSV、Parquet、FITS 等格式前,先确定如何映射层级、数组维度和类型、属性、单位与坐标。目标格式可能无法表达某些结构或元数据;请保留原文件并核对数据。从netCDF或HDF5转换时,检查维度、类型、分块、属性和坐标约定映射。保留原始数据,并在转换后验证数值。

按用途选择

用组、数据集和属性组织复杂数据

以层级结构存储大型科学和技术数据 · 在一个容器中保存多维数组及相关元数据

HDF5

需要局部读写或数据集级压缩的科学工作流

以层级结构存储大型科学和技术数据 · 在一个容器中保存多维数组及相关元数据

HDF5

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

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

Zarr

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

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

Zarr

关键点 1

HDF5 在文件内部保存组、数据集和属性;Zarr 将数组或组的元数据及块数据映射为存储键。

进一步了解差异

关键点 2

HDF5 是可选分块和压缩的通用层级模型;Zarr 规范 N 维数组、分块网格、编解码器和存储键。

进一步了解差异

进一步了解差异

文件式层级结构和现有 HDF5 应用很重要时选 HDF5。工作流受益于存储中的分块读写时考虑 Zarr,并用真实访问模式和后端进行测试。

  • HDF5 在文件中存储组、数据集和属性;Zarr 将元数据文档与编码块作为存储中的独立键保存。
  • HDF5 提供通用数据模型和可配置布局;Zarr 规范分块数组、网格、编解码器和键的构造方式。
  • 局部读取性能取决于块形状、访问模式、缓存和后端。迁移时验证数据类型、缺失值、属性、编解码器、分块及并行访问。

常见问题

Zarr 的数组局部读取总比 HDF5 快吗?

不一定。速度取决于块形状、工作负载、缓存、实现和存储后端;应测试代表性访问。

了解详情

相关用途与检查步骤

科学数组数据交接前的检查流程

参考资料与规范