Буферы протокола Google, HDF5, сравнение NumPy (передача данных)

Мне нужна помощь, чтобы принять решение. Мне нужно передать некоторые данные в моем приложении, и мне нужно сделать выбор между этими 3 технологиями. Я немного прочитал обо всех технологиях (руководства, документация), но все еще не могу решить ...

Как они сравниваются?

Мне нужна поддержка метаданных (возможность получать файл и читать его без каких-либо дополнительная информация / файлы), быстрые операции чтения / записи, возможность хранить динамические данные будет плюсом (например, объекты Python)

То, что я уже знаю:

  • NumPy работает довольно быстро, но не может хранить динамические данные (например, объекты Python). (А как насчет метаданных?)
  • HDF5 очень быстрый, поддерживает настраиваемые атрибуты, прост в использовании, но не может хранить объекты Python. Кроме того, HDF5 изначально сериализует данные NumPy, поэтому, IMHO, NumPy не имеет преимуществ перед HDF5
  • . Буферы протокола Google тоже поддерживают самоописание, довольно быстро (но поддержка Python в настоящее время плохая, медленная и содержит ошибки). МОЖЕТ хранить динамические данные. Минусы - самоописание не работает из Python, а сообщения размером> = 1 МБ сериализуются / десериализуются не очень быстро (читай «медленно»).

PS: данные, которые мне нужно передать, являются «результатом работы» NumPy / SciPy (массивы, массивы сложных структур и т. Д.)

UPD: требуется межъязыковой доступ (C / C ++ / Python)

14
задан Peter Mortensen 20 December 2010 в 17:19
поделиться