مقدمة إلى معدل النقل الذي تم تكوين إعدادات تشغيل الخدمة له في Azure Cosmos DB
ينطبق على: NoSQL MongoDB كاساندرا العفريت جدول
تسمح لك قاعدة بيانات Azure Cosmos بتعيين معدل نقل البنود على قواعد البيانات والحاويات. هناك نوعان من معدلات نقل البنود، قياسي (يدوي) أو تحجيم تلقائي. تعطي هذه المقالة نظرة عامة حول كيفية عمل معدل النقل المخصص.
قاعدة بيانات Azure Cosmos DB هي وحدة إدارة لمجموعة من الحاويات. تتكون قاعدة البيانات من مجموعة من حاويات قواعد بيانات المخطط المنطقي. حاوية Azure Cosmos DB هي وحدة قابلية التوسع لكل من الإنتاجية والتخزين. يتم تقسيم الحاوية أفقيا عبر مجموعة من الأجهزة داخل منطقة Azure ويتم توزيعها عبر جميع مناطق Azure المقترنة بحساب Azure Cosmos DB الخاص بك.
يمكنك إجراء عملية النقل المخصص عند درجتي نقاوة باستخدام قاعدة بيانات Azure Cosmos:
- حاويات Azure Cosmos DB
- قواعد بيانات Azure Cosmos DB
تعيين معدل النقل على حاوية
يتم حجز معدل النقل المتوفر على حاوية Azure Cosmos DB حصريا لتلك الحاوية. تتلقى الحاوية معدل النقل الذي تم توفيره طوال الوقت. يتم تقديم الدعم المادي لمعدلات النقل التي تم توفيرها على الحاوية من الاتفاقيات على مستوى الخدمة. لمعرفة كيفية تكوين معدل النقل القياسي (اليدوي) على حاوية، راجع توفير معدل النقل على حاوية Azure Cosmos DB. لمعرفة كيفية تكوين معدل نقل التحجيم التلقائي على حاوية، راجع توفير معدل نقل التحجيم التلقائي.
إن إعداد معدل النقل الذي تم توفيره على الحاوية هو الخيار الأكثر استخدامًا. يمكنك تغيير سعة معدل النقل للحاوية بمرونة عن طريق توفير أي مقدار من معدل النقل باستخدام وحدات الطلب (RUs).
يُوزع معدل النقل المخصص للحاوية بالتساوي بين الأقسام الفعلية، وبافتراض مفتاح قسم جيد يقوم بتوزيع الأقسام المنطقية بالتساوي بين الأقسام الفعلية، يتم توزيع معدل النقل أيضًا بالتساوي عبر كافة الأقسام المنطقية للحاوية. لا يمكنك تحديد معدل النقل للأقسام المنطقية بشكل انتقائي. تنتمي الأقسام الفعلية خصيصاً إلى الحاوية وتدعم معدل النقل المخصص للحاوية نظراً لأنه يتم استضافة قسم منطقي واحد أو أكثر من الحاوية بواسطة قسم فعلي.
من الممكن أن تكون عملياتك ذات معدل محدود إذا كان حمل العمل قيد التشغيل على قسم منطقي يستهلك أكثر من الإنتاجية التي تم تخصيصها إلى القسم الفعلي الأساسي. يحدث ما يعرف بالقسم الساخن عندما يحتوي قسم منطقي واحد على طلبات أكثر بشكل غير متناسب من قيم مفتاح القسم الأخرى.
يمكنك إما زيادة معدل النقل المخصص للحاوية بأكملها أو إعادة محاولة العمليات عند حدوث إجراء الحد من السرعة. يجب عليك أيضاً التأكد من اختيار مفتاح قسم يعمل على توزيع موقع التخزين وطلب وحدة التخزين بالتساوي. راجع التقسيم والتحجيم الأفقي في قاعدة بياناتAzure Cosmos لمزيد من المعلومات حول التقسيم.
نوصي بتكوين معدل النقل عند نقاوة الحاوية إذا أردت أداء متوقع للحاوية.
توضح الصورة التالية كيفية استضافة قسم فعلي لأقسام منطقية أو أكثر للحاوية:
تعيين الإنتاجية على قاعدة البيانات
عند توفير معدل النقل على قاعدة بيانات Azure Cosmos DB، تتم مشاركة معدل النقل عبر جميع الحاويات (تسمى حاويات قاعدة البيانات المشتركة) في قاعدة البيانات. هناك استثناء إذا قُمت بتحديد إنتاجية مقدمة في حاويات مُعينة في قاعدة البيانات. تتطابق مشاركة معدل النقل المخصص على مستوى قاعدة البيانات بين الحاويات مع استضافة قاعدة بيانات على مجموعة من الأجهزة. نظرا لأن جميع الحاويات داخل قاعدة البيانات تشترك في الموارد المتوفرة على الجهاز، فإنك لا تحصل بشكل طبيعي على أداء يمكن التنبؤ به على أي حاوية معينة. لمعرفة كيفية تكوين معدل النقل المقدم على قاعدة بيانات، راجع تكوين معدل النقل المقدم على قاعدة بيانات Azure Cosmos DB. راجع معدل النقل المخصص للتحجيم التلقائي لمعرفة كيفية تكوين معدل النقل للتحجيم التلقائي على قاعدة البيانات.
لا توفر قاعدة بيانات Azure Cosmos أي ضمانات يمكن التنبؤ بها عن معدل النقل لحاوية معينة في قاعدة البيانات تلك، وذلك لأن كافة الحاويات داخل قاعدة البيانات الواحدة تتشارك معدل النقل المخصص. يعتمد جزء معدل النقل الذي يمكن أن تتلقاه حاوية معينة على:
- عدد الحاويات.
- اختيار مفاتيح التقسيم لمختلف الحاويات.
- توزيع حمل العمل عبر أقسام منطقية مختلفة للحاويات.
نوصي بتكوين معدل النقل على قاعدة بيانات عندما تريد مشاركته عبر حاويات متعددة، ولكنك لا تريد تخصيص معدل النقل إلى أي حاوية معينة.
توضح الأمثلة التالية المكان حيث يُفضل توفير معدل النقل على مستوى قاعدة البيانات:
تُفيد مشاركة معدل النقل المخصص لقاعدة بيانات عبر مجموعة من الحاويات التطبيق متعدد الاتينات. يمكن تمثيل كل مستخدم بحاوية Azure Cosmos DB مميزة.
تفيد مشاركة معدل النقل المخصص لقاعدة البيانات عبر مجموعة من الحاويات عند ترحيل قاعدة بيانات غير علائقية مثل MongoDB أو Cassandra، المُستضافة على مجموعة من الأجهزة الظاهرية أو من الخوادم الفعلية المحلية إلى قاعدة بياناتAzure Cosmos. فكر في معدل النقل المقدم الذي تم تكوينه على قاعدة بيانات Azure Cosmos DB كمكافئ منطقي، ولكنه أكثر فعالية من حيث التكلفة ومرونة، إلى سعة الحوسبة لمجموعة MongoDB أو Cassandra.
يجب إنشاء كافة الحاويات المُنشأة داخل قاعدة بيانات ذات معدل نقل مخصص باستخدام مفتاح القسم. في أي نقطة معينة في الوقت المناسب، يتم توزيع معدل النقل المخصص لحاوية داخل قاعدة البيانات عبر كافة الأقسام المنطقية لتلك الحاوية. عندما تتشارك الحاويات في معدل النقل المخصص المُكوّن على قاعدة البيانات، لا يمكنك تطبيق معدل النقل بشكل انتقائي إلى حاوية معينة أو قسم منطقي.
تكون عملياتك محدودة السرعة إذا كان حجم العمل على قسم منطقي يستهلك أكثر من الإنتاجية التي تم تخصيصها لقسم منطقي معين. يمكنك إما زيادة معدل النقل لقاعدة البيانات بأكملها أو إعادة محاولة العمليات عندما يحدث تحديد السرعة. راجع الأقسام المنطقية، للحصول على مزيد من المعلومات حول الأقسام.
تشترك الحاويات ضمن قاعدة بيانات نقل مشتركة في معدلات النقل (وحدة الطلب/ث) المخصصة لتلك القاعدة. يمكنك الحصول على ما يصل إلى 25 حاوية بحد أدنى 400 وحدة طلب/ث على قاعدة البيانات مع معدل النقل القياسي (اليدوي) المخصص. يمكنك الحصول على ما يصل إلى 25 حاوية في قاعدة بيانات ذات تحجيم تلقائي بحد أدنى 1000 وحدة طلب/ث (المقاييس بين 100 - 1000 وحدة طلب/ث) مع معدل النقل المخصص للتحجيم التلقائي.
إشعار
في فبراير 2020، أدخلنا تغييراً يسمح لك بالحصول على 25 حاوية كحد أقصى في قاعدة بيانات نقل بيانات مشتركة؛ ما يتيح مشاركة معدل النقل بشكل أفضل عبر الحاويات. يمكنك إضافة حاويات أكثر إلى قاعدة البيانات فقط إذا تم تزويدها بمعدل النقل المخصص بعد الحاويات الخمس والعشرين الأولى، والمنفصلة عن معدل النقل المشترك لقاعدة البيانات.
إذا كان حساب Azure Cosmos DB الخاص بك يحتوي بالفعل على قاعدة بيانات نقل مشتركة مع >= 25 حاوية، فسيتم استثناء الحساب وجميع الحسابات الأخرى في نفس اشتراك Azure من هذا التغيير. يرجى الاتصال بدعم المنتج إذا كان لديك ملاحظات أو أسئلة.
إذا كانت أحمال العمل تتضمن حذف وإعادة إنشاء كافة المجموعات في قاعدة بيانات، فمن المستحسن إسقاط قاعدة البيانات الفارغة وإعادة إنشاء قاعدة بيانات جديدة قبل إنشاء المجموعة. توضح الصورة التالية كيف يمكن أن يستضيف قسم فعلي قسماً منطقياً واحداً أو أكثر ينتمي إلى حاويات مختلفة داخل قاعدة البيانات:
تعيين معدل النقل على قاعدة بيانات وحاوية
يمكنك الجمع بين النموذجين. يُسمح بتوفير معدل النقل على كل من قاعدة البيانات والحاوية. يوضح المثال التالي كيفية توفير معدل النقل القياسي (اليدوي) المقدم على قاعدة بيانات Azure Cosmos DB وحاوية:
يمكنك إنشاء قاعدة بيانات Azure Cosmos DB تسمى Z مع معدل النقل القياسي (اليدوي) المقدم من وحدات الطلب "K".
بعد ذلك، أنشئ خمس حاويات تسمى Aو Bو Cو Dو E داخل قاعدة البيانات. عند إنشاء الحاوية B، تأكد من تمكين معدل النقل المخصص لتوفير خيار هذه الحاوية وتكوين وحدات الطلب "P" بشكل صريح من معدل النقل المقدم على هذه الحاوية. يمكنك تكوين معدل النقل المشترك والمخصص فقط عند إنشاء قاعدة البيانات والحاوية.
تتم مشاركة معدل النقل "K" RU/s عبر الحاويات الأربعة A وC وD وE. يختلف المقدار الدقيق لمعدل النقل المتوفر ل A أو C أو D أو E. لا توجد اتفاقيات على مستوى الخدمة لمعدلات نقل كل حاوية على حدة.
يتم ضمان الحاوية المسماة B للحصول على معدل نقل RU/s "P" طوال الوقت. تدعمها الاتفاقيات على مستوى الخدمة.
إشعار
لا يمكن تحويل حاوية ذات معدل نقل مُخصص إلى حاوية قاعدة بيانات مشتركة. وعلى العكس من ذلك، لا يمكن تحويل حاوية قاعدة بيانات مشتركة إلى حاوية نقل مخصصة. ستحتاج إلى نقل البيانات إلى حاوية مع إعداد معدل النقل المطلوب. (تساعد مهام نسخ الحاوية ل NoSQL وMongoDB وCassandra APIs في هذه العملية.)
تحديث معدل النقل على قاعدة بيانات أو حاوية
بعد إنشاء حاوية Azure Cosmos DB أو قاعدة بيانات، يمكنك تحديث معدل النقل المقدم. لا يوجد حد أقصى لمعدل النقل المقدم الذي يمكنك تكوينه على قاعدة البيانات أو الحاوية.
معدل النقل الحالي المقدم
يمكنك استرداد معدل النقل المخصص للحاوية أو قاعدة البيانات في مدخل Azure أو باستخدام عدة تطوير البرامج:
- Container.ReadThroughputAsync على عدة تطوير البرامج.NET.
- CosmosContainer.readThroughput على عدة تطوير البرامج Java.
تحتوي استجابة هذه الأساليب أيضاً على الحد الأدنى من معدل النقل المخصص للحاوية أو قاعدة البيانات:
- ThroughputResponse.MinThroughput على عدة تطوير البرامج .NET .
- ThroughputResponse.MinThroughput على عدة تطوير البرامج Java.
قد يختلف الحد الأدنى الفعلي لوحدة الطلب/ الثانية اعتمادا على تكوين حسابك. لمزيد من المعلومات، راجع الأسئلة المتداولة حول التحجيم التلقائي.
تغيير معدل النقل المخصص
يمكنك قياس معدل النقل المخصص لحاوية أو قاعدة بيانات من خلال مدخل Azure أو باستخدام عدة تطوير البرامج:
- Container.ReplaceThroughputAsync على عدة تطوير البرامج .NET.
- CosmosContainer.replaceThroughput على عدة تطوير البرامج Java.
إذا كنت تقلل من معدل النقل المقدم، فستتمكن من القيام بذلك حتى الحد الأدنى.
إذا كنت تقوم بزيادة معدل النقل المقدم، في معظم الأحيان، تكون العملية فورية. ومع ذلك، هناك حالات حيث يمكن أن تستغرق العملية وقتاً أطول بسبب مهام النظام لتوفير الموارد المطلوبة. في هذه الحالة، تؤدي محاولة تعديل معدل النقل المقدم أثناء هذه العملية قيد التقدم إلى استجابة HTTP 423 مع رسالة خطأ توضح أن عملية تحجيم أخرى قيد التقدم.
اعرف المزيد في مقال أفضل الممارسات لمعدل النقل المخصص للتحجيم (وحدة الطلب/ث).
إشعار
إذا كنت تخطط لحمل عمل استيعاب كبير جداً يتطلب زيادة كبيرة في معدل النقل المخصص، ضع في اعتبارك أن عملية التحجيم ليس لها اتفاقية على مستوى الخدمة، وكما هو مذكور في الفقرة السابقة، قد يستغرق الأمر وقتاً طويلاً عندما تكون الزيادة كبيرة. ربما تحتاج إلى التخطيط مسبقاً وبدء التحجيم قبل بدء حمل العمل واستخدام الأساليب التالية للتحقق من التقدم.
يمكنك التحقق برمجياً من تقدم التحجيم عن طريق قراءة معدل النقل المخصص الحالي واستخدام:
- ThroughputResponse.IsReplacePending على عدة تطوير البرامج.NET.
- ThroughputResponse.isReplacePending() على عدة تطوير البرامج.Java.
يمكنك استخدام مقاييس Azure Monitor لعرض معدل النقل المخصص (وحدة طلب/ث) والتخزين على مورد.
مقارنة النماذج
يعرض هذا الجدول مقارنة بين تخصيص معدل النقل القياسي (اليدوي) على قاعدة بيانات مقابل تخصيصه على الحاوية.
المعلمة | معدل النقل القياسي (اليدوي) على قاعدة بيانات | معدل النقل القياسي (اليدوي) على الحاوية | معدل النقل للتحجيم التلقائي على قاعدة بيانات | معدل النقل للتحجيم التلقائي على الحاوية |
---|---|---|---|---|
نقطة الإدخال (الحد الأدنى من وحدات الطلب لكل ثانية) | 400 وحدة طلب/ثانية. يمكن أن تحتوي على ما يصل إلى 25 حاوية بدون الحد الأدنى من وحدات الطلب/الثانية لكل حاوية. | 400 | التحجيم التلقائي بين 100 - 1000 وحدة طلب/ث. يمكن أن تحتوي على ما يصل إلى 25 حاوية بدون الحد الأدنى من وحدات الطلب/الثانية لكل حاوية. | التحجيم التلقائي بين 100 - 1000 وحدة طلب/ث. |
الحد الأدنى من وحدات الطلب/الثانية لكل حاوية | -- | 400 | -- | التحجيم التلقائي بين 100 - 1000 وحدة طلب/ث |
الحد الأقصى لوحدات الطلب | غير محدود، على قاعدة البيانات. | غير محدود، على الحاوية. | غير محدود، على قاعدة البيانات. | غير محدود، على الحاوية. |
وحدات الطلب المُعيّنة أو المتوفرة لحاوية معينة | لا توجد ضمانات. تعتمد وحدات الطلب المُعيّنة لحاوية مُحددة على الخصائص. يمكن أن تكون الخصائص اختيار مفاتيح قسم الحاويات التي تشترك في معدل النقل وتوزيع حمل العمل وعدد الحاويات. | كافة وحدات الطلب المُكوّنة على الحاوية محجوزة بشكل خاص للحاوية. | لا توجد ضمانات. تعتمد وحدات الطلب المُعيّنة لحاوية مُحددة على الخصائص. يمكن أن تكون الخصائص اختيار مفاتيح قسم الحاويات التي تشترك في معدل النقل وتوزيع حمل العمل وعدد الحاويات. | كافة وحدات الطلب المُكوّنة على الحاوية محجوزة بشكل خاص للحاوية. |
الحد الأقصى لتخزين حاوية | غير محدود. | غير محدود | غير محدود | غير محدود |
الحد الأقصى لمعدل النقل لكل قسم منطقي من الحاوية | عشرة آلاف وحدة طلب/ثانية | عشرة آلاف وحدة طلب/ثانية | عشرة آلاف وحدة طلب/ثانية | عشرة آلاف وحدة طلب/ثانية |
الحد الأقصى للتخزين (البيانات + الفهرس) لكل قسم منطقي من الحاوية | 20 غيغابايت | 20 غيغابايت | 20 غيغابايت | 20 غيغابايت |
الخطوات التالية
- تعرف على المزيد عن الأقسام المنطقية.
- تعرف على كيفية توفير قياسي (يدوي) على حاوية Azure Cosmos DB.
- تعرف على كيفية توفير معدل النقل القياسي (اليدوي) على قاعدة بيانات Azure Cosmos DB.
- تعرف على كيفية توفير معدل نقل التحجيم التلقائي على قاعدة بيانات أو حاوية Azure Cosmos DB.
- هل تحاول القيام بتخطيط السعة للترحيل إلى Azure Cosmos DB؟ يمكنك استخدام معلومات حول نظام مجموعة قاعدة البيانات الموجودة لديك لـ تخطيط السعة.
- في حال كان كل ما تعرفه هو عدد vcores والخوادم في مجموعة قاعدة البيانات الحالية، فاقرأ عن تقدير وحدات الطلب باستخدام vCores أو vCPUs
- إذا كان كل ما تعرفه هو عدد vcores والخوادم الموجودة في مجموعة قاعدة البيانات، اقرأ عن تقدير وحدات الطلب باستخدام vCores أو vCPUs