Serialization 磁盘上是否有ocaml库存储/使用数据结构
像bdb。然而,我查看了ocaml bdb,它似乎只存储字符串。我的问题是我有存储巨大数据的阵列。当然,我可以将它们序列化为许多文件,或者对我的数据进行编码/解码并将它们放在数据库或那些键值数据库中,这是我最后的选择。我想知道是否有更好的方法。HDF4/HDF5文件格式可能适合您的需要。请参见除了jrouquie提到的HDF4绑定之外,还有可用的HDF5绑定()。根据存储的数据类型,有到GDAL()的绑定Serialization 磁盘上是否有ocaml库存储/使用数据结构,serialization,ocaml,berkeley-db,Serialization,Ocaml,Berkeley Db,像bdb。然而,我查看了ocaml bdb,它似乎只存储字符串。我的问题是我有存储巨大数据的阵列。当然,我可以将它们序列化为许多文件,或者对我的数据进行编码/解码并将它们放在数据库或那些键值数据库中,这是我最后的选择。我想知道是否有更好的方法。HDF4/HDF5文件格式可能适合您的需要。请参见除了jrouquie提到的HDF4绑定之外,还有可用的HDF5绑定()。根据存储的数据类型,有到GDAL()的绑定 对于可以放入bigarray的数据,您还可以选择在磁盘上映射一个大文件。例如,见。虽然它将
对于可以放入bigarray的数据,您还可以选择在磁盘上映射一个大文件。例如,见。虽然它将您与一种相当严格的磁盘格式联系在一起,但它确实使操作大于可用RAM的阵列变得相对简单。过去有一个ocaml BerkeleyDB包装器: 显然最近有人调查过: 然而,来自hcarty的GDAL绑定可能已经准备好生产,并且在某些地方得到了大量使用
另外,opam中也有dbm的绑定:HDF5通常是答案,但鉴于问题有些模糊,另一种解决方案是可能的 免责声明:我不知道ocaml(但我知道caml light)和伯克利数据库(AKA.bsddb(AKA bdb)) 然而,我查看了ocaml bdb,它似乎只存储字符串 这在ocamlbdb中可能是正确的,但实际上它存储字节。我不确定您的情况,因为在Python2中,unicode字符的字节和字符串之间没有区别。直到最近,Python3才有了一个合适的字节类型,bdb绑定获取并吐出字节。也就是说,区别是微妙的,但您更愿意使用字节,因为bdb理解和使用的是字节 我的问题是我有存储巨大数据的阵列。当然,我可以将它们序列化为许多文件,或者对我的数据进行编码/解码,并将它们放在数据库中 或者使用那些关键的db值,这是我最后的选择 我想知道是否有更好的办法 这取决于您的需要和数据的外观
- 如果数据都可以保留在内存中,那么您最好将内存转储到一个文件并重新加载
- 分割数据
- 将其存储在磁盘上
- 检索数据
- 分割数据
- 将其存储在磁盘上
- 检索数据
利用这些图书馆提供的能源。您需要了解键值组合。好吧,该项目的目标是hdf4,它有2G文件大小限制。