大数据三元组存储Triplestore

13

我想询问一个适用于大型数据集的好的三元存储库,它应该具备以下特点:

  • 能够良好地扩展(处理数百万个三元组)
  • 有Java接口
6个回答

10
您应该考虑使用OpenLink Virtuoso存储。它可通过开源许可证获得,并可扩展到数十亿个三元组。您可以通过Sesame和Jena API使用它。
请参见此处以了解大型三元组店的概述。Virtuoso肯定比BigData更容易设置。此外,我使用过Sesame NativeStore,但不太可扩展。 4Store也是一个很好的选择,尽管我没有使用过它。与4Store相比,Virtuoso的一个好处是您可以轻松地将标准关系模型与RDF混合使用,因为Virtuoso在内部是关系数据库。

6

4store: 可扩展的RDF存储

引用 4store 网站...

4store 的主要优点是其性能、可扩展性和稳定性。它在RDF存储和SPARQL查询方面提供的功能不多,但如果你正在寻找一个可扩展、安全、快速和高效的RDF存储,那么 4store 应该在你的候选名单上。

我个人使用过 4store 处理非常大的数据库(多达20亿三元组),效果非常好。4store 使用 C 语言编写,在 Linux/Unix 64位平台上运行,当前版本1.1.1已经部分实现了 SPARQL 1.1 标准。

4store 可以部署在一组普通服务器上,可以提高查询性能,断言吞吐量可达每秒100K三元组。但即使在单个服务器上使用,也会得到相当不错的性能。

在南安普敦大学,我们选择 4store 来处理研究项目中的大型数据集,也用于我们的 Webmaster 团队,详见 Data Stores for Southampton and ECS Open Data

这里还有一个列表,列出了所有可用于查询和管理 4store 的库 Client Libraries。此外,4store的IRC频道拥有一个活跃的用户社区,如果你遇到任何问题,他们会乐意提供帮助。

如果你是 Linux/Unix 用户,4store 绝对是一个不错的选择。


5
我也推荐4store,但出于完全公开的精神,我是首席架构师 :)
如果您想利用RDF存储的标准化,则应使用实现SPARQL的Java库,而不是使用本地公开JAVA API的库。
否则,由于在它们之间移动的努力,您可能会陷入选择第一个存储库的困境,这是典型的SQL迁移问题。

+1 绝对要选择一个通用/抽象的 API(无论你的目标平台是什么),这样在需要时迁移到不同的存储时相对轻松。 - RobV
但是使用实现SPARQL的JAVA库不会导致性能下降吗?这是一个经典的妥协还是有一些库可以利用存储引擎的优化能力? - myahya
@myahya Java库本身不需要实现SPARQL查询,只需要实现SPARQL协议,以便以标准化的方式与三元存储进行通信。许多库还将包括可在本地使用的SPARQL实现,但这里我们指的是将查询发送到三元存储的库,因此回答查询的是三元存储(而不是库)。库所做的一切就是将结果解析回您可以使用的对象中。 - RobV
@RobV谢谢。您有推荐的特定库吗? - myahya
@myahya 我建议使用Jena(http://openjena.org),因为它支持与远程基于SPARQL的服务器通信,并且具有最先进的SPARQL实现,如果您需要本地SPARQL查询。 - RobV
Java中的另一种API是Sesame(www.rdf4j.org)。与Jena类似,它提供了与SPARQL端点通信以及完整本地SPARQL支持的功能。 - Jeen Broekstra

3
我个人非常满意GraphDB。它在中等硬件上(256GB内存服务器)运行良好,可以处理150亿个三元组。它可以通过Sesame和Jena接口进行访问(尽管Jena是测试版)。如果你有经济实力,Oracle 12c实例也不错。可能适合现有的Oracle基础设施(备份等...)。Virtuoso 7.1可以很好地扩展,并且可以以合理的成本处理巨大的数据量。不幸的是,它的SPARQL标准符合度不高。

1

除了4Store、Virtuoso和Owlim之外,Bigdata也值得关注。


1

@Steve - 不知道该怎么评论,所以我想我要一次回答2个问题。

以下是SPARQL的JDBC驱动程序:

http://code.google.com/p/jdbc4sparql/

支持SPARQL协议和SPARUL(通过SPARQL协议进行更新,而不是通过SPARUL协议)。

@myahya

强烈推荐4Store,值得评估为候选方案。

Virtuoso还具有本地JDBC驱动程序,并支持大型数据集(高达120亿个三元组)。

www.openlinksw.com/wiki/main/Main/

此外,Oracle也有相关东西,但准备好付出巨额费用:

http://www.oracle.com/technetwork/database/options/semantic-tech/index.html


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接