2017-08-07 3 views
3

私は、UserSuppliedIdsがエッジに対してサポートされていることを言及していることをドキュメントで見ていますが、私が作成するエッジはidのための自分の.property割り当てを無視し、GUIDを割り当てます。私は2つの頂点の間に重複する辺を追加したくないので、独自のIDを割り当てようとしていました(そして、通常のSQL構文を使ってクエリを素早く効率的に行うことができます)。自分の「id」をエッジとして使うにはどうすればいいですか?作成時にCosmosDBグラフのエッジにidを割り当てるにはどうすればいいですか?

答えて

1

どのドキュメントを参照していますか?グレムリンのドキュメントですか?

現在、エッジ効率を向上させるためにエッジをソースの頂点に配置できるように、エッジのIDを自分で制御しています。エッジIDが実際に提供されたときに例外をスローしないバグです。

この動作は変更されており、ユーザーはエッジを作成する際にIDを指定できます。私はチームに確認し、これについてETAを取得します。

ご報告いただきありがとうございます。他の方法で助けてもらえれば教えてください。

Jayanta

+0

このページ:https://docs.microsoft.com/en-us/azure/cosmos-db/gremlin-support Gemlin Docsの下では、エッジのためにサポートしているUserSuppliedIdsが記載されています –

+0

@Jayanta Mondal私はIdエッジの中にはコロケーションと関係があります。エッジはアウト・頂点と同じパーティションに格納されているため、クエリのパフォーマンスを向上させることができます。 –

0

グレムリンAPIを介して、今日はサポートされていないようので、私はあなたのグラフ要素に対してCRUD操作のためのドキュメントのAPIを使用して見てみましょうお勧めしたいです。これは私が職場で取ったアプローチであり、我々はそれで大きな成功を収めました。基本的に、Gremlinでいくつかの頂点と辺を挿入し、ポータルでSQLを使用して結果のドキュメントを検査すると、基礎となるストレージで期待されるフォーマットを見ることができます。

これを基に、様々なVertexとEdgeタイプのPOCOを取得し、それらをCosmosがバックエンドで期待するグラフ形式に変換するライブラリを設計しました。これにより、エッジのIDの選択を完全に制御することができます。あなたが指摘してきた非常に重要で一般的な使用事例は、私たちのシステムにとっても重要なことです。特定の頂点に対して、そのIDを制限することによって、複数のエッジを防ぐことができます。

+0

私はこの同じオプションを発見しましたが、私が使用しているクライアントのバージョンを確認するには、いくつかの更新。 0.2.0プレビューを使用していました。SQL構文を使用してクエリを実行できることは素晴らしいことです。実際に作成された重複が数多くあることを確認しています。したがって、Oliverが自分のIDを指定することで以下のように試した理由は0.2.0です。 。 0.2.4を試してみる。 –

1

エッジを追加し、カスタムidを割り当てる次のgremlin式をテストしました。

g.V('1231234').addE('postedTo').property('id', '1231234:post_4').from(g.V('post_4')) 

これはMicrosoft.Azure.Graph nugetパッケージ(0.2.4-preview0.2.2-preview)の最新および旧バージョン使用働い:

注:作成時エッジまたは頂点idプロパティのみを割り当てることができるが要素はaddVまたはaddE操作です。要素が書き込まれた後、idプロパティは読み取り専用です。

グラフサーバーのインスタンスでこれをテストする時間がありませんでしたが、パッケージのバージョン0.2.2-previewはデプロイされているものに匹敵するはずですので、同じ結果が期待されます。

関連する問題