Мы оцениваем технологии, которые мы будем использовать для хранения данных, которые мы собираем во время анализа кода C/С++. В случае С++ объем данных может быть относительно большим, ~ 20Mb на TU.
После прочтения следующего SO answer он заставил меня подумать, что HDF5 может быть подходящей технологией для нас. Мне было интересно, могут ли люди помочь мне ответить на несколько начальных вопросов, которые у меня есть:
- Производительность
. Общее использование данных будет записываться один раз и читать "несколько" раз, аналогично времени жизни файла .o, созданного компилятором. Как HDF5 сравнивается с использованием чего-то вроде SQLite DB? Это даже разумное сравнение?
-
Со временем мы добавим информацию, которую мы храним, но не обязательно хотим повторно распространять совершенно новый набор "читателей" для поддержки нового формата. После прочтения руководства пользователя я понимаю, что HDF5 похож на XML или DB, поскольку эта информация связана с тегом/столбцом, и поэтому инструмент, созданный для чтения старой структуры, просто игнорирует поля, в которых это не касается? Насколько я понимаю это правильно?
-
Значительным фрагментом информации, которую мы хотим выписать, будет тип дерева структуры: иерархия областей, иерархия типов и т.д. В идеале мы будем моделировать области с родителями, детьми и т.д. Возможно ли иметь один объект HDF5 "указывает" на другой? Если нет, существует ли стандартная методика для решения этой проблемы с использованием HDF5? Или, как требуется в БД, нужен ли нам уникальный ключ, который "связывает" один объект с другим с соответствующими поисками при поиске данных?
Большое спасибо!