hdf5是美國超算中心開發的用於存儲科學數據的自描述文件格式,與簡單的二進制格式文件存儲的最大區別是hdf5帶有meta數據,這些元數據給出了數據的特徵信息。hdf5有廣泛的應用,matlab的文件就是以hdf5作為保存文件的默認格式。
hdf5能夠在學術界和業界流行開來,主要是因為hdf5有兩個殺手級特性:層次性分組和特徵。hdf5文件以分組形式來管理所有的數據集,就像文件系統裏的目錄一樣。hdf5允許在組和數據集上附加描述性的元數據,幫助數據的使用者更好地理解數據的含義。
hdf5的另一個值得一説的優點在於支持子集分片和部分IO,hdf5文件大小可能多大幾十G甚至TB規模,大多數機器不可能將如此大規模的數據集直接導入內存,切片操作會去尋找合適的數據並讀入內存,並且因為做了底層優化而非常迅速。