我想测试一下 Virtuoso 处理分布式查询的能力。
例如,我有一个很大的 RDF 图(超过 100GB),我想使用集群来查询这个图。
Virtuoso 可以在小图上拆分图形以在集群上使用它们,还是应该拆分图形并手动聚合查询结果?换句话说,是否可以使用 Virtuoso 进行分布式查询?如果可能的话,我在哪里可以找到这方面的指南?
预先感谢。
我想测试一下 Virtuoso 处理分布式查询的能力。
例如,我有一个很大的 RDF 图(超过 100GB),我想使用集群来查询这个图。
Virtuoso 可以在小图上拆分图形以在集群上使用它们,还是应该拆分图形并手动聚合查询结果?换句话说,是否可以使用 Virtuoso 进行分布式查询?如果可能的话,我在哪里可以找到这方面的指南?
预先感谢。
几天前有人在OpenLink 支持论坛上问了一个不祥的类似问题,你是同一个人吗?
想要拆分这个大型 RDF 图(超过 100GB)的原因是什么,这相当于多少三元组?
有一个Virtuoso Clustered Edition以商业形式提供,仅允许分布在多个物理实例和/或机器上的多个 Virtuoso 实例来汇集资源以处理大量数据 RDF 或其他即 SQL 等。这样你就不必物理您只需将数据加载到集群实例中,它就会自动为您分区,并且您可以像单个 Virtuos 实例一样查询,具有良好的局部性,这是性能的关键。
Virtuoso 还支持用于分布式查询执行的标准SPARQL-FED语法,详见 W3C 网站,使用“服务”子句执行远程执行并通过本地 Virtuoso 实例返回结果。因此,从本地 Virtuoso 实例对 DBpedia SPARQL 端点执行远程查询的示例查询查询将是:
选择 * WHERE { 服务http://dbpedia.org/sparql {
选择 * WHERE
{
?s ?p ?o 。过滤器 (?s = http://dbpedia.org/resource/Nevis ) } 限制 100
}
}
因此,可以将数据拆分到多个单个服务器实例(开源或商业或其他支持 sparql-fed 的)并进行查询,但是您必须自己手动拆分图形,并且 SPARQL-FED 的性能通常不是很好你失去了“真正的”集群服务器解决方案的局部性和内部优化......