問題タブ [tinkerpop3]
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.
amazon-dynamodb - Titan - 混合インデックスを使用した has() の奇妙な動作
永続化のために ES バックエンドと DynamoDB を備えた Titan グラフがあります。
メソッドhas("mykey", "value")
が頂点を取得することはありません。mykey
Elasticsearch によってインデックス付けされた を照会する場合、常に何も返しません。インデックスが更新され、有効になります。
このクエリを実行すると、
私はそれを機能させるためのトリックを試しました
これはどこかの問題のようですが、正確にはわかりません。これについて何か考えはありますか?
graph - Gremlin サーバーで Vertex の値を更新する方法 (Titan 1.0)
私は次の詳細を持つ頂点を持っています:
頂点の名前を更新したい:
次のクエリを試しました:
gV(4192).setProperty('名前','ウィリアム')
しかし、それは更新されていません。エラーが発生しています
graph - Gremlin Server (Titan 1.0) で内部サブクエリを形成する方法は?
私は次のクエリを使用しています:
次の結果が得られます:
応答で Vertex "NotificationInitiatedByVertexId" (Edge Property ) の情報も取得したい。そのために、次のクエリを試しました:
注:クエリ自体でエッジプロパティから動的に値を取得する方法がわからなかったため、サブクエリで頂点IDを直接試しました。
エラーを出しています。私はたくさん試しましたが、解決策を見つけることができません。
elasticsearch - Titan 1.0 の混合インデックスが警告で機能しない - クエリではすべての頂点を反復処理する必要がある
私はバックエンドとしてelasticsearchでTitan 1.0を使用しています。titan のドキュメントから、elasticsearch を使用するために、インデックスの構築中に mixedIndex を使用することを学びました。私のユースケースと問題は次のとおりです。本屋の登録データ、登録時間のデータ、および名前や年齢などのその他の個人情報用のグラフデータベースを作成しています。特定の時間範囲に登録されたすべてのユーザーを照会したい、つまり、クエリの数値比較関数が必要です。これは私がインデックスを作成する方法です:
ただし、timeIndex は正常に作成されますが、登録された時刻を次のようにクエリしたい場合は、次のようになります。
それは私に与えます:
gremlinコマンドでチェックして、データがすぐそこにあることを確認しましたが、空の結果が得られます。私は何か間違ったことをしていますか?どうすればこの問題を解決できますか?
orientdb - (Tinkerpop) DAO オブジェクトからモデル オブジェクトへの FramedGraph マッピング
OrientDb 2.2 と TinkerPop FramedGraph を使用しています。オブジェクトモデルとのやり取りを簡単にするために、FramedGraph を使用しています。setProperty("name", "bob")
FramedGraph について理解できないことの 1 つは、実装できないインターフェイス DAO オブジェクトがあるのはなぜですか? 上記の制約により、オブジェクトの重複があります: tinkerpop DAO インターフェイスとモデル オブジェクトです。
interface UserNode {
private String firstName;
private String lastName;
}
class User {
private String firstName;
private String lastName;
}
これは、大量のデータを読み書きするときに大きなオーバーヘッドを引き起こします。
List<User> fetchAllUsers() {
Iterable<UserNode> userNodes = graph.query().vertices(UserNode.class);
List<User> users = new ArrayList<>();
for (UserNode userNode: userNodes) {
User user = new User();
user.setFirstName(userNode.getFirstName());
user.setLastName(userNode.getLastName());
users.add(user);
}
}
上記の非効率を回避する方法はありますか?
gremlin - 単一のgremlinクエリに複数のエッジを追加する方法は?
私のシナリオは、1 つのクエリで頂点間に複数のエッジを追加することです。
以下のノードを想定してください: これらは私が持っているラベルと ID です
ユーザー:
4100
曲:
4200
4355
4676
これらの頂点間にエッジを確立する必要があります
通常、ノード間に単一のエッジを作成することで実行できます。一度に 50 を超える頂点間にエッジを作成する場合、効率的な方法ではありません。ティンカーポップを使用しています3.0.1
。
gremlin - Tinkerpop 3でカスタムステップを定義するには?
Tinkerpop 2 は、Gremlin.defineStep(..) によるユーザー定義のステップをサポートするために使用されていました
Tinkerpop 3 を使用して同じことを達成するにはどうすればよいですか?
カスタムステップを作成し、トラバーサルステップのセットを組み合わせるGremlin APIはありますか?
どんな提案でも大歓迎です。
ありがとうカニスカ
apache-spark - SparkGraphComputer を使用してタイタン グラフの頂点をカウントすると、org.apache.spark.SparkException: Job aborted due to stage failure:
SparkGraphComputer を使用してクラスター上のタイタン グラフの頂点数をカウントしようとすると、対処方法がわからないというエラーが表示されます。コードでtinkerpop 3.1.1-incubatingとTitan 1.1.0-SNAPSHOTを使用しており、クラスターにdatastax community edition 2.1.11とspark 1.5.2-bin-hadoop2.6をインストールしました
私の問題を再現するために、最小限の Java の例をまとめました。
OLTP を使用したカウントと、FulgoraGraphComputer で OLAP を使用したカウントは、正しい答えを返します。ただし、SparkGraphComputer を使用した OLAP カウントは、org.apache.spark.SparkException: Job aborted due to stage failure: をスローします。
興味深いことに、Titan に同梱されている gremlin コンソールで同様のスクリプトを実行すると、同じアルゴリズムのように見える別のエラーが発生します。
これは 2 回スローorg.apache.thrift.protocol.TProtocolException: Required field 'keyspace' was not present! Struct: set_keyspace_args(keyspace:null)
しますが、完了して正しくない 0 を返します。
この記事がメーリング リストにあることは知っていますが、内容を理解できないか、問題を解決できません。何が起こっているのか、これを修正する方法を誰かに説明してもらえますか? 以下に設定を貼り付けました。
と
編集:このスクリプトはエラーを再現します
amazon-web-services - AWS Lambda + Tinkerpop/Gremlin + EC2 上の TitanDB + クラウド内の AWS DynamoDB
次のフローを実行しようとしています。
ユーザーが AWS Gateway (REST) にアクセスし、
AWS Lambda をトリガーし、
Tinkerpop/Gremlin を使用して接続する
を使用する EC2 上の TitanDB
バックエンドとしてのクラウド (EC2 ではなく) の AWS DynamoDB。
現在、クラウドの DynamoDB にデータを保存する、完全に機能する TitanDB インスタンスを EC2 上に作成することができました。また、Tinkerpop/Gremlin を介して AWS Lambda から EC2 に接続できますが、この方法でのみ接続できます。
これは機能しますが、単純な Gremlin 言語の代わりに「Criteria API」(GremlinPipeline) を使用することを強く好みます。つまり、ORM か何かが必要です。Tinkerpopにはそれが含まれていることを私は知っています。私が必要としているのは、Graph クラスのオブジェクトであることに気付きました。これは私が試したことです:
ただし、「実装クラスが見つかりませんでした: com.amazon.titan.diskstorage.dynamodb.DynamoDBStoreManager」がスローされます。もちろん、IntelliJ IDEA も見つからないため、コンピューターは正しいです。
私の依存関係:
私の目標は何ですか:完全に動作するGraphオブジェクトを持っています
私の問題は何ですか: DynamoDBStoreManager クラスがなく、追加する必要がある依存関係がわかりません。
私の追加の質問は、Cluster クラスを介した接続には IP のみが必要で動作するのに、TitanFactory には EC2 の gremlin-server で使用したようなプロパティが必要なのはなぜですか? 2 番目のサーバーを作成したくありません。クライアントとしてサーバーに接続し、Graph オブジェクトを取得したいだけです。
編集:リゾルバーを追加した後、ビルドされ、出力で複数取得されます:
13689 [TitanID(0)(4)[0]] 警告 com.thinkaurelius.titan.diskstorage.idmanagement.ConsistentKeyIDAuthority - ID ブロックの取得中に一時ストレージ例外 - PT2.4S で再試行: com.thinkaurelius.titan.diskstorage.TemporaryBackendException: ID ブロック [1, 51) のクレームを PT0.342S に書いた => 遅すぎる、しきい値: PT0.3S
実行は open() メソッドでハングするため、クエリを実行できません。