Neo4j是一个真正快速和可扩展的图形数据库,它似乎可以用于商业项目,它是免费的,太!与此同时,没有一种RDF三重存储能够很好地处理大数据量和提供高速访问,而且免费RDF三重存储的性能更差。那么,RDF和RDF三元存储对Neo4j有什么优势呢?
mjqavswn1#
对RDF使用三重存储而不是Neo4j的优势在于,这正是它们 * 设计 * 的目的。Neo4j对于许多用例来说相当不错,但根据我的经验,它在加载和查询RDF方面的性能远远低于所有专用RDF数据库。RDF数据库不能扩展或速度不快是一个谬论。当然,它们还没有达到关系数据库所具有的性能和扩展水平,但它们有50年的领先优势。许多三元存储可以扩展到数十亿个三元存储,提供“标准”企业特性,并为许多用例提供出色的性能。如果您打算在项目中使用RDF,请使用三元组存储;它将为使用RDF构建应用程序提供最佳性能和一组特性/API。
mi7gmzs62#
RDF和SPARQL是标准,因此您可以选择多种实现,并且可以将数据从一个RDF存储迁移到另一个RDF存储。此外,SPARQL查询语言的1.1版本非常复杂(比大多数SQL实现更具表达力),可以执行需要用Neo4J编写大量代码的所有类型的查询。
fwzugrvs3#
如果你要对三元组进行图挖掘(例如图遍历),neo4j是一个不错的选择。对于大的三元组,你可能需要使用它的batchInserter,这是相当快的。
tyu7yeag4#
所以我认为这都是关于你的使用案例。两种技术可以重叠,也确实重叠。在我看来,这主要是关于用例的。你想要一个完整的知识图,包括语义网的所有生态系统吗?那么就去三重存储。如果你需要一个通用的图(例如,将大数据存储为图)使用属性图模型。我的推理是,这从数据的存储方式开始,这对您的使用场景有影响。让我们在这里做一些突发的要点来比较。请对它持保留态度,因为这不是一份基准论文,只是一些基于经验的5分钟记录。属性图形(neo4j):
三重存储(例如rdf 4j)
twh00eeo5#
我听说要花一整天的时间才能把10M的三元组加载到Neo4j中(实际上它是最慢的一个,因为它主要不是为RDF构建的)。Sesame和4Store是最快的,但Jena有强大的API。
5条答案
按热度按时间mjqavswn1#
对RDF使用三重存储而不是Neo4j的优势在于,这正是它们 * 设计 * 的目的。Neo4j对于许多用例来说相当不错,但根据我的经验,它在加载和查询RDF方面的性能远远低于所有专用RDF数据库。
RDF数据库不能扩展或速度不快是一个谬论。当然,它们还没有达到关系数据库所具有的性能和扩展水平,但它们有50年的领先优势。许多三元存储可以扩展到数十亿个三元存储,提供“标准”企业特性,并为许多用例提供出色的性能。
如果您打算在项目中使用RDF,请使用三元组存储;它将为使用RDF构建应用程序提供最佳性能和一组特性/API。
mi7gmzs62#
RDF和SPARQL是标准,因此您可以选择多种实现,并且可以将数据从一个RDF存储迁移到另一个RDF存储。
此外,SPARQL查询语言的1.1版本非常复杂(比大多数SQL实现更具表达力),可以执行需要用Neo4J编写大量代码的所有类型的查询。
fwzugrvs3#
如果你要对三元组进行图挖掘(例如图遍历),neo4j是一个不错的选择。对于大的三元组,你可能需要使用它的batchInserter,这是相当快的。
tyu7yeag4#
所以我认为这都是关于你的使用案例。两种技术可以重叠,也确实重叠。
在我看来,这主要是关于用例的。你想要一个完整的知识图,包括语义网的所有生态系统吗?那么就去三重存储。如果你需要一个通用的图(例如,将大数据存储为图)使用属性图模型。我的推理是,这从数据的存储方式开始,这对您的使用场景有影响。
让我们在这里做一些突发的要点来比较。请对它持保留态度,因为这不是一份基准论文,只是一些基于经验的5分钟记录。
属性图形(neo4j):
三重存储(例如rdf 4j)
twh00eeo5#
我听说要花一整天的时间才能把10M的三元组加载到Neo4j中(实际上它是最慢的一个,因为它主要不是为RDF构建的)。
Sesame和4Store是最快的,但Jena有强大的API。