Zbiór danych HDF5 (.hdf5)
The StandardowyHierarchical Data Format 5 (HDF5) to czołowa architektura zarządzania danymi naukowymi dla masowych macierzy wielowymiarowych, szeroko stosowana w superkomputerach, modelowaniu klimatu, neuronauce oraz uczeniu maszynowym.
Konwertuj HDF5 na CSV
Darmowy konwerter z HDF5 na CSV w przeglądarce. Konwertuj pliki natychmiast na swoim urządzeniu.
Inspekcja i metadane
Systemy operacyjne i analizatory plików identyfikują pliki HDF5, sprawdzając początkową sekwencję bajtów binarnych:
Podpis nagłówka na poziomie bajtów (Magic Bytes)
Systemy operacyjne i analizatory plików identyfikują pliki HDF5, sprawdzając początkową sekwencję bajtów binarnych:
PODPIS HEX (OFFSET 0):
89 48 44 46 0D 0A 1A 0AREPREZENTACJA ASCII: \x89HDF\r\n\x1a\n
Normalizacja: The HDF Group Open Standard Specification
Specyfikacja techniczna
| Architektura kontenera | Hierarchical filesystem-like binary container organizing data into Groups (folders) and Datasets (multi-dimensional arrays) with attributes |
| Kompresja | Chunk-based compression filters: Gzip (Deflate), SZIP, Zstandard, Blosc, and LZF |
| Kolejność bajtów (Endianness) | Declared in superblock (Little or Big-Endian) |
| Przestrzenie kolorów | N/A (Multi-dimensional Numerical Arrays) |
| Kanały i struktura | High-dimensional scientific arrays, compound data types, and variable-length strings |
| Maks. wymiary | Practically unlimited (supports 64-bit coordinates and petabyte-scale datasets) |
| Przezroczystość | None |
| Streaming i progresywne ładowanie | Chunked storage enables partial hyper-slab slicing without loading full dataset into memory |
Techniczna macierz porównawcza: HDF5 a konkurencja
| Atrybut techniczny | HDF5 (Bieżący) | NETCDF | FITS | ZARR |
|---|---|---|---|---|
| Struktura hierarchiczna | Pełny system plików w stylu POSIX (grupy i zestawy danych) | NetCDF-4 bazuje na HDF5 | Tablicy i tabele o stałych blokach | Chmurowy format podzielony na bloki (katalogi) |
| Wycinanie zbiorów danych | Bardzo szybkie binarne odczyty hiperslabów | Szybkie odczyty hiperslabów | Bezpośrednie indeksowanie bloków | Chmurowe pobieranie równoległych bloków |
| Zastosowanie w uczeniu maszynowym | Standard dla wag modeli (Keras .h5) | Rzadko stosowany w AI | Brak | Rosnące wykorzystanie w treningu zestawów danych AI |
| Główny ekosystem | NCSA, superkomputery, Python h5py | NOAA, meteorologia, oceanografia | NASA, astronomia, teleskopy | Chmurowa data science |
Typowe tryby uszkodzeń i przewodnik odzyskiwania szesnastkowego
Błąd Pythona h5py: 'Unable to open file (file signature not found)'.
Główna przyczyna: Uszkodzony 8-bajtowy superblok na początku pliku.
Odzyskiwanie: Sprawdź offsety superbloku lub odzyskaj zestawy danych za pomocą narzędzia File2File HDF5 Tool.
Analiza bezpieczeństwa i wektory ataku na parser
Oficjalna biblioteka libhdf5 przetwarza złożone drzewa B i tablice sterty (heap), w których uszkodzone offsety wywoływały podatności na przepełnienie sterty.
Znane wektory ataku
- Przepełnienie bufora sterty podczas przechodzenia przez indeks węzła drzewa B (np. CVE-2021-37501).
- Zapis poza granicami bufora w niestandardowych wtyczkach potoku filtru dekompresji.
- Odmowa usługi poprzez zapętlone powiązania grup.
Najlepsze praktyki obronne:
Pochodzenie historyczne i kamienie milowe
Główne zalety
- Kompletny system plików w jednym pliku: organizuje złożone wielopetabajtowe zestawy danych w nazwane grupy i zbiory danych przypominające katalogi.
- Wydajne wycinanie hiperslabów (hyperslab slicing): odczyt małego dwuwymiarowego wycinka z gigantycznej, 100-gigabajtowej macierzy pięciowymiarowej bez konieczności wczytywania całego pliku.
- Głęboka integracja z nowoczesnym naukowym językiem Python (h5py), środowiskiem MATLAB, językiem R oraz superkomputerami działającymi w trybie równoległym MPI.
Ograniczenia techniczne i wady
- Wysoka złożokość specyfikacji utrudnia niezależną implementację parsera poza oficjalną biblioteką C libhdf5.
- Ograniczenia blokowania pojedynczego autora zapisu w klasycznym HDF5 historycznie komplikowały współbieżne przepływy pracy związane z zapisem.
- Uszkodzone superbloki mogą uniemożliwić dostęp do całego drzewa hierarchicznego.
Ciekawe informacje techniczne
- Pierwsze 8 bajtów magicznych pliku HDF5 (\x89HDF\r\n\x1a\n) celowo naśladują sygnaturę formatu PNG w celu wykrywania uszkodzonych transferów plików.
- System obserwacji Ziemi (EOS) NASA przechowuje petabajty codziennych satelitarnych danych klimatycznych w formacie HDF5.
- Frameworki uczenia głębokiego, takie jak Keras czy TensorFlow, popularyzowały format HDF5 (.h5) do zapisywania wag sieci neuronowych.
Często zadawane pytania techniczne
Czym jest plik HDF5?
Plik HDF5 jest jak kompletny system plików zapisany wewnątrz pojedynczego pliku, zaprojektowany z myślą o wydajnym przechowywaniu masywnych naukowych macierzy, tabel i modeli uczenia maszynowego.
Jaka jest różnica między .h5 a .hdf5?
Nie ma żadnej różnicy; .h5 i .hdf5 to dwa różne rozszerzenia plików dla dokładnie tego samego formatu Hierarchical Data Format 5.
Jak mogę zobaczyć, co znajduje się w pliku HDF5?
Możesz sprawdzać grupy, datasety oraz metadane wewnątrz dowolnego pliku HDF5 za pomocą programów HDFView, biblioteki Python h5py lub online za pomocą File2File.app.