Zbiór danych HDF5 (.hdf5)
The StandardHierarchical Data Format 5 (HDF5) to wiodąca architektura zarządzania dużymi, wielowymiarowymi zbiorami danych naukowych. Jest szeroko stosowana w obliczeniach wielkiej skali, modelowaniu klimatu, neuronauce i 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 | Hierarchiczny kontener binarny przypominający system plików; porządkuje dane w grupach i zbiorach danych (tablicach wielowymiarowych) z atrybutami |
| Kompresja | Filtry kompresji oparte na fragmentach: Gzip (Deflate), SZIP, Zstandard, Blosc i LZF |
| Kolejność bajtów (Endianness) | Kolejność bajtów Little-Endian lub Big-Endian jest określona w superbloku |
| Przestrzenie kolorów | Nie dotyczy (wielowymiarowe tablice numeryczne) |
| Kanały i struktura | Wielowymiarowe tablice naukowe, złożone typy danych i ciągi znaków o zmiennej długości |
| Maks. wymiary | Praktycznie nieograniczony rozmiar; obsługuje 64-bitowe współrzędne i zbiory danych o skali petabajtów |
| Przezroczystość | None |
| Streaming i progresywne ładowanie | Zapis we fragmentach umożliwia odczyt wycinka hipersześcianu bez wczytywania całego zbioru do pamięci |
Techniczna macierz porównawcza: HDF5 a konkurencja
| Atrybut techniczny | HDF5 (Bieżący) | NETCDF | FITS | ZARR |
|---|---|---|---|---|
| Struktura hierarchiczna | Pełna hierarchia w stylu POSIX (grupy i zbiory danych) | NetCDF-4 bazuje na HDF5 | Tablice 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 | Standardowy format 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 | Nauka o danych w chmurze |
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ź przesunięcia superbloku lub odzyskaj zbiory danych za pomocą File2File.app HDF5 Tool.
Analiza bezpieczeństwa i wektory ataku na parser
Oficjalna biblioteka libhdf5 przetwarza złożone drzewa B i tablice sterty. Uszkodzone przesunięcia powodowały podatności związane z przepełnieniem 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: Przetwarzaj niezaufane pliki HDF5 w odizolowanym środowisku WebAssembly z ograniczoną ilością pamięci.
Pochodzenie historyczne i kamienie milowe
Główne zalety
- System plików w jednym pliku: porządkuje złożone zbiory danych o rozmiarze wielu petabajtów w nazwane grupy i zbiory danych, podobnie jak katalogi.
- Wydajny odczyt wycinków hipersześciennych: pozwala odczytać mały wycinek 2D z ogromnej, 100-gigabajtowej macierzy 5D bez wczytywania całego pliku.
- Szeroka integracja z nowoczesnym Pythonem naukowym (h5py), MATLAB-em, R oraz superkomputerami wykorzystującymi obliczenia równoległe MPI.
Ograniczenia techniczne i wady
- Wysoka złożoność specyfikacji utrudnia niezależną implementację parsera poza oficjalną biblioteką C libhdf5.
- Ograniczenie klasycznego HDF5 do jednego procesu zapisującego historycznie utrudniało równoczesny zapis.
- Uszkodzone superbloki mogą uniemożliwić dostęp do całego drzewa hierarchicznego.
Ciekawe informacje techniczne
- Sygnatura HDF5 wywodzi się z PNG; identyfikuje format i pomaga wykrywać częste błędy transferu.
- System obserwacji Ziemi (EOS) NASA przechowuje petabajty codziennych satelitarnych danych klimatycznych w formacie HDF5.
- Frameworki uczenia głębokiego, takie jak Keras i TensorFlow, przyczyniły się do popularyzacji HDF5 (.h5) jako formatu zapisu wag sieci neuronowych.
Często zadawane pytania techniczne
Czym jest plik HDF5?
Plik HDF5 przypomina kompletny system plików zamknięty w jednym pliku. Służy do wydajnego przechowywania dużych macierzy i tabel naukowych oraz 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, zbiory danych oraz metadane w dowolnym pliku HDF5 za pomocą programu HDFView, biblioteki h5py dla języka Python lub bezpośrednio w przeglądarce za pomocą File2File.app.