RDF和三重存储对Neo4j有什么优势?

pb3skfrl  于 2022-11-05  发布在  其他
关注(0)|答案(5)|浏览(274)

Neo4j是一个真正快速和可扩展的图形数据库,它似乎可以用于商业项目,它是免费的,太!
与此同时,没有一种RDF三重存储能够很好地处理大数据量和提供高速访问,而且免费RDF三重存储的性能更差。
那么,RDF和RDF三元存储对Neo4j有什么优势呢?

mjqavswn

mjqavswn1#

对RDF使用三重存储而不是Neo4j的优势在于,这正是它们 * 设计 * 的目的。Neo4j对于许多用例来说相当不错,但根据我的经验,它在加载和查询RDF方面的性能远远低于所有专用RDF数据库。
RDF数据库不能扩展或速度不快是一个谬论。当然,它们还没有达到关系数据库所具有的性能和扩展水平,但它们有50年的领先优势。许多三元存储可以扩展到数十亿个三元存储,提供“标准”企业特性,并为许多用例提供出色的性能。
如果您打算在项目中使用RDF,请使用三元组存储;它将为使用RDF构建应用程序提供最佳性能和一组特性/API。

mi7gmzs6

mi7gmzs62#

RDF和SPARQL是标准,因此您可以选择多种实现,并且可以将数据从一个RDF存储迁移到另一个RDF存储。
此外,SPARQL查询语言的1.1版本非常复杂(比大多数SQL实现更具表达力),可以执行需要用Neo4J编写大量代码的所有类型的查询。

fwzugrvs

fwzugrvs3#

如果你要对三元组进行图挖掘(例如图遍历),neo4j是一个不错的选择。对于大的三元组,你可能需要使用它的batchInserter,这是相当快的。

tyu7yeag

tyu7yeag4#

所以我认为这都是关于你的使用案例。两种技术可以重叠,也确实重叠。
在我看来,这主要是关于用例的。你想要一个完整的知识图,包括语义网的所有生态系统吗?那么就去三重存储。如果你需要一个通用的图(例如,将大数据存储为图)使用属性图模型。我的推理是,这从数据的存储方式开始,这对您的使用场景有影响。
让我们在这里做一些突发的要点来比较。请对它持保留态度,因为这不是一份基准论文,只是一些基于经验的5分钟记录。
属性图形(neo4j):

  • 将节点/边视为文档
  • 在链接列表、键值存储(深度搜索、大数据,例如通过gremlin)等基础上实现
  • 支持OWL/RDF,但不是原生的(因为我在 meta层上看到它)
  • 真的很棒,当谈到有数据在图中和做ML(它存储为链表,给你很好的矢量,这是很酷的ML开箱即用)
  • 适用于大规模的大数据。
  • 用例:(重点是数据实体,而不是它们的类)
  • 社交图和其他需要深度遍历的场景
  • 大型数据图,其中有大量文档需要以无模式图的方式进行搜索。
  • 从点击数据等分析客户漏斗。您希望从关系模式中移出,因为实际上,您处于一个图形用例中...

三重存储(例如rdf 4j)

  • 将最大范式中的数据视为三元组(完全没有冗余数据)
  • 三元组存储在上下文三元组中。与索引一起工作很多。
  • 广泛的搜索和具体的知识提取。深度搜索有时很麻烦。
  • 规模是令人印象深刻的,可以扩展到数万亿节点与快速性能。但我不建议在图中存储大数据,如时间序列等。原因是如何使用索引的特殊方式,为了水平扩展,您可以考虑使用子图...
  • 支持所有生态系统,如SPARQL、SHACL、SWIRL等。这是一个很大的优势,
  • 使用案例:
  • 它实际上是关于知识图的。你需要形状测试、规则评估、推理和推理吗?去吧,因为你必须把注意力集中在本体和类结构上!
  • 此外,例如,您拥有物联网,并希望配置物流和智能工厂的关系,而遥测数据存储在其他地方,仅在图形中引用。
twh00eeo

twh00eeo5#

我听说要花一整天的时间才能把10M的三元组加载到Neo4j中(实际上它是最慢的一个,因为它主要不是为RDF构建的)。
Sesame和4Store是最快的,但Jena有强大的API。

相关问题