Я работаю над проектом с открытым исходным кодом, касающимся добавления метаданных в папки. Предоставленный (Python) API позволяет вам просматривать и получать доступ к метаданным, как это была еще одна папка. Потому что это еще одна папка.
\folder\.meta\folder\somedata.json
Затем я наткнулся на HDF5 и его вывод Alembic.
Чтение на HDF5 в книге Python и HDF5 Я искал преимущества использования его по сравнению с использованием файлов в папках, но большая часть то, что я натолкнулся, говорил о преимуществах иерархического файлового формата с точки зрения его простоты в добавлении данных через его API:
>>> import h5py
>>> f = h5py.File("weather.hdf5")
>>> f["/15/temperature"] = 21
Или его способность читать только определенные части по запросу (например, произвольный доступ) и параллельное выполнение одного файла HDF5 (например, для многопроцессорной обработки)
Вы можете монтировать файлы HDF5, https://github.com/zjttoefs/hdfuse5
Он даже имеет сильную, но простую концепцию фундамента Группы и Наборы данных, которые из wiki читают:
- Наборы данных, которые являются многомерными массивами однородного типа
- Группы, которые представляют собой контейнерные структуры, которые могут хранить наборы данных и другие группы
Замените Набор данных Файл и Группа с Папка, и весь набор функций звучит для меня как то, что файлы в папках уже полностью готовы.
Для каждой выгоды, с которой я столкнулся, никто не выделялся как эксклюзив для HDF5.
Итак, мой вопрос заключается в том, должен ли я предоставить вам один файл HDF5 и одну папку с файлами, как с идентичным контентом, в каком сценарии HDF5 лучше подходит?
Edit:
Получив некоторые ответы о переносимости HDF5.
Звучит прекрасно и все, но мне все еще не предоставлен пример, сценарий, в котором HDF5 выйдет из папки с файлами. Почему кто-то рассматривает использование HDF5, когда папка читается на любом компьютере, любая файловая система по сети поддерживает "параллельный ввод-вывод", читается людьми без интерпретатора HDF5.
Я бы сказал, что папка с файлами гораздо более переносима, чем любой HDF5.
Изменить 2:
Thucydides411 просто привел пример сценария, в котором важна переносимость. qaru.site/info/147994/...
Я думаю, что я отвлекаюсь от ответов в этом потоке, так это то, что HDF5 хорошо подходит, когда вам нужна организационная структура файлов и папок, как в приведенном выше примере сценария, с большими (миллионными) небольшими (~ 1 байт) структуры данных; как отдельные числа или строки. Что он компенсирует нехватку файловых систем, предоставляя "вспомогательную файловую систему", благоприятствующую малым и многим, в отличие от немногих и больших.
В компьютерной графике мы используем его для хранения геометрических моделей и произвольных данных об отдельных вершинах, которые, по-видимому, хорошо согласуются с ним в научном сообществе.