Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan Go untuk terhubung ke instans DB Neptunus
penting
Memilih versi driver Apache TinkerPop Gremlin yang benar sangat penting untuk kompatibilitas dengan versi mesin Neptunus Anda. Menggunakan versi yang tidak kompatibel dapat mengakibatkan kegagalan koneksi atau perilaku yang tidak terduga. Untuk informasi kompatibilitas versi terperinci, lihatMengakses grafik Neptune dengan Gremlin.
Bagian berikut memandu Anda melalui menjalankan sampel Go yang terhubung ke instans Amazon Neptunus DB dan melakukan traversal Gremlin.
Anda harus mengikuti petunjuk ini dari instans Amazon EC2 di virtual private cloud (VPC) yang sama seperti instans DB Neptune Anda.
Sebelum memulai, lakukan hal berikut:
Unduh dan instal Go 1.17 atau yang lebih baru dari situs web go.dev.
Untuk terhubung ke Neptunus menggunakan Go
-
Mulai dari direktori kosong, inisialisasi modul Go baru:
go mod init example.com/gremlinExample -
Tambahkan gremlin-go sebagai dependensi modul baru Anda:
go get github.com/apache/tinkerpop/gremlin-go/v3/driver -
Buat file bernama
gremlinExample.godan kemudian buka di editor teks. -
Salin yang berikut ini ke dalam
gremlinExample.gofile, gantidengan alamat instans DB Neptunus Anda:(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()) } }catatan
Format sertifikat Neptunus TLS saat ini tidak didukung di Go 1.18+ dengan macOS, dan mungkin memberikan kesalahan 509 saat mencoba memulai koneksi. Untuk pengujian lokal, ini dapat dilewati dengan menambahkan “crypto/tls” ke impor dan memodifikasi pengaturan sebagai berikut:
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} }) -
Masukkan perintah berikut untuk menjalankan sampel:
go run gremlinExample.go
Query Gremlin di akhir contoh ini mengembalikan simpul (g.V().Limit(2)) dalam irisan. Irisan ini kemudian diulang dan dicetak dengan fmt.Println fungsi standar.
catatan
Bagian akhir dari kueri Gremlin, ToList(), diperlukan untuk mengirimkan traversal ke server untuk evaluasi. Jika Anda tidak menyertakan metode tersebut atau metode setara lain, kueri tidak diserahkan ke instans DB Neptune.
Metode berikut mengirimkan kueri ke instans DB Neptune:
ToList()ToSet()Next()GetResultSet()Iterate()
Contoh sebelumnya mengembalikan dua vertex pertama dalam grafik menggunakan traversal g.V().Limit(2).ToList(). Untuk mengajukan kueri untuk sesuatu yang lain, ganti dengan traversal Gremlin lain dengan salah satu metode ending yang tepat.