翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Go を使用して Neptune DB インスタンスに接続する
可能な場合は、エンジンバージョンがサポートする最新バージョンの Apache TinkerPop Go Gremlin クライアント gremlingo
使用するgremlingo
バージョンは通常、Java Gremlin クライアントの表で説明されているバージョンと一致し TinkerPopます。 Apache TinkerPop Java Gremlin クライアント
注記
書き込む Gremlin クエリで 3.4.x 機能のみを使用している限り、gremlingo 3 TinkerPop .5.x バージョンは 3.4.x バージョンと下位互換性があります。
次のセクションでは、Amazon Neptune DB インスタンスに接続して、Gremlin トラバーサルを実行する Go サンプルの実行方法について説明します。
Neptune DB EC2インスタンスと同じ仮想プライベートクラウド (VPC) の Amazon インスタンスからこれらの指示に従う必要があります。
開始する前に、以下を実行します。
go.dev
ウェブサイトから Go 1.17 以降をダウンロードしてインストールします。
Go を使用して Neptune に接続するには
-
空のディレクトリから始めて、新しい Go モジュールを初期化します。
go mod init example.com/gremlinExample
-
gremlin-go を新しいモジュールの依存関係として追加します。
go get github.com/apache/tinkerpop/gremlin-go/v3/driver
-
「
gremlinExample.go
」という名前のファイルを作成し、テキストエディタで開きます。 -
以下を
gremlinExample.go
ファイルにコピーし、
を Neptune DB インスタンスのアドレスに置き換えます。(your neptune endpoint)
package main import ( "fmt" gremlingo "github.com/apache/tinkerpop/gremlin-go/v3/driver" ) func main() { // Creating the connection to the server. driverRemoteConnection, err := gremlingo.NewDriverRemoteConnection("wss://
(your neptune endpoint)
:8182/gremlin", func(settings *gremlingo.DriverRemoteConnectionSettings) { settings.TraversalSource = "g" }) if err != nil { fmt.Println(err) return } // Cleanup defer driverRemoteConnection.Close() // Creating graph traversal g := gremlingo.Traversal_().WithRemote(driverRemoteConnection) // Perform traversal results, err := g.V().Limit(2).ToList() if err != nil { fmt.Println(err) return } // Print results for _, r := range results { fmt.Println(r.GetString()) } }注記
Neptune TLS証明書形式は現在、macOS での Go 1.18 以降ではサポートされておらず、接続を開始しようとすると 509 エラーが発生する可能性があります。ローカルテストでは、インポートに「crypto/tls」を追加し、
DriverRemoteConnection
設定を次のように変更することで、これをスキップできます。// Creating the connection to the server. driverRemoteConnection, err := gremlingo.NewDriverRemoteConnection("wss://your-neptune-endpoint:8182/gremlin", func(settings *gremlingo.DriverRemoteConnectionSettings) { settings.TraversalSource = "g" settings.TlsConfig = &tls.Config{InsecureSkipVerify: true} })
-
サンプルを実行するには、次のコマンドを入力します。
go run gremlinExample.go
この例の最後にある Gremlin クエリは、頂点 (g.V().Limit(2))
をスライスで返します。このスライスは、標準の fmt.Println
関数で繰り返され、出力されます。
注記
Gremlin クエリの最後の部分、ToList()
では、評価のためにトラバーサルをサーバーに送信する必要があります。そのメソッドまたは別の同等のメソッドを含めない場合、クエリは Neptune DB インスタンスに送信されません。
以下のメソッドは Neptune DB インスタンスにクエリを送信します。
ToList()
ToSet()
Next()
GetResultSet()
Iterate()
前述の例では、g.V().Limit(2).ToList()
トラバーサルを使用してグラフの最初の 2 つの頂点を返します。その他の対象にクエリを実行するには、いずれかの適切な終了メソッドを持つ Gremlin トラバーサルで置き換えます。