1

グラフ データベースと Titan は初めてです。Titan を Clojure アプリに埋め込んでいます。アプリが起動すると、BerkeleyDB でサポートされている Titan ストアが作成されます。

3つのことを知りたい/やりたい:

  1. このデータベースは新しいものですか? その場合は、バージョン 0 のバージョン ノードを作成します。移行手順を実行して、「スキーマ」を最新バージョンにします。
  2. そうでない場合、バージョン ノードはありますか? そうでない場合は、例外をスローします。
  3. データベースが既存で、バージョン ノードがある場合は、移行手順を実行して「スキーマ」を最新の状態にします。

タイタンでこれを行うにはどうすればよいですか? これに対するベストプラクティスはありますか?

編集:

OK、さらに検討すると、ハードコードされた頂点 ID を使用するのが最も理にかなっていると思います。TitanTransaction.containsVertex(long vertexid) があります。このアプローチに欠点はありますか? 頂点 ID がどのように割り当てられ、その予約範囲が何であるかがわからないので、危険な匂いがします。私はDBをグラフ化するのは初めてですが、Neo4jではルートノードから参照ノードを作成することをお勧めします。ただし、Titan はスーパーノードになるため、ルート ノードの使用をお勧めしません。IDK...

4

1 に答える 1