是否有可能找出在一段时间内对neo4j db进行的更新/修改/更改?
将定期轮询NEO4J数据库,以查找在该时间段内发生的变化。
然后这些更改必须与其他DB同步。这是真正的任务。
此处的更改包括添加,更新,删除节点,关系,属性。
我们如何跟踪在特定时间范围内完成的更改。并非所有节点和关系都设置了时间戳。
答案 0 :(得分:1)
为每个节点添加时间戳字段,并在创建时插入时间戳()。然后编写一个密码查询,以恢复给定时间范围内的所有节点和关系。
修改强>
有两种方法可以实现此同步。
选项1
如果您可以使用Spring Data Neo4j,那么您可以使用生命周期事件explained here拦截CUD操作,并同步或异步执行必要的同步。
选项2
如果你不能使用Spring,那么你需要自己实现拦截代码。我能想到的最好方法是将所有CUD操作发布到主题,然后编写订阅者,每个订阅者可以同步到每个商店。在你的情况下你有Neo4jSubscriber,DbOneSubscriber,Db2Subscriber等。
答案 1 :(得分:0)
有一种称为时间树的东西,您可以使用年月和日节点来跟踪更改,您也可以使用它来获取历史记录。 您还需要确保在将相关对象节点与日/月或年节点相关联时在相关对象节点上设置更改属性/属性
我希望这有助于某人