nickleb
А чем hdf5 лучше?
Маленькое замечание. У вас наклевывается решение
http://www.gaia-gis.it/gaia-sins/. И сравнивать наверное надо с ним.
Это интересное решение. Однако замечу что те данные что были у нас, мы почти все вытащили из SQL баз и залили в hdf5.
У gaia-gis заявляются преимущества:
1 a single lightweight library implementing the full SQL engine
2 standard SQL implementation: almost complete SQL-92
3 no complex client/server architecture
4 a whole database simply corresponds to a single monolithic file (no size limits)
5 any DB-file can be safely exchanged across different platforms, because the internal architecture is universally portable
6 no installation, no configuration
В hdf5 нет SQL-92 (вместо него поддержка работы с многомерными массивами) остальные пункты он тоже обеспечивает.
Почему мы его используем:
1 Иерархическая-сетевая организация данных оказывается намного удобнее табличной.
2 hd5 НАМНОГО быстрее всех рассматривавшихся нами движков баз данных. (mysql,interbase, postgres) типичные данные - множество временных рядов, из которых надо вытаскивать интервалы по времени выигрыш по сравнению с interbase составлял 100-200 раз. Это конечно на обычном винчестере.
3 hdf5 легко сделать меньше по объему. Обычно 5-10 раз. Это внутренняя компрессия и отсутствие индексов.
4 На записи он тоже шустрый если объекты не пожатые компрессором. Для сжатия в настоящей реализации надо свое кеширование устраивать.
Недостатки -
1 однопользовательская запись. Можно компенсировать разбив файл на куски поскольку hdf5 допускает ссылки на внешние файлы.
2 Нет встроенных индексов(ну точнее они матричные и индексы датасетов). Тут я сторонник конструктора из запчастей. никто не мешает отдельно сделать sqlite с индексами. Есть коммерческие индексы для hdf5.
3 Нет сетевой раздачи (точнее есть MPI). Ну мы тут просто сайт поднимаем и раздаем данные кому что нужно в виде файликов.
Так что я советую 10 раз подумать. netcdf - hdf5 достаточно хороший и удобный формат.
Если не трудно - проведите сравнение со своей точки зрения и сообщите результаты.