Как HDF5 сравнивается с использованием чего-то вроде БД SQLite?
Это даже разумное сравнение?
Вроде как, но не совсем. Они оба структурированные файлы. SQLite имеет функции для поддержки запросов к базе данных с использованием SQL. HDF5 имеет функции для поддержки больших научных наборов данных.
Они оба предназначены для высокой производительности.
Со временем мы добавим к информации, которую мы храним, но не обязательно захотим перераспределить совершенно новый набор «читателей» для поддержки нового формата.
Если вы храните данные в структурированной форме, типы данных этих структур также сохраняются в файле HDF5. Я немного расстроен тем, как это работает (например, если это включает в себя обратную совместимость врожденного типа), но я знаю, что если вы правильно спроектируете свой «читатель», он сможет обрабатывать типы, которые будут изменены в будущем.
Возможно ли, чтобы один объект HDF5 "указывал" на другой?
Абсолютно! Вы захотите использовать атрибутов . Каждый объект имеет одну или несколько строк, описывающих путь к этому объекту. HDF5 группы аналогичны папкам / каталогам, за исключением того, что папки / каталоги являются иерархическими = уникальный путь описывает местоположение каждого из них (по крайней мере, в файловых системах без жестких ссылок), тогда как группы образуют ориентированный граф, который может включить циклы. Я не уверен, можете ли вы сохранить «указатель» на объект непосредственно как атрибут, но вы всегда можете сохранить абсолютный / относительный путь как строковый атрибут. (или в любом другом месте в виде строки; вы можете иметь множество таблиц поиска, если хотите).