ある時間間隔で neo4j db に対して行われた更新/変更/変更を見つけることは可能ですか?
NEO4J DB は、その期間に発生した変更を見つけるために定期的にポーリングされます。
そして、これらの変更を他の DB と同期する必要があります。これが実際のタスクです。
ここでの変更には、ノード、関係、プロパティの追加、更新、削除が含まれます。
特定の時間枠で行われた変更をどのように追跡しますか。すべてのノードと関係にタイムスタンプが設定されているわけではありません。
ある時間間隔で neo4j db に対して行われた更新/変更/変更を見つけることは可能ですか?
NEO4J DB は、その期間に発生した変更を見つけるために定期的にポーリングされます。
そして、これらの変更を他の DB と同期する必要があります。これが実際のタスクです。
ここでの変更には、ノード、関係、プロパティの追加、更新、削除が含まれます。
特定の時間枠で行われた変更をどのように追跡しますか。すべてのノードと関係にタイムスタンプが設定されているわけではありません。
作成時に timestamp() を挿入するタイムスタンプ フィールドを各ノードとリレーションシップに追加します。次に、暗号クエリを作成して、指定された時間範囲内のすべてのノードと関係を戻します。
編集
この同期を実装するには 2 つの方法があります。
オプション1
Spring Data Neo4j を使用できる場合は、こちらで説明されているようにライフサイクル イベントを使用して CUD 操作をインターセプトし、必要な同期を同期または非同期で行うことができます。
オプション 2
Spring を使用できない場合は、インターセプト コードを自分で実装する必要があります。私が考える最善の方法は、すべての CUD 操作をトピックに公開し、各ストアにそれぞれ同期できるサブスクライバーを書き込むことです。あなたの場合、Neo4jSubscriber、DbOneSubscriber、Db2Subscriber などがあります。
年月日ノードを使用して変更を追跡するタイム ツリーと呼ばれるものがあり、これを使用して履歴を取得することもできます。また、日/月または年ノードに関連付けるときは、関連するオブジェクト ノードで変更属性/プロパティを設定する必要があります。
これが誰かに役立つことを願っています