特定のイベントが発生したことを示すデータが届いています。
例:
- ボックス #1 は 2015 年 2 月 15 日 10:00 の場所 A にあります。
- 2015-02-15 10:15 に Box #1 が Box #2 の中に入れられました。
- 2015-02-15 11:00 に Box #2 が Box #3 に入れられました。
- ボックス #3 は 2015 年 2 月 16 日 03:00 の場所 B にあります。
- 2015-02-16 04:30 に Box #2 が Box #3 から削除されました。
- ボックス #3 は 2015 年 2 月 16 日 05:00 の場所 C にあります。
主な要件は次の 3 つです。
- 今クエリを実行した時点で、すべてのボックスがどこにあるかがわかります。例: 2015-02-16 06:00 にクエリを実行すると、結果は次のようになります。ボックス #1 は、場所 B のボックス #2 の中にあります。ボックス #3 は場所 C にあり、その中には何もありません。
特定のボックスに起こったことをすべて見ることができるはずです。例: ボックス #1 の場合:
- 2015-02-15 10:00 に場所 A にいた
- 2015-02-15 10:15 に Box #2 に入れられました
- 2015-02-15 11:00 に Box #3 に入れられた Box #2 の中にありました
- 2015-02-16 03:00 に場所 B にあったボックス #3 にあったボックス #2 の中にいました。
- 2015-02-16 04:30 に Box #3 から削除された Box #2 の中にありました。
特定の時間にすべてのボックスがどこにあるかを知ることができるはずです。例: 2015 年 2 月 16 日 10:30 に、ボックス #1 は場所 A のボックス #2 の中にありました。
グラフ データベースは、リレーショナル データベースよりもこのタイプの関係をうまく処理しているように見えるため、調べてきました (Sql で再帰クエリを実行するのは簡単ではありません)。「Inside」と「At」の関係のために、Box ノード、Location ノード、およびそれらの間のエッジが必要なようです。しかし、一時的な要件をグラフ モデルに組み込む方法がわかりません。私はこれを見てきましたが、私の要件でそれを機能させる方法がわかりません。
また、注意してください: これは 10 億から 40 億のボックスにスケールアップする必要があり、各ボックスには 1 から 5000 のイベントが含まれます。そして、2番目に来る何千ものイベントを処理できる