Utilisation de Go pour se connecter à une instance de base de données Neptune - Amazon Neptune

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisation de Go pour se connecter à une instance de base de données Neptune

Si possible, utilisez toujours la dernière version du client Apache TinkerPop Go Gkremlin, gremlingo, prise en charge par la version de votre moteur. Les versions plus récentes contiennent de nombreux correctifs de bogues qui améliorent la stabilité, les performances et l'ergonomie du client.

La gremlingo version à utiliser s'aligne généralement sur les TinkerPop versions décrites dans le tableau du client Java Gkremlin.

Note

Les versions 3.5.x de gremlingo sont rétrocompatibles avec les versions 3.4.x à condition que vous n'utilisiez que les fonctionnalités TinkerPop 3.4.x dans les requêtes Gkremlin que vous écrivez.

La section suivante vous accompagne dans l'exécution d'un exemple Go qui se connecte à une instance de base de données Amazon Neptune et effectue une traversée Gremlin.

Vous devez suivre ces instructions à partir d'une instance Amazon EC2 dans le même cloud privé virtuel (VPC) (VPC) que l'instance de base de données Neptune.

Avant de commencer, vous devez exécuter les actions suivantes :

  • Téléchargez et installez Go 1.17 ou version ultérieure depuis le site web go.dev.

Pour se connecter à Neptune à l'aide de Go
  1. À partir d'un répertoire vide, initialisez un nouveau module Go :

    go mod init example.com/gremlinExample
  2. Ajoutez gremlin-go comme dépendance du nouveau module :

    go get github.com/apache/tinkerpop/gremlin-go/v3/driver
  3. Créez un fichier nommé gremlinExample.go et ouvrez-le dans un éditeur de texte.

  4. Copiez ce qui suit dans le fichier gremlinExample.go, en remplaçant (your neptune endpoint) par l'adresse de l'instance de base de données Neptune :

    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()) } }
    Note

    Le format du certificat Neptune TLS n'est actuellement pas pris en charge sur Go 1.18 ou version supérieure avec macOS et peut générer une erreur 509 lorsque vous essayez d'établir une connexion. Pour les tests locaux, cela peut être ignoré en ajoutant « crypto/tls » aux importations et en modifiant les paramètres DriverRemoteConnection comme suit :

    // 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} })
  5. Pour exécuter l'exemple, entrez la commande suivante :

    go run gremlinExample.go

La requête Gremlin à la fin de cet exemple renvoie les sommets ((g.V().Limit(2))) dans une liste. Cette tranche est ensuite itérée et imprimée avec la fonction fmt.Println standard.

Note

La partie finale de la requête Gremlin, ToList(), est obligatoire pour soumettre la traversée au serveur à des fins d'évaluation. Si vous n'incluez pas cette méthode ou une autre méthode équivalente, la requête ne sera pas soumise à l'instance de base de données Neptune.

Les méthodes suivantes soumettent la requête à l'instance de base de données Neptune :

  • ToList()

  • ToSet()

  • Next()

  • GetResultSet()

  • Iterate()

L'exemple précédent renvoie les deux premier vertex du graphe en utilisant la traversée g.V().Limit(2).ToList(). Pour interroger quelque chose d'autre, remplacez la traversée par une autre traversée Gremlin avec l'une des méthodes de fin appropriées.