BERLAKU UNTUK: Gremlin
Kueri Gremlin
Cara mengevaluasi efisiensi kueri Gremlin
Langkah pratinjau executionProfile() dapat digunakan untuk memberikan analisis rencana eksekusi kueri. Langkah ini perlu ditambahkan ke akhir kueri Gremlin apa pun. Misalnya, Anda dapat menambahkan langkah ke akhir kueri yang g.V('example').out('relationship')
menghasilkan g.V('example').out('relationship').executionProfile()
.
Output profil di atas menunjukkan lamanya waktu yang digunakan untuk mendapatkan objek puncak, objek tepi, dan ukuran himpunan data kerja. Hasil ini terkait dengan pengukuran biaya standar untuk kueri Azure Cosmos DB.
Tanya Jawab Umum Lainnya
Bagaimana RU dibebankan biaya saat menjalankan kueri pada database grafik?
Semua objek grafik, sudut, dan tepi ditampilkan sebagai dokumen JSON di ujung belakang. Karena satu kueri Gremlin dapat memodifikasi satu atau banyak objek grafik pada satu waktu, biaya yang terkait dengannya terkait langsung dengan objek, tepi yang diproses oleh kueri. Proses ini juga digunakan oleh Azure Cosmos DB untuk semua API lainnya. Untuk informasi selengkapnya, lihat Unit Permintaan di Azure Cosmos DB.
Tarif RU didasarkan pada himpunan data kerja traversal, bukan rangkaian hasil. Misalnya, jika kueri bertujuan untuk mendapatkan satu puncak sebagai hasilnya tetapi perlu melintasi lebih dari satu objek lain dalam perjalanan, maka biaya didasarkan pada semua objek grafik yang diperlukan untuk menghitung satu verteks hasil.
Berapa skala maksimum yang dapat dimiliki database grafik di Azure Cosmos DB untuk Gremlin?
Azure Cosmos DB menggunakan partisi horizontal untuk secara otomatis mengatasi peningkatan persyaratan penyimpanan dan throughput. Throughput dan kapasitas penyimpanan beban kerja maksimum ditentukan oleh jumlah partisi yang terkait dengan kontainer tertentu. Namun, API untuk kontainer Gremlin memiliki serangkaian panduan khusus untuk memastikan pengalaman performa yang tepat dalam skala besar. Untuk informasi selengkapnya tentang partisi, lihat artikel partisi di Azure Cosmos DB.
Untuk pengembangan C#/.NET, haruskah saya menggunakan paket Microsoft.Azure.Graphs atau Gremlin.NET?
Azure Cosmos DB for Gremlin menggunakan driver sumber terbuka sebagai konektor utama untuk layanan. Jadi opsi yang direkomendasikan adalah menggunakan driver yang didukung oleh Apache.
Bagaimana cara agar terlindung dari serangan injeksi menggunakan driver Gremlin?
Sebagian besar driver Gremlin Apache Tinkerpop asli memungkinkan opsi untuk memberikan kamus parameter bagi eksekusi kueri. Lihat contoh cara melakukannya di Gremlin.Net dan di Gremlin-Javascript.
Mengapa saya menemui pesan "Kesalahan Kompilasi Kueri Gremlin: Tidak dapat menemukan metode apa pun"?
Azure Cosmos DB for Gremlin mengimplementasikan subset fungsionalitas yang ditentukan di area permukaan Gremlin. Untuk langkah-langkah yang didukung dan informasi selengkapnya, lihat artikel dukungan Gremlin.
Solusi terbaik adalah menulis ulang langkah-langkah Gremlin yang diperlukan dengan fungsionalitas yang didukung, mengingat semua langkah penting Gremlin didukung oleh Azure Cosmos DB.
Mengapa saya menjumpai pesan kesalahan "WebSocketException: Server mengembalikan kode status '200' ketika kode status '101' diharapkan"?
Kesalahan ini kemungkinan dihasilkan ketika titik akhir yang salah sedang digunakan. Titik akhir yang menghasilkan kesalahan ini memiliki pola berikut: https://<account-name>.documents.azure.com:443/
Ini adalah titik akhir dokumen untuk database grafik Anda. Titik akhir yang benar untuk digunakan adalah Titik Akhir Gremlin, dengan format:
https://YOUR_DATABASE_ACCOUNT.gremlin.cosmosdb.azure.com:443/
Mengapa saya menjumpai kesalahan "RequestRateIsTooLarge"?
Kesalahan ini berarti bahwa Unit Permintaan yang dialokasikan per detik tidak cukup untuk melayani kueri. Kesalahan ini terlihat saat Anda menjalankan kueri yang mendapatkan semua simpul:
// Query example:
g.V()
Kueri ini mencoba mengambil semua simpul dari grafik. Jadi, biaya kueri ini akan sama dengan setidaknya jumlah sudut dalam hal RU. Pengaturan RU harus disesuaikan untuk mengatasi kueri ini.
Mengapa koneksi driver Gremlin saya pada akhirnya tidak berjalan?
Koneksi Gremlin dibuat melalui koneksi WebSocket. Meskipun koneksi WebSocket tidak memiliki waktu hidup tertentu, Azure Cosmos DB untuk Gremlin akan mengakhiri koneksi diam setelah 30 menit tidak aktif.
Mengapa saya tidak dapat menggunakan panggilan API lancar di driver Gremlin asli?
Panggilan API fasih belum didukung oleh Azure Cosmos DB untuk Gremlin. Panggilan API fasih memerlukan fitur pemformatan internal yang dikenal sebagai dukungan bytecode yang saat ini tidak didukung oleh Azure Cosmos DB untuk Gremlin. Untuk alasan yang sama, driver JavaScript Gremlin terbaru juga saat ini tidak didukung.
Konten terkait
- Dukungan protokol kawat Azure Cosmos DB untuk Gremlin
- Membuat, mengkueri, dan melintasi database grafik Azure Cosmos DB menggunakan konsol Gremlin