Mulai cepat: Melintasi simpul dan tepi dengan konsol Gremlin dan Azure Cosmos DB untuk Apache Gremlin

BERLAKU UNTUK: Gremlin

Azure Cosmos DB for Apache Gremlin adalah layanan database grafik yang dikelola sepenuhnya yang mengimplementasikan kerangka kerja komputasi grafik yang populer Apache Tinkerpopmenggunakan bahasa kueri Gremlin. API untuk Gremlin memberi Anda cara gesekan rendah untuk mulai menggunakan Gremlin dengan layanan yang dapat tumbuh dan meluaskan skala sebanyak yang Anda butuhkan dengan manajemen minimal.

Dalam mulai cepat ini, Anda menggunakan konsol Gremlin untuk menyambungkan ke akun Azure Cosmos DB for Gremlin yang baru dibuat.

Prasyarat

Azure Cloud Shell

Azure meng-hosting Azure Cloud Shell, lingkungan shell interaktif yang dapat Anda gunakan melalui browser. Anda dapat menggunakan Bash atau PowerShell dengan Cloud Shell untuk bekerja dengan layanan Azure. Anda dapat menggunakan perintah Cloud Shell yang telah diinstal sebelumnya untuk menjalankan kode dalam artikel ini tanpa harus menginstal apa-apa di lingkungan lokal Anda.

Untuk memulai Azure Cloud Shell:

Opsi Contoh/Tautan
Pilih Coba di pojok kanan atas blok kode atau perintah. Memilih Coba tidak otomatis menyalin kode atau perintah ke Cloud Shell. Screenshot that shows an example of Try It for Azure Cloud Shell.
Buka https://shell.azure.com, atau pilih tombol Luncurkan Cloud Shell untuk membuka Cloud Shell di browser Anda. Button to launch Azure Cloud Shell.
Pilih tombol Cloud Shell pada bilah menu di kanan atas di portal Microsoft Azure. Screenshot that shows the Cloud Shell button in the Azure portal

Untuk menggunakan Azure Cloud Shell:

  1. Mulai Cloud Shell.

  2. Pilih tombol Salin pada blok kode (atau blok perintah) untuk menyalin kode atau perintah.

  3. Tempel kode atau perintah ke dalam sesi Cloud Shell dengan memilih Ctrl+Shift+V di Windows dan Linux, atau dengan memilih Cmd+Shift+V di macOS.

  4. Pilih Masukkan untuk menjalankan kode atau perintah.

Membuat API untuk akun Gremlin dan sumber daya yang relevan

API untuk akun Gremlin harus dibuat sebelum menggunakan konsol Gremlin. Selain itu, ini membantu juga memiliki database dan grafik di tempat.

  1. Buat variabel shell untuk accountName, resourceGroupName, dan location.

    # Variable for resource group name
    resourceGroupName="msdocs-cosmos-gremlin-quickstart"
    location="westus"
    
    # Variable for account name with a randomly generated suffix
    
    let suffix=$RANDOM*$RANDOM
    accountName="msdocs-gremlin-$suffix"
    
  2. Jika Anda belum melakukannya, masuk ke Azure CLI menggunakan az login.

  3. Gunakan az group create untuk membuat grup sumber daya baru di langganan Anda.

    az group create \
        --name $resourceGroupName \
        --location $location
    
  4. Gunakan az cosmosdb create untuk membuat API baru untuk akun Gremlin dengan pengaturan default.

    az cosmosdb create \
        --resource-group $resourceGroupName \
        --name $accountName \
        --capabilities "EnableGremlin" \
        --locations regionName=$location \
        --enable-free-tier true
    

    Catatan

    Anda dapat memiliki hingga satu akun Azure Cosmos DB tingkat gratis per langganan Azure dan harus ikut serta saat membuat akun. Jika perintah ini gagal menerapkan diskon tingkat gratis, ini berarti akun lain dalam langganan telah diaktifkan dengan tingkat gratis.

  5. Dapatkan API untuk NAMA titik akhir Gremlin untuk akun menggunakan az cosmosdb show.

    az cosmosdb show \
        --resource-group $resourceGroupName \
        --name $accountName \
        --query "name"
    
  6. Temukan KEY dari daftar kunci untuk akun dengan az-cosmosdb-keys-list.

    az cosmosdb keys list \
        --resource-group $resourceGroupName \
        --name $accountName \
        --type "keys" \
        --query "primaryMasterKey"
    
  7. Catat nilai NAME dan KEY . Anda menggunakan kredensial ini nanti.

  8. Buat database bernama cosmicworks menggunakan az cosmosdb gremlin database create.

    az cosmosdb gremlin database create \
        --resource-group $resourceGroupName \
        --account-name $accountName \
        --name "cosmicworks"
    
  9. Buat grafik menggunakan az cosmosdb gremlin graph create. Beri nama grafik products, lalu atur throughput ke 400, dan akhirnya atur jalur kunci partisi ke /category.

    az cosmosdb gremlin graph create \
        --resource-group $resourceGroupName \
        --account-name $accountName \
        --database-name "cosmicworks" \
        --name "products" \
        --partition-key-path "/category" \
        --throughput 400
    

Memulai dan mengonfigurasi konsol Gremlin menggunakan Docker

Untuk konsol tinkerpop/gremlin-console gremlin, mulai cepat ini menggunakan gambar kontainer dari Docker Hub. Gambar ini memastikan bahwa Anda menggunakan versi konsol yang sesuai (3.4) untuk koneksi dengan API untuk Gremlin. Setelah konsol berjalan, sambungkan dari host Docker lokal Anda ke API jarak jauh untuk akun Gremlin.

  1. 3.4 Tarik versi tinkerpop/gremlin-console gambar kontainer.

    docker pull tinkerpop/gremlin-console:3.4
    
  2. Buat folder kerja kosong. Di folder kosong, buat file remote-secure.yaml . Tambahkan konfigurasi YAML ini ke file.

    hosts: [<account-name>.gremlin.cosmos.azure.com]
    port: 443
    username: /dbs/cosmicworks/colls/products
    password: <account-key>
    connectionPool: {
      enableSsl: true,
      sslEnabledProtocols: [TLSv1.2]
    }
    serializer: {
      className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV2d0,
      config: {
        serializeResultToString: true
      }
    }
    

    Catatan

    <account-name> Ganti tempat penampung dan <account-key> dengan nilai NAME dan KEY yang diperoleh sebelumnya dalam mulai cepat ini.

  3. Buka terminal baru dalam konteks folder kerja Anda yang menyertakan file remote-secure.yaml .

  4. Jalankan gambar kontainer Docker dalam mode interaktif (--interactive --tty). Pastikan Anda memasang folder kerja saat ini ke /opt/gremlin-console/conf/ jalur dalam kontainer.

    docker run -it --mount type=bind,source=.,target=/opt/gremlin-console/conf/ tinkerpop/gremlin-console:3.4
    
  5. Dalam kontainer konsol Gremlin, sambungkan ke akun jarak jauh (API untuk Gremlin) menggunakan file konfigurasi remote-secure.yaml .

    :remote connect tinkerpop.server conf/remote-secure.yaml
    

Membuat dan melintasi simpul dan tepi

Sekarang setelah konsol terhubung ke akun, gunakan sintaks Gremlin standar untuk membuat dan melintasi simpul dan tepi.

  1. Tambahkan puncak untuk produk dengan properti berikut:

    Nilai
    Label product
    id 68719518371
    name Kiama classic surfboard
    price 285.55
    category surfboards
    :> g.addV('product').property('id', '68719518371').property('name', 'Kiama classic surfboard').property('price', 285.55).property('category', 'surfboards')
    

    Penting

    Jangan foget awalan :> . Awalan THis diperlukan untuk menjalankan perintah dari jarak jauh.

  2. Tambahkan vertex produk lain dengan properti ini:

    Nilai
    Label product
    id 68719518403
    name Montau Turtle Surfboard
    price 600
    category surfboards
    :> g.addV('product').property('id', '68719518403').property('name', 'Montau Turtle Surfboard').property('price', 600).property('category', 'surfboards')
    
  3. Buat tepi bernama replaces untuk menentukan hubungan antara kedua produk.

    :> g.V(['surfboards', '68719518403']).addE('replaces').to(g.V(['surfboards', '68719518371']))
    
  4. Hitung semua simpul dalam grafik.

    :> g.V().count()
    
  5. Melintasi grafik untuk menemukan semua simpul yang menggantikan Kiama classic surfboard.

    :> g.V().hasLabel('product').has('category', 'surfboards').has('name', 'Kiama classic surfboard').inE('replaces').outV()
    
  6. Melintasi grafik untuk menemukan semua simpul yang Montau Turtle Surfboard menggantikan.

    :> g.V().hasLabel('product').has('category', 'surfboards').has('name', 'Montau Turtle Surfboard').outE('replaces').inV()
    

Membersihkan sumber daya

Ketika Anda tidak lagi memerlukan API untuk akun Gremlin, hapus grup sumber daya yang sesuai.

  1. Buat variabel shell untuk resourceGroupName jika belum ada.

    # Variable for resource group name
    resourceGroupName="msdocs-cosmos-gremlin-quickstart"
    
  2. Gunakan az group delete untuk menghapus grup sumber daya.

    az group delete \
        --name $resourceGroupName
    

Bagaimana kita memecahkan masalah?

Azure Cosmos DB untuk Apache Gremlin memecahkan masalah kami dengan menawarkan Gremlin sebagai layanan. Dengan penawaran ini, Anda tidak diharuskan untuk membuat instans server Gremlin Anda sendiri atau mengelola infrastruktur Anda sendiri. Bahkan lebih, Anda dapat menskalakan solusi saat kebutuhan Anda tumbuh dari waktu ke waktu.

Untuk menyambungkan ke API untuk akun Gremlin, Anda menggunakan tinkerpop/gremlin-console gambar kontainer untuk menjalankan konsol gremlin dengan cara yang tidak memerlukan penginstalan lokal. Kemudian, Anda menggunakan konfigurasi yang disimpan dalam file remote-secure.yaml untuk menyambungkan dari kontainer yang sedang berjalan API untuk akun Gremlin. Dari sana, Anda menjalankan beberapa perintah Gremlin umum.

Langkah selanjutnya