Neptune のインラインサーバーによって生成されたエッジ ID - Amazon Neptune

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Neptune のインラインサーバーによって生成されたエッジ ID

Neptune は、インラインのサーバー生成エッジ ID をサポートしています。neptune_streams が有効になっていない場合は、Neptune 設定パラメータ neptune_enable_inline_server_generated_edge_id を使用して有効にできます。この機能は、エンジンリリース 1.4.3.0 以降の Gremlin クエリで使用でき、将来のリリースでは OpenCypher クエリで使用可能になります。

エッジ ID は、エッジの一意の識別子です。エッジ ID は、エッジを挿入するときに指定できます。ID が指定されていない場合、サーバーはデフォルトで UUID ベースの ID を生成してエッジに割り当てます。ユーザー定義 ID と同様に、UUID ベースのサーバー生成 ID はディクショナリに保存されます。

neptune_enable_inline_server_generated_edge_id の機能を有効にすると、クエリに ID が指定されていない場合、サーバーは一意のインライン ID を生成します。インラインエッジ ID はディクショナリに保存されないため、ストレージ効率が向上します。サーバーで生成されたインライン ID の先頭には、予約済みプレフィックス neptune_reserved が付加されています。

警告

Neptune は、サーバーで生成されたインライン ID 用に 'neptune_reserved' プレフィックスを予約します。リザーブドプレフィックスが先頭に付加されたユーザー定義 ID が設定されたデータを挿入しようとするクエリに対してエラーが表示されます。

インラインサーバー生成エッジ ID 機能は、クラスターレベルのパラメータ neptune_enable_inline_server_generated_edge_id1 に設定することで有効にできます。インスタンスの再起動が必要です。次の例では、サーバーで生成されたエッジ ID 機能を有効にします。

"ParameterName=neptune_enable_inline_server_generated_edge_id,ParameterValue=1,ApplyMethod=pending-reboot"

この機能が有効になっているかどうかを確認するには、エンジンステータスの機能を確認します。neptune_streams が有効になっている場合、この機能は自動的に無効になります。次の出力例は、有効な機能のエンジンステータスを示しています。

"features":{"InlineServerGeneratedEdgeId":"enabled"}

次の Gremlin の例では、インラインサーバーによって生成されたエッジ ID の機能が有効になっている場合に、ユーザー定義 ID が設定されていないエッジを追加します。

curl - X POST--url https: //<neptune-cluster-endpoint>:8182/gremlin/ --data '{"gremlin":"g.withSideEffect(\"Neptune#disablePushdownOptimization\", true).addV().property(id, \"a\").addV().property(id, \"b\").addE(\"el\").to(V(\"a\"))"}' { "requestId": "b6b84605-53ad-4c04-baf1-7f0f31a3aeaf", "status": { "message": "", "code": 200, "attributes": { "@type": "g:Map", "@value": [] } }, "result": { "data": { "@type": "g:List", "@value": [{ "@type": "g:Edge", "@value": { "id": "neptune_reserved_231850767", "label": "el", "inVLabel": "vertex", "outVLabel": "vertex", "inV": "a", "outV": "b" } }] }, "meta": { "@type": "g:Map", "@value": [] } } }