Мне нужна помощь, чтобы принять решение. Мне нужно передать некоторые данные в моем приложении, и мне нужно сделать выбор между этими 3 технологиями.
Я немного прочитал обо всех технологиях (руководства, документация), но все еще не могу решить ...
Как они сравниваются?
Мне нужна поддержка метаданных (возможность получать файл и читать его без каких-либо дополнительная информация / файлы), быстрые операции чтения / записи, возможность хранить динамические данные будет плюсом (например, объекты Python)
То, что я уже знаю:
- NumPy работает довольно быстро, но не может хранить динамические данные (например, объекты Python). (А как насчет метаданных?)
- HDF5 очень быстрый, поддерживает настраиваемые атрибуты, прост в использовании, но не может хранить объекты Python.
Кроме того, HDF5 изначально сериализует данные NumPy, поэтому, IMHO, NumPy не имеет преимуществ перед HDF5
- . Буферы протокола Google тоже поддерживают самоописание, довольно быстро (но поддержка Python в настоящее время плохая, медленная и содержит ошибки). МОЖЕТ хранить динамические данные. Минусы - самоописание не работает из Python, а сообщения размером> = 1 МБ сериализуются / десериализуются не очень быстро (читай «медленно»).
PS: данные, которые мне нужно передать, являются «результатом работы» NumPy / SciPy (массивы, массивы сложных структур и т. Д.)
UPD: требуется межъязыковой доступ (C / C ++ / Python)
задан Peter Mortensen 20 December 2010 в 17:19
поделиться