Menggunakan Go untuk terhubung ke instans DB Neptunus - Amazon Neptune

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

Jika Anda bisa, selalu gunakan versi terbaru dari klien Apache TinkerPop Go Gremlin, gremlingo, bahwa versi mesin Anda mendukung. Versi yang lebih baru berisi banyak perbaikan bug yang meningkatkan stabilitas, kinerja, dan kegunaan klien.

gremlingoVersi yang digunakan biasanya akan sejajar dengan TinkerPop versi yang dijelaskan dalam tabel untuk klien Java Gremlin.

catatan

Versi 3.5.x gremlingo kompatibel dengan versi 3.4.x selama Anda hanya menggunakan TinkerPop fitur 3.4.x dalam kueri Gremlin yang Anda tulis.

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 EC2 instans Amazon di virtual private cloud (VPC) yang sama dengan instans DB Neptunus 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
  1. Mulai dari direktori kosong, inisialisasi modul Go baru:

    go mod init example.com/gremlinExample
  2. Tambahkan gremlin-go sebagai dependensi modul baru Anda:

    go get github.com/apache/tinkerpop/gremlin-go/v3/driver
  3. Buat file bernama gremlinExample.go dan kemudian buka di editor teks.

  4. Salin berikut ini ke dalam gremlinExample.go file, ganti (titik akhir neptunus Anda) dengan alamat instans DB Neptunus Anda:

    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 TLS Neptunus 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} })
  5. 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.