2

我想测试一下 Virtuoso 处理分布式查询的能力。

例如,我有一个很大的 RDF 图(超过 100GB),我想使用集群来查询这个图。

Virtuoso 可以在小图上拆分图形以在集群上使用它们,还是应该拆分图形并手动聚合查询结果?换句话说,是否可以使用 Virtuoso 进行分布式查询?如果可能的话,我在哪里可以找到这方面的指南?

预先感谢。

4

1 回答 1

1

几天前有人在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 的性能通常不是很好你失去了“真正的”集群服务器解决方案的局部性和内部优化......

于 2013-11-11T13:57:31.477 回答