Ruby PStore文件太大了

时间:2016-02-29 10:49:41

标签: ruby large-files

我正在使用PStore存储一些计算机模拟的结果。不幸的是,当文件变得太大(超过我看到的2GB)时,我无法再将文件写入磁盘而且收到以下错误;

Errno::EINVAL: Invalid argument - <filename>

我知道这可能是IO的限制,但我想知道是否有解决方法。例如,要读取大型JSON文件,我首先split该文件,然后分别读取它。可能最终的解决方案应该是在后端切换到合适的数据库,但由于特定Ruby(Sketchup)的一些限制,我使用它并不总是可行的。

1 个答案:

答案 0 :(得分:1)

我将假设您的数据有一个可用作原始密钥的字段。

因此我建议您不要将数据转储到一个巨大的文件中,而是可以将数据放入不同的文件/存储桶中。 例如,如果您的数据具有name字段,则可以获取名称的前1-4个字符,使用rojj-datafile.pstore之类的字符创建文件并在其中添加条目。任何名称以&#39; rojj&#39;进去那个档案。

更结构化的版本是将第一个char作为目录,然后将文件放在其中,如r/rojj-datafile.pstore

显然,您的读/写机制必须考虑到这种新的文件结构,毫无疑问,将数据处理到pstore中的速度会慢一些。