問題タブ [titan]
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.
clojure - Titan でのバージョン ノードの作成
グラフ データベースと Titan は初めてです。Titan を Clojure アプリに埋め込んでいます。アプリが起動すると、BerkeleyDB でサポートされている Titan ストアが作成されます。
3つのことを知りたい/やりたい:
- このデータベースは新しいものですか? その場合は、バージョン 0 のバージョン ノードを作成します。移行手順を実行して、「スキーマ」を最新バージョンにします。
- そうでない場合、バージョン ノードはありますか? そうでない場合は、例外をスローします。
- データベースが既存で、バージョン ノードがある場合は、移行手順を実行して「スキーマ」を最新の状態にします。
タイタンでこれを行うにはどうすればよいですか? これに対するベストプラクティスはありますか?
編集:
OK、さらに検討すると、ハードコードされた頂点 ID を使用するのが最も理にかなっていると思います。TitanTransaction.containsVertex(long vertexid) があります。このアプローチに欠点はありますか? 頂点 ID がどのように割り当てられ、その予約範囲が何であるかがわからないので、危険な匂いがします。私はDBをグラフ化するのは初めてですが、Neo4jではルートノードから参照ノードを作成することをお勧めします。ただし、Titan はスーパーノードになるため、ルート ノードの使用をお勧めしません。IDK...
titan - Windows Server 2008 の Titan サーバー構成
io-strategy は、titan-server-rexter.xml 構成ファイルで「ワーカー」として設定されます (デフォルトのインストール) 2 番目のセッションの Gremlin クエリは、それで機能しません。
io-strategy を「リーダーフォロワー」として設定しました。それは働いているようです。この構成は本番環境に適していますか?
「worker」構成で 2 番目の gremlin クエリが機能しない (ハングする) のはなぜですか?
ストレージ層は BerkeleyDB です。クライアントは: RexProClient (C#) 問題はそれとは関係ありませんか?
graph-databases - Titan グラフ サーバーを起動して gremlin に接続するにはどうすればよいですか?
しばらくの間、Titan グラフ サーバーで遊んでいます。また、ドキュメントが充実しているにもかかわらず、ゼロから始めるチュートリアルが不足しているように感じます。
私の最終的な目標は、cassandra でタイタンを実行し、StartTheShift/thunderdomeでクエリを実行することです。
Titan を起動するいくつかの方法を見てきました。
レクスターの使用
このリンクから、次の手順でタイタンサーバーを実行できました。
- rexster-server 2.3 をダウンロード
- タイタン 0.3.0 をダウンロード
- からにすべてのファイルをコピー
titan-all-0.3.0/libs
するrexster-server-2.3.0/ext/titan
編集
/li>rexster-server-2.3.0/rexster.xml
および追加 (a の間):
berkeleydb または:
カサンドラ db の場合。
- でサーバーを起動します
./bin/rexster.sh -s -c rexster.xml
- rexster コンソールをダウンロードして実行します
bin/rexster-console.sh
- でグラフに接続できるようになりました
g = rexster.getGraph("geograph")
この方法の問題点は、gremlin ではなく rexster 経由で接続しているため、オートコンプリートがないことです。利点は、データベースに名前を付けることができることです (ここでは geograph)。
cassandra で Titan サーバーを使用する
- でサーバーを起動します
./bin/titan.sh config/titan-server-rexster.xml config/titan-server-cassandra.properties
と呼ばれるファイルを作成し
/li>cassandra.local
ますタイタングレムリンを起動して接続する
g = TitanFactory.open("cassandra-es.local")
これはうまくいきます。
Titan サーバーを BerkeleyDB で使用する
このリンクから:
- タイタン 0.3.0 をダウンロード
- でサーバーを起動します
./bin/titan.sh config/titan-server-rexster.xml config/titan-server-berkeleydb.properties
- タイタン グレムリンを起動します。
./bin/gremlin.sh
しかし、gremlin でデータベース (グラフ) に接続しようとすると、
g = TitanFactory.open('graph')
私がいるディレクトリにグラフという新しいデータベースが作成されます。私のディレクトリ (塗りつぶされた) がある場所でこれを実行すると、次のようになります:実装をインスタンス化できませんでした: com.thinkaurelius.titan.diskstorage.berkeleyje.BerkeleyJEStoreManager
誰かがこれらのプロセスを明確にして、私が間違っていることを教えてください。ありがとう
gremlin - 1 回のクエリで頂点を検索してエッジを作成するにはどうすればよいですか?
特定の頂点から頂点を検索するために gremlin クエリを使用しています。
このクエリは一連の頂点を返しています。今、単純な反復子によって、「v」から返されたすべての頂点へのエッジを作成しています。
私の質問は次のとおり です。
これらの頂点を検索して同じクエリでエッジを作成できるプロセス/クエリ スタイルはありますか?
私はすでにこのクエリを試しました:
しかし、私はエラーが発生しています:
メソッドの署名なし: groovy.lang.MissingMethodException.addEdge()
現在、Gremlin-Groovy ScriptEngine を使用して Java クラスからクエリを実行しています。
前もって感謝します。
graph - さまざまなエッジ方向を通るグレムリン ループ トラバーサル
グラフがあります(下の写真を参照)。私は A からグレムリンを使用し、エッジ「impacts」と「similarTo」に続いてすべてのツリーをループする必要があります。
だから私は次のようなものが必要です:
このクエリの問題は、関係 "similarTo" が、アプリケーションがその時点でどのようにデータを格納しているかに応じて、エッジの外に出たり、エッジの中にあったりすることです (グラフを参照)。一方、「影響」関係にはアウトエッジしか必要ないため、単純に「両方」(gv(A.id).both('impacts', 'similarTo')...) を使用してエッジを取得することはできません。一部の頂点 (たとえば C) で「similarTo」エッジが欠落している可能性もあります。この場合、ループは「影響」関係のみに従う必要があります。
最後に、このようなことを試しましたが、間違って使用していると思われ、結果は適切ではありません:
また、トラバース中に方向によってエッジをフィルタリングしようとしましたが、おそらくサポートされていないため、これも機能しません。
助言がありますか?