Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Neo4j 基于时间的图形数据建模_Neo4j_Graph Databases - Fatal编程技术网

Neo4j 基于时间的图形数据建模

Neo4j 基于时间的图形数据建模,neo4j,graph-databases,Neo4j,Graph Databases,我有一个数据建模问题。我拥有的数据基本上是与其他节点相关的节点。节点具有属性。边是定向的,并且具有属性。我正在探索像Neo4j这样的图形数据库是否合适 怀疑是因为:我掌握的数据是基于时间的。它随着时间的推移而变化,我也需要跟踪历史数据。例如,我应该能够查询: 特定日期的图表是什么样的 给定节点在特定时间都依赖于谁 在特定时间,两个给定节点之间的边的属性是什么 我搜索了一下,但没有找到一个令人满意的资源,在那里我可以理解时间是如何被分解成图形数据库的。您认为使用Graph DB可以满足我的要求吗?

我有一个数据建模问题。我拥有的数据基本上是与其他节点相关的节点。节点具有属性。边是定向的,并且具有属性。我正在探索像Neo4j这样的图形数据库是否合适

怀疑是因为:我掌握的数据是基于时间的。它随着时间的推移而变化,我也需要跟踪历史数据。例如,我应该能够查询:

  • 特定日期的图表是什么样的
  • 给定节点在特定时间都依赖于谁
  • 在特定时间,两个给定节点之间的边的属性是什么
  • 我搜索了一下,但没有找到一个令人满意的资源,在那里我可以理解时间是如何被分解成图形数据库的。您认为使用Graph DB可以满足我的要求吗?有没有关于Neo4j或任何其他graph db的示例/资源/文章对此进行了描述

    我想确保数据库可扩展到大约100K个节点和数百万条边。我在优化时间而不是空间

    是否有一个例子/资源/文章对Neo4j或 还有其他的图形数据库吗

    Ian Robinson博客上关于基于时间的版本化图的一篇优秀文章

    基本上,本文描述了一种表示基于时间的版本化图的方法,添加了一些额外的节点和时间戳关系,以表示给定时间戳中的图的状态

    参考文章中的下图显示:

  • produc\u id:1
    的价格已从1.00更改为2.00。这是一种状态变化
  • 产品id:1
    现在由
    店铺id:2
    销售(而不是由
    店铺id:1
    )。这是一种结构性变化
  • 您认为使用Graph DB可以满足我的要求吗

    是的,但不是以简单或“自然”的方式。使用本机不提供此功能的数据库对基于时间的模型进行版本控制可能既困难又昂贵。从文章中:

    Neo4j也没有在其功能级别提供内在支持 带标签的属性图模型或其Cypher查询语言 版本控制。因此,要对图形进行版本化,我们需要 应用程序图数据模型和查询版本感知

    版本控制必然会创建更多的数据–包括更多的节点和 更多的关系。此外,查询往往更复杂, 更慢,因为每场比赛都必须考虑一个或多个 版本化元素。考虑到这些开销,请小心应用版本控制。 也许不是所有的图形都需要版本控制。如果是这样的话 在这种情况下,版本仅限于图形中需要它的部分

    编辑:

    伊恩·罗宾逊、吉姆·韦伯和埃米尔·艾弗雷姆的《图形数据库》一书中关于图形数据库版本控制的几句话。这本书是:

    版本控制: 版本化的图形使我们能够恢复 在特定时间点绘制图表。大多数图形数据库都没有 支持版本控制作为一流的概念。但是有可能,, 在图形模型内创建版本控制方案。这项计划 节点和关系在任何时候都会加上时间戳并存档 修改后的版本控制方案的缺点是它们存在漏洞 在针对图形编写的任何查询中,添加一层 即使是最简单的查询也很复杂


    本段链接了本答案开头的文章。

    遗憾的是,伊恩·罗宾逊文章的链接已经失效。@BenjaminR thanfully有一个网络档案: