決定を下すには助けが必要です。アプリケーションでデータを転送する必要があり、これら 3 つのテクノロジのいずれかを選択する必要があります。すべてのテクノロジー (チュートリアル、ドキュメント) について少し読みましたが、まだ決定できません...
それらはどのように比較されますか?
メタデータのサポート (追加情報/ファイルなしでファイルを受信して読み取る機能)、高速な読み取り/書き込み操作、動的データを保存する機能 (Python オブジェクトなど) が必要です。
私がすでに知っていること:
- NumPyは非常に高速ですが、動的データ (Python オブジェクトなど) を格納できません。(メタデータはどうですか?)
- HDF5は非常に高速で、カスタム属性をサポートし、使いやすいですが、Python オブジェクトを保存できません。また、HDF5はNumPyデータをネイティブにシリアル化するため、私見、NumPyはHDF5よりも利点がありません
- Google Protocol Buffersも自己記述型をサポートしており、かなり高速です (ただし、現時点では Python のサポートは貧弱で、遅くてバグがあります)。動的データを保存できます。欠点 - 自己記述型は Python からは機能せず、1 MB 以上のメッセージはシリアライズ/デシリアライズがあまり高速ではありません (「遅い」と読みます)。
PS: 転送する必要があるデータは、NumPy/SciPy の「作業の結果」(配列、複雑な構造体の配列など) です。
UPD: クロス言語アクセスが必要 (C/C++/Python)