問題タブ [temporal-database]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1048 参照

neo4j - イベントベースのデータ用のテンポラル グラフ データベース

特定のイベントが発生したことを示すデータが届いています。

例:

  • ボックス #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 つです。

  1. 今クエリを実行した時点で、すべてのボックスがどこにあるかがわかります。例: 2015-02-16 06:00 にクエリを実行すると、結果は次のようになります。ボックス #1 は、場所 B のボックス #2 の中にあります。ボックス #3 は場所 C にあり、その中には何もありません。
  2. 特定のボックスに起こったことをすべて見ることができるはずです。例: ボックス #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 の中にありました。
  3. 特定の時間にすべてのボックスがどこにあるかを知ることができるはずです。例: 2015 年 2 月 16 日 10:30 に、ボックス #1 は場所 A のボックス #2 の中にありました。

グラフ データベースは、リレーショナル データベースよりもこのタイプの関係をうまく処理しているように見えるため、調べてきました (Sql で再帰クエリを実行するのは簡単ではありません)。「Inside」と「At」の関係のために、Box ノード、Location ノード、およびそれらの間のエッジが必要なようです。しかし、一時的な要件をグラフ モデルに組み込む方法がわかりません。私はこれを見てきましたが私の要件でそれを機能させる方法がわかりません。

また、注意してください: これは 10 億から 40 億のボックスにスケールアップする必要があり、各ボックスには 1 から 5000 のイベントが含まれます。そして、2番目に来る何千ものイベントを処理できる

0 投票する
1 に答える
134 参照

r - R の空間的近傍および時間的基準に基づいてグループに行を割り当てる

どうしても解決できない問題があります。arcgis のラスターから派生したデータセットがあります。データセットは、10 年間のすべての火災発生を表します。一部のラスター セルでは、その期間内に複数の火災が発生し (したがって、データセットに複数の行が含まれます)、一部のラスター セルは火災が発生していません (したがって、データセットには表示されません)。したがって、データセットの各行には、列番号 (連続する整数) と、ラスターの行 ID および列 ID に対応する行番号が割り当てられています。火事の日付もあります。

fire_ID相互に 4 日以内で、相互に隣接するピクセル内 (8 セル近傍内) にあるすべての火災に一意の ID ( ) を割り当て、これを新しい列に入れたいと思います。

明確にするために、行 3、列 3、2000 年 1 月 1 日の観測と、行 2、列 4、2000 年 1 月 4 日の観測がある場合、それらの観測には同じ が割り当てられfire_IDます。

以下は、ラスターの行 ID である「行」、ラスターの列 ID である「列」、および火災が検出された日付である「日付」を含むサンプル データセットです。

「行」、「列」、「日付」の順にデータを並べ替えてループし、行と列の ID が 1 つの値の範囲内にあり、日付が 4 日以内の場合に新しい fire_ID を作成しようとしましたが、これは同じ fire_ID を割り当てる必要がある火災にはfire_ID、異なる に属するリスト内のそれらの間に観測がある場合、異なる が割り当てられるため、明らかに機能しませんfire_ID

何か提案があれば教えてください。

0 投票する
1 に答える
56 参照

r - 3 つの異なる領域の時系列データをプロットするにはどうすればよいですか?

時系列データをプロットしたいのですが、何らかの理由で明確にプロットできません。私はこの機能を使用します:

しかし、この関数は領域を分離しません。

私の例は次のとおりです。

0 投票する
2 に答える
8750 参照

mysql - MySQL でテンポラル データを実装する方法

現在、非テンポラル MySQL DB を使用しており、テンポラル MySQL DB に変更する必要があります。つまり、レポート目的で、レコードに加えられた変更の履歴を長期にわたって保持できる必要があります。

これを実装するための最初の考えは、更新ではなくテーブルへの挿入を単純に行うことでした。データを選択する必要がある場合は、GROUP BYいくつかの列で a を実行し、タイムスタンプで並べ替えるだけDESCです。

ただし、少し考えた後、各挿入の主キー (実際には単一のレコードで多数の更新をシミュレートするだけです) が異なり、リンクが台無しになるため、それは本当に混乱することに気付きました。主キーを使用して、DB 内の他のレコードにリンクします。

そのため、次に考えたのは、DB 内のメイン テーブルの更新を続行することですが、更新後の完全なレコードの単なるコピーである「監査テーブル」への新しい挿入も作成し、レポートが必要になったときにそれを作成することでした。一時的なデータでは、クエリの目的で監査テーブルを使用できます。

誰かがこれを適切に行う方法についてのガイダンスやリンクを教えてもらえますか?
ありがとうございました。

0 投票する
1 に答える
427 参照

sql - これらの postgresql テンポラル データベース スキーマとクエリで行が重複するのはなぜですか?

postgresql でのテンポラル データベースの設定に関する情報をフォローしています。最初に質問、次に技術的なビット。

質問: テーブルにクリーンな挿入を 1 回実行すると、public.countriesテーブルに行が 2 重になるのはなぜtemporal.countriesですか? countries_ins(ルール内に) 1 つの挿入のみが表示されます。これは機能ですか、それともバグですか?

さて、スキーマは次のとおりです。

そして、それを空のデータベースにロードして単一の挿入を行うと、次のことが起こります((私にとって)驚くべき結果については、39〜40行目を確認してください)。