HDF5 数据集 (.hdf5)

The 标准

层次数据格式第 5 版(HDF5)是用于海量多维数组的顶级科学数据管理架构,广泛应用于超级计算、气候建模、神经科学和机器学习领域。

将 HDF5 转换为 CSV

免费的浏览器端 HDF5 转 CSV 转换器。在您的设备上即时转换文件。

检查与元数据

操作系统和文件分析器通过检查开头的二进制字节序列来识别 HDF5 文件:

选择或将文件拖放到此处

100% 浏览器端私密转换 - 文件绝不会离开您的设备

或粘贴 Ctrl+V
零网络传输隐私保证: 上传至外部服务器的数据为 0 字节。所有处理均在您的浏览器沙箱中本地完成。

字节级文件头签名 (Magic Bytes)

操作系统和文件分析器通过检查开头的二进制字节序列来识别 HDF5 文件:

十六进制签名 (偏移量 0):

89 48 44 46 0D 0A 1A 0A

ASCII 表示形式: \x89HDF\r\n\x1a\n

标准化: The HDF Group Open Standard Specification

技术规格

容器架构Hierarchical filesystem-like binary container organizing data into Groups (folders) and Datasets (multi-dimensional arrays) with attributes
压缩方式Chunk-based compression filters: Gzip (Deflate), SZIP, Zstandard, Blosc, and LZF
字节序Declared in superblock (Little or Big-Endian)
色彩空间N/A (Multi-dimensional Numerical Arrays)
通道与结构High-dimensional scientific arrays, compound data types, and variable-length strings
最大尺寸Practically unlimited (supports 64-bit coordinates and petabyte-scale datasets)
透明度None
流式传输与渐进式加载Chunked storage enables partial hyper-slab slicing without loading full dataset into memory

技术对比矩阵:HDF5 对比同类产品

技术属性HDF5 (当前)NETCDFFITSZARR
层次结构完整的类似 POSIX 的文件系统(组和数据集)NetCDF-4 底层使用 HDF5固定块数组和表格云原生分块目录格式
数据集切片超快速的二进制超切片读取快速超切片读取直接块索引云并行块获取
机器学习用途模型权重标准(Keras .h5)在人工智能中很少使用AI 训练数据集用法日益增加
主要生态系统NCSA、超级计算、Python h5pyNOAA、气象学、海洋学NASA、天文学、望远镜云原生数据科学

常见损坏模式与十六进制恢复指南

Python h5py 报错:"无法打开文件(未找到文件签名)"。

根本原因: 文件开头的 8 字节超级块损坏。

恢复方法: 使用 File2File HDF5 工具检查超级块偏移量或恢复数据集。

安全分析与解析器攻击向量

官方 libhdf5 库会解析复杂的 B 树和堆表,在此过程中损坏的偏移量曾导致堆溢出漏洞。

已知攻击向量

  • 遍历 B 树节点索引时发生堆缓冲区溢出(例如 CVE-2021-37501)。
  • 自定义解压过滤管道插件中发生越界写入。
  • 通过循环组链接周期实施拒绝服务攻击。

防御性最佳实践:

历史渊源与里程碑

2020HDF5 v1.12 引入了用于云对象存储(Amazon S3)的虚拟对象层(VOL)连接器。
2006HDF 小组从伊利诺伊大学 NCSA 独立出来,成为一家非营利基金会。
1998NCSA 发布 HDF5,彻底重新设计了原有的 HDF4,以消除 2 GB 的文件大小限制。

核心优势与特点

  • 完整的文件内文件系统:像目录一样将复杂的数拍字节(petabyte)数据集组织到命名的组和数据集中。
  • 高性能超切片(Hyperslab)读取:从海量的 100 GB 5D 矩阵中读取微小的 2D 切片,而无需读取整个文件。
  • 与现代科学 Python(h5py)、MATLAB、R 以及高性能 MPI 并行超级计算机深度集成。

技术局限与劣势

  • 高规范复杂度使得在官方 libhdf5 C 库之外独立实现解析器变得非常困难。
  • 传统 HDF5 中的单写入器锁定限制在历史上使并发写入工作流变得复杂。
  • 损坏的超级块可能会导致整个层次结构树完全无法访问。

趣味技术冷知识

  • HDF5 文件的头 8 个魔数字节(\x89HDF\r\n\x1a\n)故意模仿了 PNG 的签名,以便检测损坏的文件传输。
  • NASA 的地球观测系统(EOS)以 HDF5 格式存储每天数拍字节的卫星气候数据。
  • Keras 和 TensorFlow 等深度学习框架普及了用于保存神经网络权重的 HDF5(.h5)格式。

常见技术问题

什么是 HDF5 文件?

HDF5 文件类似于存储在单个文件中的完整文件系统,旨在高效存储海量的科学数组、表格和机器学习模型。

.h5 和 .hdf5 有什么区别?

没有区别;.h5 和 .hdf5 是完全相同的分层数据格式 5(Hierarchical Data Format 5)的两种不同文件扩展名。

如何查看 HDF5 文件内部的内容?

您可以使用 HDFView、Python h5py 或在线使用 File2File.app 检查任何 HDF5 文件内部的组、数据集和元数据。