ينطبق على: العفريت
استفسارات Gremlin
كيفية تقييم كفاءة استعلامات Gremlin
يمكن استخدام خطوة الإصدار الأولي executionProfile() لتقديم تحليل لخطة تنفيذ الاستعلام. يجب إضافة هذه الخطوة إلى نهاية أي استعلام Gremlin. على سبيل المثال، يمكنك إضافة الخطوة إلى نهاية g.V('example').out('relationship')
استعلام ينتج عنه g.V('example').out('relationship').executionProfile()
.
يُظهر إخراج ملف التعريف أعلاه مقدار الوقت المستغرق في الحصول على كائنات الرأس، وكائنات الحافة، وحجم مجموعة بيانات العمل. يرتبط هذا بقياسات التكلفة القياسية لاستعلامات Azure Cosmos DB.
الأسئلة المتداولة الأخرى
كيف يتم احتساب تكلفة RU/s عند تشغيل الاستعلامات في قاعدة بيانات الرسم البياني؟
تُعرض جميع كائنات الرسم البياني والرؤوس والحواف كمستندات JSON في الواجهة الخلفية. نظرا لأن استعلام Gremlin واحدا يمكنه تعديل كائن رسم بياني واحد أو العديد منه في كل مرة، فإن التكلفة المقترنة به مرتبطة مباشرة بالعناصر، الحواف التي تتم معالجتها بواسطة الاستعلام. هذه هي نفس العملية التي يستخدمها Azure Cosmos DB لجميع واجهات برمجة التطبيقات الأخرى. لمزيد من المعلومات، راجع Request Units in Azure Cosmos DB.
تعتمد رسوم RU على مجموعة بيانات العمل الخاصة بالاجتياز، وليس مجموعة النتائج. على سبيل المثال، إذا كان الاستعلام يهدف إلى الحصول على ذروة واحدة كنتيجة ولكنه يحتاج إلى اجتياز أكثر من كائن آخر في الطريق، فإن التكلفة تستند إلى جميع كائنات الرسم البياني التي يستغرقها حساب ذروة النتيجة الواحدة.
ما هو الحد الأقصى للمقياس الذي يمكن أن تحتوي عليه قاعدة بيانات الرسم البياني في Azure Cosmos DB ل Gremlin؟
يستخدم Azure Cosmos DB التقسيم الأفقي لمعالجة الزيادة في متطلبات التخزين ومعدل النقل تلقائياً. يتم تحديد الحد الأقصى لمعدل النقل وسعة التخزين لحمل العمل من خلال عدد الأقسام المرتبطة بحاوية معينة. ومع ذلك، تحتوي واجهة برمجة التطبيقات لحاوية Gremlin على مجموعة محددة من الإرشادات لضمان تجربة أداء مناسبة على نطاق واسع. لمزيد من المعلومات حول التقسيم وأفضل الممارسات، راجع مقالة التقسيم في Azure Cosmos DB.
لتطوير C#/.NET، هل يجب استخدام حزمة Microsoft.Azure.Graphs أو Gremlin.NET؟
يستخدم Azure Cosmos DB ل Gremlin برامج التشغيل مفتوحة المصدر كموصلات رئيسية للخدمة. لذا فإن الخيار الموصى به هو استخدام برامج التشغيل التي يدعمها Apache.
كيف يمكنني الحماية من هجمات الضخ باستخدام برامج تشغيل Gremlin؟
تسمح معظم برامج تشغيل Apache Tinkerpop Gremlin الأصلية بخيار توفير قاموس للمعلمات لتنفيذ الاستعلام. هذا مثال على كيفية القيام بذلك في Gremlin.NET وفي Gremlin-Javascript.
لماذا أتلقى الخطأ Gremlin Query Compilation Error: تعذر العثور على أي طريقة"؟
ينفذ Azure Cosmos DB ل Gremlin مجموعة فرعية من الوظائف المحددة في منطقة سطح Gremlin. للحصول على خطوات مدعومة ومزيد من المعلومات، راجع مقالة دعم Gremlin.
أفضل حل بديل هو إعادة كتابة خطوات Gremlin المطلوبة باستخدام الوظائف المدعومة، نظراً لأن كل خطوات Gremlin الأساسية مدعومة بواسطة Azure Cosmos DB.
لماذا أحصل على خطأ "WebSocketException: أرجع الخادم رمز الحالة '200' عندما كان من المتوقع ظهور رمز الحالة '101'"؟
من المحتمل أن يُطرح هذا الخطأ عند استخدام نقطة نهاية خاطئة. نقطة النهاية التي تنشئ هذا الخطأ لها النمط التالي: https://<account-name>.documents.azure.com:443/
هذه هي نقطة نهاية المستندات لقاعدة بيانات الرسم البياني الخاص بك. نقطة النهاية الصحيحة التي يجب استخدامها هي نقطة نهاية Gremlin، والتي لها التنسيق التالي:
https://YOUR_DATABASE_ACCOUNT.gremlin.cosmosdb.azure.com:443/
لماذا أتلقى الخطأ "RequestRateIsTooLarge"؟
يعني هذا الخطأ أن وحدات الطلب المخصصة في الثانية لا تكفي لخدمة الاستعلام. يظهر هذا الخطأ عند تشغيل استعلام يحصل على جميع الذروات:
// Query example:
g.V()
يحاول هذا الاستعلام استرداد كافة الرؤوس من الرسم البياني. لذا، فإن تكلفة هذا الاستعلام ستكون مساوية لعدد الرؤوس على الأقل من حيث شروط RUs. يجب ضبط إعداد RU/s لمعالجة هذا الاستعلام.
لماذا تنقطع اتصالات سائق Gremlin الخاصة بي في النهاية؟
يتم إجراء اتصال Gremlin من خلال اتصال WebSocket. على الرغم من أن اتصالات WebSocket ليس لها وقت محدد للعيش، فإن Azure Cosmos DB ل Gremlin سينهي الاتصالات الخاملة بعد 30 دقيقة من عدم النشاط.
لماذا لا يمكنني استخدام استدعاءات API بطلاقة في برامج تشغيل Gremlin الأصلية؟
مكالمات Fluent API غير مدعومة بعد من قبل Azure Cosmos DB ل Gremlin. تتطلب استدعاءات Fluent API ميزة تنسيق داخلية تعرف باسم دعم bytecode غير مدعوم حاليا من قبل Azure Cosmos DB ل Gremlin. لنفس السبب، فإن أحدث برنامج تشغيل Gremlin-JavaScript غير مدعوم حالياً.
المحتوى ذو الصلة
- Azure Cosmos DB لدعم بروتوكول Gremlin السلكي
- إنشاء قاعدة بيانات الرسم البياني Azure Cosmos DB والاستعلام عنها واجتيازها باستخدام وحدة تحكم Gremlin