我一直在阅读文档,但无法确定批量加载的一般准则。
据我所知,将数据批量加载到 graphdb 的最佳方法是使用LoadRDF 工具。
但是,我并不熟悉适当设置的一般规则。首先,如果您有一个带有 SSD 驱动器的“普通”服务器,那么什么样的解析速度是可以接受的?1.000 条语句/秒、10.000 条语句/秒还是更多或更少?
还有什么好的设置?例如,您可以设置 -Dpool.buffer.size 的默认值为 200.000 条语句,但是如果您有 10gig 的 ram,那么增加这个的经验法则是什么?如果您有 100 或 300 gig 的 ram?
另一个选项是 -Dinfer.pool.size,它设置为线程的最大值,因为 CPU 的最小值为 4。因此 1 个核心 = 4 个线程,32 个核心是 32 个线程。我认为这不需要任何额外的调整,或者只有在你想减少 CPU 负载并且如果你有 32 个内核时不超过 64 个线程时才会出现这种情况?
通过 turtle 文件还可以使用额外的选项,其中包含configs/templates中的示例,其中 owlim:cache-memory 和 owlim:tuple-index-memory 在加载期间可能有用,而其他设置在加载后更有用?
最后,如果您有 100 个单独的文件而不是一个大的龟文件和/或压缩文件是否会提高加载速度,还是只会减少初始磁盘使用量,这也很重要?
就我个人而言,我目前有一个 290gb 内存和 32 个内核和 1.8T raid 0 SSD 驱动器(加载后会有备份)的设置,并尝试从 SSD 到同一个 SSD 进行 30 亿三倍的初始加载,这以每秒 16.461 条语句的全球速度需要一段时间,但我不确定是否以及如何改进这一点。