As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Usar Go para conectar-se a uma instância de banco de dados do Neptune
Se você puder, sempre use a versão mais recente do cliente Apache TinkerPop Go Gremlin, gremlingo
A gremlingo
versão a ser usada normalmente se alinhará às TinkerPop versões descritas na tabela do cliente Java Gremlin.
nota
As versões 3.5.x do gremlingo são retrocompatíveis com as versões 3.4.x, desde que você use apenas os recursos TinkerPop 3.4.x nas consultas do Gremlin que você escreve.
A seção a seguir descreve a execução de um exemplo do Go que se conecta a uma instância de banco de dados do Amazon Neptune e executa um percurso do Gremlin.
Você deve seguir essas instruções de uma EC2 instância da Amazon na mesma nuvem privada virtual (VPC) da sua instância de banco de dados Neptune.
Antes de começar, faça o seguinte:
Baixe e instale o Go 1.17 ou posterior no site gov.dev
.
Como conectar-se ao Neptune usando Go
-
A partir de um diretório vazio, inicialize um novo módulo Go:
go mod init example.com/gremlinExample
-
Adicione gremlin-go como uma dependência do novo módulo:
go get github.com/apache/tinkerpop/gremlin-go/v3/driver
-
Crie um arquivo denominado
gremlinExample.go
e abra-o em um editor de texto. -
Copie o seguinte no
gremlinExample.go
arquivo, substituindo
com o endereço da sua instância de banco de dados Neptune:(seu endpoint de netuno)
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()) } }nota
Atualmente, o formato de certificado TLS Neptune não é compatível com o Go 1.18+ com macOS e pode gerar um erro 509 ao tentar iniciar uma conexão. Para testes locais, isso pode ser ignorado adicionando “crypto/tls” às importações e modificando as configurações
DriverRemoteConnection
da seguinte forma:// 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} })
-
Insira o seguinte comando para executar o exemplo:
go run gremlinExample.go
A consulta do Gremlin no final deste exemplo exibe os vértices (g.V().Limit(2))
em uma fatia. Essa fatia é então iterada e impressa com a função fmt.Println
padrão.
nota
A parte final da consulta do Gremlin, ToList()
, é necessária para enviar a travessia ao servidor para avaliação. Se você não incluir esse método ou outro método equivalente, a consulta não será enviada à instância de banco de dados do Neptune.
Os seguintes métodos enviam a consulta à instância de banco de dados do Neptune:
ToList()
ToSet()
Next()
GetResultSet()
Iterate()
O exemplo anterior retorna os primeiros dois vértices do gráfico usando a travessia g.V().Limit(2).ToList()
. Para consultar outro elemento, substitua-a por outra travessia do Gremlin com um dos métodos de término adequado.