Request Units في Azure Cosmos DB
ينطبق على: NoSQL MongoDB كاساندرا العفريت جدول
يدعم Azure Cosmos DB العديد من واجهات برمجة التطبيقات، مثل SQL وMongoDB وCassandra وGremlin وTable. كل واجهة من واجهات برمجة التطبيقات لديها مجموعة خاصة بها من عمليات قاعدة البيانات. تتراوح هذه العمليات من القراءة والكتابة النقطية البسيطة إلى الاستعلامات المعقدة. تستهلك كل عملية قاعدة بيانات موارد النظام استناداً إلى تعقيد العملية.
يقوم Azure Cosmos DB بتسوية تكلفة جميع عمليات قاعدة البيانات باستخدام وحدات الطلب (أو وحدات الطلب باختصار) ويقيس التكلفة استنادا إلى معدل النقل (وحدات الطلب في الثانية، وحدات الطلب/ الثانية).
وحدة الطلب هي عملة أداء تستخلص موارد النظام مثل CPU وIOPS والذاكرة المطلوبة لتنفيذ عمليات قاعدة البيانات التي يدعمها Azure Cosmos DB. سواء كانت عملية قاعدة البيانات كتابة أو قراءة نقطة أو استعلام، يتم قياس العمليات دائما في وحدات الطلب. على سبيل المثال، قراءة النقطة (إحضار عنصر واحد بواسطة المعرف وقيمة مفتاح القسم) لعنصر 1 كيلوبايت هي وحدة طلب واحدة (أو وحدة طلب واحدة)، بغض النظر عن واجهة برمجة التطبيقات التي تستخدمها للتفاعل مع حاوية Azure Cosmos DB. يمكنك نمذجة تكاليف معدل النقل باستخدام حاسبة سعة Azure Cosmos DB.
تظهر الصورة التالية فكرة وحدات الطلب عالية المستوى:
لإدارة السعة وتخطيطها، يضمن Azure Cosmos DB أن عدد وحدات RU لعملية قاعدة بيانات معينة عبر مجموعة بيانات معينة محدد. يمكنك فحص عنوان الاستجابة لتعقب عدد وحدات الطلب المستهلكة بواسطة أي عملية قاعدة بيانات. عندما تفهم العوامل التي تؤثر على رسوم RU ومتطلبات معدل النقل للتطبيق الخاص بك، يمكنك تشغيل التطبيق الخاص بك بشكل فعال.
يحدد نوع حساب Azure Cosmos DB الذي تستخدمه طريقة تحصيل رسوم وحدات الطلب المستهلكة. هناك ثلاثة أوضاع يمكنك من خلالها إنشاء حساب:
وضع معدل النقل المتوفر: في هذا الوضع، يمكنك تعيين عدد وحدات الطلب لتطبيقك على أساس كل ثانية بزيادات تبلغ 100 وحدة طلب في الثانية. لتغيير سعة معدل النقل المتوفر للتطبيق الخاص بك، يمكنك زيادة أو إنقاص عدد وحدات الطلب في أي وقت بزيادات أو تناقصات قدرها 100 وحدة طلب. يمكنك إجراء تغييراتك إما برمجياً وإما باستخدام مدخل Azure. تتم محاسبتك على أساس كل ساعة لعدد وحدات الطلب في الثانية التي قمت بتوفيرها. لمعرفة المزيد، راجع مقالة معدل النقل المقدمة.
يمكنك تعيين معدل النقل بنقاوتين متميزتين:
- الحاويات: لمزيد من المعلومات، راجع تعيين معدل النقل إلى حاوية Azure Cosmos DB.
- قواعد البيانات: لمزيد من المعلومات، راجع تعيين معدل النقل إلى قاعدة بيانات Azure Cosmos DB.
وضع بلا خادم: في هذا الوضع، لا يتعين عليك تعيين أي معدل نقل عند إنشاء موارد في حساب Azure Cosmos DB الخاص بك. في نهاية فترة الفوترة، تتم محاسبتك على عدد وحدات الطلب التي تستهلكها عمليات قاعدة البيانات. لمعرفة المزيد، راجع مقالة معدل النقل بلا خادم.
وضع التحجيم التلقائي: في هذا الوضع، يمكنك تغيير حجم معدل النقل (RU/s) لقاعدة البيانات أو الحاوية تلقائيا وعلى الفور بناء على استخدامها. لا تؤثر عملية التحجيم هذه على توفر حمل العمل أو زمن الانتقال أو معدل النقل أو أدائه. هذا الوضع مناسب تماماً لأحمال العمل ذات المهام الحرجة التي لها أنماط نسبة استخدام شبكة متغيرة أو غير متوقعة وتتطلب اتفاقيات على مستوى الخدمة على مستوى عالٍ من الأداء والحجم. لمعرفة المزيد، راجع مقالة سرعة النقل للتدرج التلقائي.
اعتبارات وحدات الطلب
أثناء تقدير عدد وحدات RUs المستهلكة من قبل عبء العمل الخاص بك، خذ بعين الاعتبار العوامل التالية:
حجم العنصر: عند زيادة حجم العنصر، يزداد أيضاً عدد وحدات الطلب المستهلكة في قراءة العنصر أو كتابته.
فهرسة العنصر: تحدث فهرسة العنصر تلقائياً وافتراضياً. يُستهلك عدد أقل من وحدات الطلب إذا اخترت عدم فهرسة بعض عناصرك في حاوية.
عدد خصائص العنصر: لنفترض أن الفهرسة الافتراضية موجودة في جميع الخصائص، يزداد عدد وحدات الطلب المستهلكة في كتابة عنصر ما كلما يزداد عدد خصائص العنصر.
الخصائص المفهرسة: تحدد سياسة الفهرسة الخصائص المفهرسة لجميع الحاويات افتراضياً. للحد من استهلاك وحدات الطلب في عمليات الكتابة، حدد عدد الخصائص المفهرسة.
تناسق البيانات:تستهلك مستويات تناسق الثبات القوية والمحدودة حوالي ضعف وحدات RUs أثناء إجراء عمليات القراءة بالمقارنة مع مستويات الاتساق المريحة الأخرى.
نوع القراءات: تكلفة قراءات النقاط أقل من وحدات الطلب من الاستعلامات.
أنماط الاستعلام: يؤثر تعقيد الاستعلام على عدد وحدات الطلب المستهلكة في عملية ما. تشمل العوامل المؤثرة على تكلفة عمليات الاستعلام ما يلي:
- عدد نتائج الاستعلام
- عدد التنبؤات
- طبيعة التنبؤات
- عدد الدوال المُعرفة للمستخدم
- حجم بيانات المصدر
- حجم مجموعة النتائج
- التوقعات
يكلف الاستعلام نفسه على نفس البيانات دائما نفس عدد وحدات الطلب على عمليات التنفيذ المتكررة.
استخدام البرنامج النصي: كما هو الحال مع الاستعلامات، تستهلك الإجراءات المخزنة والمشغلات وحدات RUs استنادا إلى تعقيد العمليات التي يتم تنفيذها. عند تطوير طلبك، افحص رأس تكلفة الطلب لتفهم مقدار استهلاك القدرة الإنتاجية لوحدات الطلب الخاصة بكل عملية فهماً جيداً.
Request Units ومناطق متعددة
إذا قمت بتعيين وحدات RUs 'R' على حاوية Azure Cosmos DB (أو قاعدة بيانات)، يضمن Azure Cosmos DB توفر وحدات RUs 'R' في كل منطقة مقترنة بحساب Azure Cosmos DB الخاص بك. لا يمكنك تعيين وحدات RUs بشكل انتقائي إلى منطقة معينة. يتم توفير وحدات الطلب المتوفرة على حاوية Azure Cosmos DB (أو قاعدة بيانات) في جميع المناطق المقترنة بحساب Azure Cosmos DB الخاص بك.
بافتراض تكوين حاوية Azure Cosmos DB باستخدام وحدات RUs "R" وأن هناك مناطق "N" مقترنة بحساب Azure Cosmos DB، فإن إجمالي وحدات الطلب المتوفرة عالميا على الحاوية = R x N.
اختيار نموذج الاتساق يؤثر أيضا على معدل النقل. يمكنك الحصول على معدل نقل قراءة 2x تقريبا لمستوات التناسق الأكثر استرخاء (الجلسة وبادئة متسقة * والتناسق النهائي ) مقارنة بمستويات التناسق الأقوى (التناسق المقيد أو التناسق القوي ).