Mengatur konsol Gremlin agar terhubung ke instans DB Neptune - Amazon Neptune

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mengatur konsol Gremlin agar terhubung ke instans DB Neptune

Konsol Gremlin memungkinkan Anda bereksperimen dengan TinkerPop grafik dan kueri di lingkungan REPL (read-eval-print loop).

Menginstal konsol Gremlin dan menghubungkannya dengan cara biasa

Anda dapat menggunakan Konsol Gremlin untuk terhubung ke basis data grafik jarak jauh. Bagian berikut memandu Anda melalui penginstalan dan konfigurasi Konsol Gremlin untuk menghubungkan ke instans DB Neptune secara jarak jauh. Anda harus mengikuti petunjuk ini dari EC2 instans Amazon di virtual private cloud (VPC) yang sama dengan instans DB Neptunus Anda.

Untuk bantuan menghubungkan ke Neptunus SSL denganTLS/(yang diperlukan), lihat. SSL/TLSkonfigurasi

catatan

Jika IAMautentikasi Anda diaktifkan di cluster DB Neptunus Anda, ikuti petunjuk untuk menginstal konsol Gremlin daripada instruksi Menyambung ke Neptune Menggunakan Konsol Gremlin dengan Penandatangan Signature Versi 4 di sini.

Untuk memasang Konsol Gremlin dan menyambung ke Neptune
  1. Biner Konsol Gremlin memerlukan Java 8 atau Java 11. Instruksi ini mengasumsikan penggunaan Java 11. Anda dapat menginstal Java 11 pada EC2 instance Anda sebagai berikut:

    • Jika Anda menggunakan Amazon Linux 2 (AL2):

      sudo amazon-linux-extras install java-openjdk11
    • Jika Anda menggunakan Amazon Linux 2023 (AL2023):

      sudo yum install java-11-amazon-corretto-devel
    • Untuk distribusi lain, gunakan salah satu dari berikut ini yang sesuai:

      sudo yum install java-11-openjdk-devel

      atau:

      sudo apt-get install openjdk-11-jdk
  2. Masukkan yang berikut ini untuk mengatur Java 11 sebagai runtime default pada EC2 instance Anda.

    sudo /usr/sbin/alternatives --config java

    Saat diminta, masukkan nomor untuk Java 11.

  3. Unduh versi konsol Gremlin yang sesuai dari situs web Apache. Anda dapat memeriksa halaman rilis mesin untuk versi mesin Neptune yang sedang Anda jalankan guna menentukan versi Gremlin mana yang didukungnya. Misalnya, untuk versi 3.6.5, Anda dapat mengunduh konsol Gremlin dari situs web Apache Tinkerpop3 ke instance Anda seperti ini: EC2

    wget https://archive.apache.org/dist/tinkerpop/3.6.5/apache-tinkerpop-gremlin-console-3.6.5-bin.zip
  4. Unzip file Konsol Gremlin.

    unzip apache-tinkerpop-gremlin-console-3.6.5-bin.zip
  5. Ubah direktori ke dalam direktori yang di-unzip.

    cd apache-tinkerpop-gremlin-console-3.6.5
  6. Di sudirektori conf dari direktori yang diekstrak, buat sebuah file bernama neptune-remote.yaml dengan teks berikut. Ganti your-neptune-endpoint dengan nama host atau alamat IP instans DB Neptunus Anda. Tanda kurung persegi ([ ]) wajib diisi.

    catatan

    Untuk informasi tentang menemukan nama host instans DB Neptune Anda, lihat bagian Menghubungkan ke Titik Akhir Amazon Neptune..

    hosts: [your-neptune-endpoint] port: 8182 connectionPool: { enableSsl: true } serializer: { className: org.apache.tinkerpop.gremlin.util.ser.GraphBinaryMessageSerializerV1, config: { serializeResultToString: true }}
    catatan

    Serializer dipindahkan dari gremlin-driver modul ke gremlin-util modul baru di versi 3.7.0. Paket diubah dari org.apache.tinkerpop.gremlin.driver.ser menjadi org.apache.tinkerpop.gremlin.util.ser.

  7. Di terminal, bernavigasilah ke direktori Konsol Gremlin (apache-tinkerpop-gremlin-console-3.6.5), lalu masukkan perintah berikut untuk menjalankan Konsol Gremlin.

    bin/gremlin.sh

    Anda akan melihat output berikut:

    \,,,/ (o o) -----oOOo-(3)-oOOo----- plugin activated: tinkerpop.server plugin activated: tinkerpop.utilities plugin activated: tinkerpop.tinkergraph gremlin>

    Anda sekarang berada di prompt gremlin>. Anda akan memasukkan langkah-langkah yang tersisa pada prompt ini.

  8. Di prompt gremlin>, masukkan hal berikut untuk menyambung ke instans DB Neptune.

    :remote connect tinkerpop.server conf/neptune-remote.yaml
  9. Di prompt gremlin>, masukkan hal berikut ini untuk beralih ke mode jarak jauh. Ini mengirimkan semua kueri Gremlin ke koneksi remote.

    :remote console
  10. Masukkan hal berikut untuk mengirim kueri ke Gremlin Graph.

    g.V().limit(1)
  11. Setelah Anda selesai, masukkan hal berikut untuk keluar dari Konsol Gremlin.

    :exit
catatan

Gunakan titik koma (;) atau karakter baris baru (\n) untuk memisahkan setiap pernyataan.

Setiap traversal sebelum traversal akhir harus diakhiri dengan next() yang akan dieksekusi. Hanya data dari traversal akhir yang dikembalikan.

Untuk informasi lebih lanjut tentang implementasi Neptune dari Gremlin, lihat Kepatuhan standar Gremlin di Amazon Neptune.

Cara alternatif untuk terhubung ke konsol Gremlin

Kelemahan dari pendekatan koneksi normal

Cara paling umum untuk terhubung ke konsol Gremlin adalah yang dijelaskan di atas, menggunakan perintah seperti ini pada gremlin> prompt:

gremlin> :remote connect tinkerpop.server conf/(file name).yaml gremlin> :remote console

Ini berfungsi dengan baik, dan memungkinkan Anda mengirim kueri ke Neptunus. Namun, itu mengeluarkan mesin skrip Groovy dari loop, jadi Neptunus memperlakukan semua kueri sebagai Gremlin murni. Ini berarti bahwa formulir kueri berikut gagal:

gremlin> 1 + 1 gremlin> x = g.V().count()

Yang paling dekat yang bisa Anda dapatkan menggunakan variabel saat terhubung dengan cara ini adalah dengan menggunakan result variabel yang dikelola oleh konsol dan mengirim kueri menggunakan:>, seperti ini:

gremlin> :remote console ==>All scripts will now be evaluated locally - type ':remote console' to return to remote mode for Gremlin Server - [krl-1-cluster.cluster-ro-cm9t6tfwbtsr.us-east-1.neptune.amazonaws.com/172.31.19.217:8182] gremlin> :> g.V().count() ==>4249 gremlin> println(result) [result{object=4249 class=java.lang.Long}] gremlin> println(result['object']) [4249]

 

Cara berbeda untuk terhubung

Anda juga dapat terhubung ke konsol Gremlin dengan cara yang berbeda, yang mungkin Anda temukan lebih bagus, seperti ini:

gremlin> g = traversal().withRemote('conf/neptune.properties')

Di sini neptune.properties mengambil formulir ini:

gremlin.remote.remoteConnectionClass=org.apache.tinkerpop.gremlin.driver.remote.DriverRemoteConnection gremlin.remote.driver.clusterFile=conf/my-cluster.yaml gremlin.remote.driver.sourceName=g

my-cluster.yamlFile akan terlihat seperti ini:

hosts: [my-cluster-abcdefghijk.us-east-1.neptune.amazonaws.com] port: 8182 serializer: { className: org.apache.tinkerpop.gremlin.util.ser.GraphBinaryMessageSerializerV1, config: { serializeResultToString: false } } connectionPool: { enableSsl: true }
catatan

Serializer dipindahkan dari gremlin-driver modul ke gremlin-util modul baru di versi 3.7.0. Paket diubah dari org.apache.tinkerpop.gremlin.driver.ser menjadi org.apache.tinkerpop.gremlin.util.ser.

Mengkonfigurasi koneksi konsol Gremlin seperti itu memungkinkan Anda membuat jenis kueri berikut dengan sukses:

gremlin> 1+1 ==>2 gremlin> x=g.V().count().next() ==>4249 gremlin> println("The answer was ${x}") The answer was 4249

Anda dapat menghindari menampilkan hasilnya, seperti ini:

gremlin> x=g.V().count().next();[] gremlin> println(x) 4249

Semua cara kueri yang biasa (tanpa langkah terminal) terus berfungsi. Sebagai contoh:

gremlin> g.V().count() ==>4249

Anda bahkan dapat menggunakan g.io().read()langkah untuk memuat file dengan koneksi semacam ini.