【问题标题】:Distributed querying in VirtuosoVirtuoso 中的分布式查询
【发布时间】:2013-11-07 13:37:22
【问题描述】:

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

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

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

提前致谢。

【问题讨论】:

  • 这是一个有趣的问题,但最好在answers.semanticweb.com 上提出。而“有可能吗?”问题可能有一个明确的是或否答案,“如果可能,我在哪里可以找到这方面的指南?”与 Stack Overflow 无关,因为“要求我们推荐或查找工具、库或喜爱的站外资源 的问题对于 Stack Overflow 来说是无关紧要的,因为它们往往会吸引固执己见的答案和垃圾邮件。相反,请描述问题以及迄今为止为解决该问题所做的工作。”

标签: rdf distributed-computing semantic-web virtuoso


【解决方案1】:

几天前有人在OpenLink Support forums上问了一个不祥的类似问题,你是同一个人吗?

想要拆分这个大型 RDF 图(超过 100GB)的原因是什么,这相当于多少三元组?

有一个Virtuoso Clustered Edition 以商业形式提供,仅允许分布在多个物理实例和/或机器上的多个 Virtuoso 实例来汇集资源以处理大量数据 RDF 或其他即 SQL 等。这样你就不需要必须在物理上拆分图表,您只需将数据加载到集群实例中,它将自动为您分区,您可以像单个 Virtuos 实例一样查询,具有良好的局部性,这是性能的关键。

Virtuoso 还支持标准SPARQL-FED 语法用于分布式查询执行,如 W3C 网站上详述,使用“服务”子句执行远程执行并通过本地 Virtuoso 实例返回结果。因此,从本地 Virtuoso 实例对 DBpedia SPARQL 端点执行远程查询的示例查询查询将是:

选择 * 在哪里 { 服务http://dbpedia.org/sparql {
选择 * 在哪里
{
?s?p?o。 过滤器 (?s = http://dbpedia.org/resource/Nevis ) } 限制 100
}
}

因此,可以将数据拆分到多个单个服务器实例(开源或商业或其他支持 sparql-fed 的)并进行查询,但您必须自己手动拆分图表,而 SPARQL-FED 的性能通常不会非常好,因为您可以放松局部性和“真正的”集群服务器解决方案的内部优化...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-05
    • 1970-01-01
    • 2020-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多