Znát nativní metody NumPy a Pandas pro ukládání do binárních souborů je prima, ale má to v praxi nějakou výhodu oproti ukládání do HDF5? My pracujeme s velkými objemy obrazových dat (stovky GB) v NumPy a vše cpeme do HDF5, protože ten formát byl pro tyto účely vyvinut. Pandas by měla s HDF5 fungovat také, ale to jsem nezkoušel. Výhodou HDF5 je, že endianitu řeší interně, data mohou mít atributy a dají se sdružovat do skupin. Matlab prý HDF5 používá pro své .mat soubory.
V mém případě to nebylo o výběru, ale o tom, že vstupní data k nám putují v binárním formátu a změnit to nejde. Takže se hledal mechanismus, jak to vyřešit co nejjednodušším způsobem, ideálně aby se nepoužíval pickle.
Jedna z výhod těch "raw" binárních formátů je, že se dá mmapovat jen zvolená část, ale to HDF5 také umí (i když trošku jiným mechanismem).
Popravdě HDF5 nepoužíváme, ale podívám se na to - dík za nakopnutí. Prozatím si (jiný projekt) z Kafky postupně tvoříme Parquet soubory, vždycky jeden za posledních X minut a potom k nim z Pandas přistupujeme klasicky jako k DB. To má také své limity, ale minimálně na vstupní straně je práce s tím triviální a prakticky bezchybná.
Nevím, jestli se pro tohle HDF5 hodí. HDF byl vyvinut lidmi od superpočitačů, ale rozšířil se i jinam. Výhodou je, že jsou k němu prohlížeče. Nejpropracovanější je asi ten od HDF Group (https://www.hdfgroup.org/downloads/hdfview/).
O použití HDF5 s Pythonem pojednává kniha "Python and HDF5: Unlocking Scientific Data". Dá člověku představu, co HDF5 umí.