-1

ある時間間隔で neo4j db に対して行われた更新/変更/変更を見つけることは可能ですか?

NEO4J DB は、その期間に発生した変更を見つけるために定期的にポーリングされます。

そして、これらの変更を他の DB と同期する必要があります。これが実際のタスクです。

ここでの変更には、ノード、関係、プロパティの追加、更新、削除が含まれます。

特定の時間枠で行われた変更をどのように追跡しますか。すべてのノードと関係にタイムスタンプが設定されているわけではありません。

4

2 に答える 2

1

作成時に timestamp() を挿入するタイムスタンプ フィールドを各ノードとリレーションシップに追加します。次に、暗号クエリを作成して、指定された時間範囲内のすべてのノードと関係を戻します。

編集

この同期を実装するには 2 つの方法があります。

オプション1

Spring Data Neo4j を使用できる場合は、こちらで説明されているようにライフサイクル イベントを使用して CUD 操作をインターセプトし、必要な同期を同期または非同期で行うことができます。

オプション 2

Spring を使用できない場合は、インターセプト コードを自分で実装する必要があります。私が考える最善の方法は、すべての CUD 操作をトピックに公開し、各ストアにそれぞれ同期できるサブスクライバーを書き込むことです。あなたの場合、Neo4jSubscriber、DbOneSubscriber、Db2Subscriber などがあります。

于 2013-09-17T15:33:45.333 に答える
0

年月日ノードを使用して変更を追跡するタイム ツリーと呼ばれるものがあり、これを使用して履歴を取得することもできます。また、日/月または年ノードに関連付けるときは、関連するオブジェクト ノードで変更属性/プロパティを設定する必要があります。

これが誰かに役立つことを願っています

于 2016-09-06T01:05:52.430 に答える