تحسين تكلفة التخزين في Azure Cosmos DB
ينطبق على: NoSQL MongoDB كاساندرا العفريت جدول
يوفر Azure Cosmos DB سعة تخزين ومعدل نقل غير محدود. على عكس معدل النقل، الذي يجب عليك توفيره/تكوينه على حاويات أو قواعد بيانات Azure Cosmos DB، تتم فوترة التخزين استنادا إلى أساس الاستهلاك. تتم محاسبتك فقط على ما تستهلكه من التخزين المنطقي ولا يتعين عليك الاحتفاظ بأي تخزين مسبقاً. يتوسع التخزين تلقائيا صعودا وهبوطا استنادا إلى البيانات التي تضيفها أو تزيلها إلى حاوية Azure Cosmos DB.
تكلفة التخزين
يتم حساب التخزين بوحدة الغيغابايت. يتم استخدام التخزين المحلي المدعوم ب SSD بواسطة البيانات والفهرسة. إجمالي التخزين المستخدم يساوي التخزين المطلوب من البيانات والفهارس المستخدمة في جميع المناطق التي تستخدم فيها Azure Cosmos DB. إذا قمت بنسخ حساب Azure Cosmos DB بشكل عام عبر ثلاث مناطق، فستدفع مقابل إجمالي تكلفة التخزين في كل منطقة من تلك المناطق الثلاث. لتقدير متطلبات التخزين، راجع أداة مخطط السعة. تبلغ تكلفة التخزين في Azure Cosmos DB 0.25 دولار لكل غيغابايت في الشهر، انظر صفحة التسعير للحصول على أحدث التحديثات. يمكنك إعداد التنبيهات لتحديد التخزين المستخدم من قبل حاوية Azure Cosmos DB، لمراقبة التخزين الخاص بك، راجع مقالة مراقبة Azure Cosmos DB).
تحسين التكلفة مع حجم العنصر
يتوقع Azure Cosmos DB أن يكون حجم العنصر 2 ميغابايت أو أقل للحصول على أفضل أداء وفوائد التكلفة. إذا كنت بحاجة إلى أي عنصر لتخزين أكبر من 2 ميغابايت من البيانات، ففكر في إعادة تصميم مخطط العنصر. في حالة نادرة لا يمكنك إعادة تصميم المخطط، يمكنك تقسيم العنصر إلى المواقع الفرعية وربطها منطقياً مع معرف عام (معرف). تعمل جميع ميزات Azure Cosmos DB باستمرار عن طريق التثبيت إلى هذا المعرف المنطقي.
تحسين التكلفة من خلال الفهرسة
بشكل افتراضي، يتم فهرسة البيانات تلقائياً، مما قد يزيد من إجمالي التخزين المستهلك. ومع ذلك، يمكنك تطبيق نهج الفهرس المخصصة لتقليل هذا الحمل. الفهرسة التلقائية التي لم يتم ضبطها من خلال النهج حوالي 10-20٪ من حجم العنصر. من خلال إزالة نهج الفهرس أو تخصيصها، لا تدفع تكلفة إضافية للكتابة ولا تحتاج إلى سعة إنتاجية إضافية. راجع الفهرسة في Azure Cosmos DB لتكوين نهج الفهرسة المخصصة. إذا كنت قد عملت مع قواعد البيانات العلائقية من قبل، قد تعتقد أن "فهرسة كل شيء" يعني مضاعفة التخزين أو أعلى. ومع ذلك، في Azure Cosmos DB، في الحالة المتوسطة، يكون أقل من ذلك بكثير. في Azure Cosmos DB، عادة ما تكون نسبة التخزين الزائدة للمؤشر منخفضة (10-20٪) حتى مع الفهرسة التلقائية، لأنها مصممة لمساحة تخزين منخفضة. من خلال إدارة نهج الفهرسة، يمكنك التحكم في المفاضلة بين بصمة الفهرس وأداء الاستعلام بطريقة أكثر دقة.
تحسين التكلفة مع وقت العمل وتغيير الموجز
بمجرد عدم الحاجة إلى البيانات، يمكنك حذفها بأمان من حساب Azure Cosmos DB الخاص بك باستخدام الوقت للعيش أو تغيير الموجز أو يمكنك ترحيل البيانات القديمة إلى مخزن بيانات آخر مثل تخزين Azure blob أو مستودع بيانات Azure. باستخدام Time to Live أو TTL، يوفر Azure Cosmos DB القدرة على حذف العناصر تلقائياً من الحاوية بعد فترة زمنية معينة. بشكل افتراضي، يمكنك تعيين الوقت للعيش على مستوى الحاوية وتجاوز القيمة على أساس كل عنصر. بعد تعيين TTL على حاوية أو على مستوى عنصر، سيقوم Azure Cosmos DB تلقائياً بإزالة هذه العناصر بعد الفترة الزمنية، منذ آخر تعديل لها. باستخدام تغيير الموجز، يمكنك ترحيل البيانات إلى حاوية أخرى في Azure Cosmos DB أو إلى مخزن بيانات خارجي. يستغرق الترحيل صفر وقت تعطل وعند الانتهاء من الترحيل، يمكنك إما حذف أو تكوين الوقت للعيش لحذف حاوية Azure Cosmos DB المصدر.
تحسين التكلفة باستخدام أنواع بيانات الوسائط الغنية
إذا كنت ترغب في تخزين أنواع الوسائط الغنية، على سبيل المثال، مقاطع الفيديو والصور، وما إلى ذلك، لديك عدد من الخيارات في Azure Cosmos DB. أحد الخيارات هو تخزين أنواع الوسائط الغنية هذه كعناصر Azure Cosmos DB. هناك حد 2 ميغابايت لكل عنصر، ويمكنك تجنب هذا الحد عن طريق ربط عنصر البيانات في عدة المواقع الفرعية. أو يمكنك تخزينها في تخزين Azure Blob واستخدام بيانات التعريف للإشارة إليها من عناصر Azure Cosmos DB. هناك عدد من الإيجابيات والسلبيات مع هذا النهج. الطريقة الأولى تحصل على أفضل أداء من حيث زمن الانتقال، ومعدل النقل اتفاقيات مستوى الخدمة بالإضافة إلى قدرات التوزيع العالمي تسليم المفتاح لنوع بيانات الوسائط الغنية بالإضافة إلى عناصر Azure Cosmos DB العادية. ومع ذلك، فإن الدعم متاح بسعر أعلى. من خلال تخزين الوسائط في تخزين Azure Blob، يمكنك خفض التكاليف الإجمالية. إذا كان زمن الانتقال مهما، يمكنك استخدام التخزين المتميز لملفات الوسائط الغنية المشار إليها من عناصر Azure Cosmos DB. هذا يُدمج أصلاً مع CDN لخدمة الصور من خادم الحافة بتكلفة أقل للتحايل على القيود الجغرافية. الجانب السفلي مع هذا السيناريو هو أن لديك للتعامل مع اثنين من الخدمات - Azure Cosmos DB وAzure Blob storage، والتي قد تزيد من التكاليف التشغيلية.
التحقق من التخزين المستهلك
للتحقق من استهلاك التخزين لحاوية Azure Cosmos DB، يمكنك تشغيل طلب HEAD أو GET على الحاوية، وفحص x-ms-request-quota
العناوين و x-ms-request-usage
. بدلاً من ذلك، عند العمل مع SDK.NET يمكنك استخدام DocumentSizeQuotaو DocumentSizeUsage خصائص الحصول على التخزين المستهلكة.
استخدام SDK
// Measure the item size usage (which includes the index size)
ResourceResponse<DocumentCollection> collectionInfo = await client.ReadDocumentCollectionAsync(UriFactory.CreateDocumentCollectionUri("db", "coll"));
Console.WriteLine("Item size quota: {0}, usage: {1}", collectionInfo.DocumentQuota, collectionInfo.DocumentUsage);
الخطوات التالية
بعد ذلك يمكنك المتابعة لمعرفة المزيد حول تحسين التكلفة في Azure Cosmos DB في المقالات التالية:
- تعرف على المزيد حول التحسين للتطوير والاختبار
- تعرف على المزيد حول فهم فاتورة Azure Cosmos DB
- تعرف على المزيد حول تحسين تكلفة معدل النقل
- تعرف على المزيد حول تحسين تكلفة عمليات القراءة والكتابة
- تعرف على المزيد حول تحسين تكلفة الاستعلامات
- تعرف على المزيد حول تحسين تكلفة حسابات Azure Cosmos DB متعددة المناطق
- هل تحاول القيام بتخطيط السعة للترحيل إلى Azure Cosmos DB؟ يمكنك استخدام معلومات حول نظام مجموعة قاعدة البيانات الموجودة لديك لـ تخطيط السعة.
- في حال كان كل ما تعرفه هو عدد vcores والخوادم في مجموعة قاعدة البيانات الحالية، فاقرأ عن تقدير وحدات الطلب باستخدام vCores أو vCPUs
- إذا كان كل ما تعرفه هو عدد vcores والخوادم الموجودة في مجموعة قاعدة البيانات، اقرأ عن تقدير وحدات الطلب باستخدام vCores أو vCPUs