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