HDF5
HDF5是文件型数据库,适合存储大批量同类型数据,读写速度快,占用空间小。
HDF5 API只负责操作和组织数据,数据之间的逻辑关系由使用者负责处理.
API支持C, Fortran, Java, MATLAB, Python等语言。
基本概念:
File
HDF5文件,扩展名.h. API前缀H5F
Group
跟目录类似,用于组织Dataset和Attribute, API前缀H5G
Dataset
存储数据,可定义N维表, 表大小可以是固定的,也可以是可扩展的(需要设置块存储方式),API前缀H5D
Attribute
简单的键值对,一般用于Dataset的meta数据说明, API前缀H5A
DataType
数据格式,Dataset和Attribute储存数据的格式,可以简单的数据类型,int, byte, double, float,
也可以是很复杂的Compound结构。API前缀H5T
Properties
控制存储,读写,访问等等。我主要用了追加数据设置时,设置CHUNK存储方式。API前缀H5P
Space
数据访问空间,用来设置数据读写范围,作用很大。主要用来实现Partial I/O. 数据输入和输出的space设置可以不一致,
但是总数据量必须保持一致。比如读取二维表数据,文件space设置[0,0]-[[2,2], 内存space可以设置一维[0]-[8]。
数据的保存顺序主要有C和Fortran两个典型例子,C顺序是RowMajor, Fortran是ColumnMajor.
以C顺序存储1-15个数字3x5数组
以Fortran顺序存储1-15个数字3x5数组
image.png
网友评论