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