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