مراجعة Azure Well-Architected Framework - Azure Cosmos DB ل NoSQL
توضح هذه المقالة أفضل الممارسات ل Azure Cosmos DB ل NoSQL. تضمن أفضل الممارسات هذه أنه يمكنك نشر حلول على Azure Cosmos DB فعالة وموثوقة وآمنة ومحسنة للتكلفة وممتيعة من الناحية التشغيلية. يركز هذا التوجيه على الركائز الخمس لتميز البنية في إطار عمل جيد التصميم:
يفترض دليل المراجعة هذا أن لديك معرفة عملية ب Azure Cosmos DB وأنك على دراية جيدة بميزاته. لمزيد من المعلومات، راجع Azure Cosmos DB ل NoSQL.
المتطلبات الأساسية
يمكن أن يساعد فهم ركائز Well-Architected Framework في إنتاج بنية سحابية عالية الجودة ومستقرة وفعالة. نوصي بالبدء بمراجعة حمل العمل باستخدام تقييم Azure Well-Architected Framework Review.
لمزيد من السياق، راجع البنيات المرجعية المختلفة التي تعكس الاعتبارات من هذا الدليل في تصميمها. تتضمن هذه البنيات، على سبيل المثال لا الحصر:
- التطبيقات الموزعة عالميا ذات المهام الحرجة باستخدام Azure Cosmos DB
- تطبيقات بلا خادم باستخدام Azure Cosmos DB
- تطبيق ويب متعدد المناطق مع النسخ المتماثل ل Azure Cosmos DB
الموثوقية
كما هو الحال مع أي خدمة سحابية، يمكن أن تحدث حالات فشل على جانب الخدمة وعبء العمل. من المستحيل منع جميع حالات الفشل المحتملة، ولكن من الأفضل تقليل التأثيرات التي يمكن أن يحدثها مكون واحد فاشل على حمل العمل بأكمله. يتضمن هذا القسم اعتبارات وتوصيات لتقليل عواقب الفشل لمرة واحدة.
قائمة مراجعة التصميم
- ضع في اعتبارك كيف يؤثر مستوى التناسق المحدد ووضع النسخ المتماثل على هدف نقطة الاسترداد (RPO) في انقطاع على مستوى المنطقة.
- صمم نشر حساب قاعدة البيانات بحيث يمتد عبر منطقتين على الأقل في Azure. بالإضافة إلى ذلك، وزع حسابك عبر مناطق توفر متعددة عند تقديمه داخل منطقة Azure.
- تقييم استراتيجيات الكتابة متعددة المناطق والمنطقة الواحدة لحمل العمل الخاص بك. للكتابة في منطقة واحدة، قم بتصميم حمل العمل الخاص بك للحصول على منطقة قراءة ثانية على الأقل لتجاوز الفشل. تمكين تجاوز الفشل التلقائي لسيناريوهات الكتابة في منطقة واحدة والقراءة متعددة المناطق. للكتابة متعددة المناطق، قارن المقايضات في التعقيد والاتساق بمزايا الكتابة إلى مناطق متعددة. راجع التوقعات أثناء الانقطاع الإقليمي لحسابات الكتابة أحادية المنطقة ومتعددة المناطق.
- تمكين تجاوز الفشل المدار بواسطة الخدمة لحسابك.
- تصميم اختبار شامل لقابلية الوصول العالية لتطبيقك.
- استعرض عمليات النسخ الاحتياطي الشائعة بما في ذلك، على سبيل المثال لا الحصر؛ الاستعادة في نقطة زمنية، والتعافي من العمليات المدمرة العرضية، واستعادة الموارد المحذوفة، والاستعادة إلى منطقة أخرى في نقطة زمنية. تكوين الحساب مع النسخ الاحتياطي المستمر، واختيار فترة الاستبقاء المناسبة بناء على متطلبات عملك.
- استكشف دليل تصميم التطبيقات المرنة، وراجع نهج إعادة المحاولة الافتراضية ل SDKs، واخطط لمعالجة مخصصة لأخطاء عابرة معينة. ستعطي هذه الدلائل أفضل الممارسات لجعل التعليمات البرمجية للتطبيق مرنة للأخطاء العابرة.
التوصيات
التوصية | الميزة |
---|---|
توزيع حساب Azure Cosmos DB عبر مناطق التوفر (عند توفره). | توفر مناطق التوفر طاقة وشبكة وتبريد متميزة لعزل فشل الأجهزة إلى مجموعة فرعية من النسخ المتماثلة. يحتوي Azure Cosmos DB على نسخ متماثلة متعددة تمتد عبر منطقة توفر عشوائية واحدة عند عدم استخدام ميزة مناطق التوفر. إذا تم استخدام ميزة منطقة التوفر، تمتد النسخ المتماثلة عبر مناطق توفر متعددة. |
قم بتكوين حساب Azure Cosmos DB الخاص بك ليشمل منطقتين على الأقل. | يؤدي توسيع مناطق متعددة إلى منع حسابك من أن يكون غير متوفر بالكامل إذا كان هناك انقطاع في المنطقة معزولة. |
تمكين تجاوز الفشل المدار بواسطة الخدمة لحسابك. | يسمح تجاوز الفشل المدار بواسطة الخدمة ل Azure Cosmos DB بتغيير منطقة الكتابة لحساب متعدد المناطق للحفاظ على التوفر. يحدث هذا التغيير دون تفاعل المستخدم. فهم المقايضات مع تجاوز الفشل المدار بواسطة الخدمة والتخطيط لتجاوز الفشل القسري إذا لزم الأمر. لمزيد من المعلومات، راجع إنشاء تطبيقات عالية التوفر. |
تحقق من التوفر عن طريق اختبار تجاوز الفشل يدويا مع تعطيل تجاوز الفشل المدار بواسطة الخدمة مؤقتا. | يسمح لك تعطيل تجاوز الفشل لإدارة الخدمة مؤقتا بالتحقق من صحة قابلية الوصول العالية من طرف إلى طرف لتطبيقك باستخدام تجاوز الفشل اليدوي الذي بدأ باستخدام برنامج نصي أو مدخل Microsoft Azure. بعد ذلك، يمكنك إعادة تمكين تجاوز الفشل المدار بواسطة الخدمة. |
تعريفات نهج Azure
- النهج: يتطلب منطقتين على الأقل
- النهج: تمكين تجاوز الفشل المدار بواسطة الخدمة
- النهج: طلب مناطق توزيع محددة
الأمان
يعد الأمان جزءا مهما من أي بنية يمكن تجاهلها بسهولة للراحة. تعزيز أمان حمل العمل النهائي من خلال النظر في أفضل ممارسات الأمان المختلفة مقدما قبل إنشاء المورد الأول أو إثبات المفهوم. يتضمن هذا القسم اعتبارات وتوصيات لتقليل عدد الثغرات الأمنية لحمل العمل النهائي.
قائمة مراجعة التصميم
- تقليل منطقة الهجوم السطحي عن طريق التصميم لاستخدام نقاط النهاية الخاصة وفقا لأساس الأمان ل Azure Cosmos DB.
- إنشاء أدوار ومجموعات وتعيينات للوصول إلى مستوى التحكم ومستوى البيانات إلى حسابك وفقا لمبدأ الوصول الأقل امتيازا. ضع في اعتبارك تعطيل المصادقة المستندة إلى المفتاح.
- تقييم التوافقوالشهادات على مستوى الخدمة في سياق متطلبات البيانات الشخصية العالمية الحالية.
- تشفير البيانات الثابتة أو قيد الحركة باستخدام مفاتيح مدارة بواسطة الخدمة أو مفاتيح يديرها العميل (CMKs).
- تدقيق وصول المستخدم وخروقات الأمان وعمليات الموارد باستخدام سجلات وحدة التحكم.
- مراقبة خروج البيانات وتغييرات البيانات والاستخدام وا زمن الانتقال باستخدام مقاييس مستوى البيانات.
التوصيات
التوصية | الميزة |
---|---|
تنفيذ أساسات أمان حماية البيانات وإدارة الهوية كحد أدنى. | انتقل إلى أساس الأمان بما في ذلك إدارة الهويةوحماية البيانات. تنفيذ التوصيات لتأمين حساب Azure Cosmos DB الخاص بك. |
تعطيل نقاط النهاية العامة واستخدام نقاط النهاية الخاصة كلما أمكن ذلك. | تجنب ترك نقاط النهاية العامة غير الضرورية أو غير المستخدمة متاحة لهجمات المساحة السطحية لحسابك. |
استخدم التحكم في الوصول المستند إلى الدور للحد من وصول وحدة التحكم إلى هويات ومجموعات محددة وضمن نطاق التعيينات المحددة جيدا. | استخدم التحكم في الوصول المستند إلى الدور لمنع الوصول غير المقصود إلى حسابك. تعيين الأدوار والأذونات المناسبة للمستخدمين أو التطبيقات التي تصل إلى Azure Cosmos DB. |
إنشاء نقاط نهاية وقواعد الشبكة الظاهرية للحد من الوصول إلى الحساب. | تنفيذ نقاط نهاية خدمة الشبكة الظاهرية وقواعد جدار الحماية لتقييد الوصول إلى حساب Azure Cosmos DB الخاص بك. استخدم مجموعات أمان الشبكة (NSGs) للتحكم في نسبة استخدام الشبكة الواردة والصادرة من وإلى موارد Azure Cosmos DB. يساعد تقييد الوصول إلى الشبكات الموثوق بها وتطبيق تدابير أمان الشبكة المناسبة على حماية بياناتك من الوصول غير المصرح به. |
اتبع أفضل ممارسات تطوير البرامج للوصول الآمن إلى البيانات. | اتبع ممارسات الترميز الآمنة وقم بإجراء مراجعات تعليمات برمجية آمنة عند تطوير التطبيقات التي تتفاعل مع Azure Cosmos DB. الحماية من الثغرات الأمنية الشائعة مثل هجمات الحقن أو البرمجة النصية عبر المواقع (XSS) أو مراجع الكائنات المباشرة غير الآمنة (IDOR). تنفيذ التحقق من صحة الإدخال والاستعلامات ذات المعلمات ومعالجة الأخطاء المناسبة برموز حالة HTTP الشائعة لمنع مخاطر الأمان. |
مراقبة سجلات وحدة التحكم للاختراقات. | تساعدك المراقبة على تعقب أنماط الوصول وسجلات التدقيق، مما يضمن بقاء قاعدة البيانات آمنة ومتوافقة مع لوائح حماية البيانات ذات الصلة. يمكن أن تساعد مراقبة مقاييس مستوى البيانات أيضا في تحديد الأنماط غير المألوفة التي قد تكشف عن خرق أمني. لمزيد من المعلومات، راجع قائمة التحقق من الأمان لقواعد بيانات Azure. |
تمكين Microsoft Defender لـ Azure Cosmos DB | يكتشف Microsoft Defender محاولات استغلال قواعد البيانات في حساب Azure Cosmos DB ل NoSQL. يكتشف Defender حقن SQL المحتملة وأنماط الوصول المشبوهة والاستغلال المحتمل الآخر. |
تعريفات نهج Azure
- النهج: تمكين Microsoft Defender
- النهج: طلب نقطة نهاية خدمة شبكة ظاهرية
- النهج: تعطيل المصادقة المحلية
- النهج: طلب قواعد جدار الحماية
تحسين التكلفة
يمكن أن تؤثر خصائص حمل العمل وتنفيذ الحل الخاص بك على التكلفة النهائية للتشغيل في Azure. ضع في اعتبارك برامج التشغيل الرئيسية مثل استراتيجية التقسيم ومستوى التناسق والنسخ المتماثل ونوع الكتابة عند تصميم حمل العمل الخاص بك. عند تغيير حجم حمل العمل، ضع في اعتبارك طبيعة القراءة/الكتابة لبياناتك وحجم متوسط العناصر والتسوية وTL. يتضمن هذا القسم اعتبارات وتوصيات لتبسيط تكاليف حمل العمل الخاص بك.
- تصميم نهج فهرسة يأخذ في الاعتبار العمليات والاستعلامات التي تقوم بها عادة في حمل العمل الخاص بك.
- حدد مفتاح قسم أو مجموعة من مفاتيح الأقسام التي لها قيمة ذات علاقة أساسية عالية ولا تتغير. استخدم الإرشادات الحالية وأفضل الممارسات للمساعدة في تحديد مفتاح قسم مناسب. ضع في اعتبارك أيضا نهج الفهرسة عند تحديد مفتاح قسم.
- حدد مخطط تخصيص معدل النقل المناسب لحمل العمل الخاص بك. راجع فوائد معدل النقل القياسي والتحجيم التلقائي الموزع على مستوى قاعدة البيانات أو الحاوية. أيضا، ضع في اعتبارك بلا خادم عند الاقتضاء. راجع أنماط حركة مرور حمل العمل في سياق تحديد نظام تخصيص معدل النقل.
- ضع في اعتبارك مستويات التناسق من حيث صلتها بعبء العمل الخاص بك. ضع في اعتبارك أيضا ما إذا كان يجب أن تغير جلسات عمل العميل مستوى التناسق الافتراضي.
- حساب تخزين البيانات الإجمالي المتوقع لحمل العمل الخاص بك. يؤثر حجم العناصر والفهارس جميعها على تكلفة تخزين البيانات. تكلس تأثير النسخ المتماثل والنسخ الاحتياطي على تكاليف التخزين.
- إنشاء استراتيجية لإزالة العناصر القديمة التي لم تعد مستخدمة أو ضرورية تلقائيا. إذا لزم الأمر، قم بتصدير هذه العناصر إلى حل تخزين أقل تكلفة قبل إزالتها.
- قم بتقييم الاستعلامات الأكثر شيوعا التي تقلل من عمليات البحث عبر الأقسام. استخدم هذه المعلومات لإبلاغ عملية تحديد مفتاح قسم أو تخصيص نهج فهرسة.
التوصيات
التوصية | الميزة |
---|---|
مراقبة استخدام وحدات الطلب/الثانية وأنماطها. | استخدم المقاييس لمراقبة استهلاك RU من بداية الحل الخاص بك. استخدم الاستعلامات وتقنيات أبحاث البيانات الأخرى للعثور على الأنماط المضادة في التعليمات البرمجية للتطبيق الخاص بك. |
تخصيص نهج الفهرسة لتعيين حمل العمل الخاص بك. | يقوم نهج الفهرسة الافتراضي بفهرسة جميع المسارات في عنصر، ويمكن أن يكون لهذا النهج تأثيرات كبيرة على استهلاك RU وتكاليفه. استخدم نهج الفهرسة المصمم استنادا إلى المسارات التي تحتاج إلى فهرستها للاستعلامات الشائعة فقط. بالنسبة لأحمال العمل الثقيلة للكتابة، قم بتعطيل الفهرسة التلقائية للأعمدة غير المستخدمة في الاستعلامات. |
حدد مفتاح القسم الذي يعد مثاليا لحمل العمل الخاص بك. | يجب أن يوزع مفتاح القسم استهلاك معدل النقل وتخزين البيانات بالتساوي عبر الأقسام المنطقية. يجب أن يقلل التحديد أيضا من عدد الاستعلامات عبر الأقسام غير المحدودة. تجنب الأقسام الساخنة التي تتلقى كمية غير متناسبة من نسبة استخدام الشبكة، حيث يمكن أن تزيد الأقسام غير المتوازنة من تكاليف معدل النقل والأخطاء العابرة. استخدم استعلامات البحث الأكثر شيوعا لتحديد مفتاح القسم المحتمل الذي من المحتمل أن ينفذ استعلامات القسم الواحد أو الاستعلامات المرتبطة عبر الأقسام. |
استخدم معدل النقل بلا خادم أو توفيره أو التوفير اليدوي أو التحجيم التلقائي، على مستوى قاعدة البيانات أو الحاوية عند الاقتضاء لحمل العمل الخاص بك. | قارن أنواع معدل النقل المتوفرة وحدد الخيار المناسب لحمل العمل الخاص بك. بشكل عام، قد تستفيد أحمال العمل الأصغر وأحمال العمل التطوير/الاختبار من معدل النقل بلا خادم أو معدل النقل المشترك اليدوي على مستوى قاعدة البيانات. قد تستفيد أحمال العمل الأكبر حجما والمهمة الحرجة من معدل النقل المخصص على مستوى الحاوية. |
تكوين مستوى التناسق الافتراضي للتطبيق الخاص بك. إذا كان ذلك مناسبا، فتراجع عن مستوى التناسق الافتراضي في جلسات عمل العميل. | قد لا تحتاج دائما إلى تغيير مستوى التناسق الافتراضي القياسي أو تجاوزه في جلسات عمل العميل. ضع في اعتبارك التكاليف الأعلى المرتبطة بالقراءة على مستويات تناسق أقوى. |
بالنسبة لأحمال عمل التطوير/الاختبار، استخدم محاكي Azure Cosmos DB. | يعد محاكي Azure Cosmos DB خيارا للتطوير/الاختبار والتكامل المستمر الذي يمكن أن يوفر تكاليف أحمال العمل الشائعة هذه لفريق التطوير الخاص بك. يتوفر المحاكي أيضا كصورة حاوية Docker. |
استخدام عمليات دفعة المعاملات | تصميم الأقسام للاستفادة من عمليات دفعة المعاملات داخل مفتاح قسم منطقي لإدراجها. استخدم عمليات الدفعة في SDKS من جانب العميل لإدراج مستندات متعددة أو تحديثها أو حذفها في طلب معاملة واحدة. يمكن أن تقلل هذه الخطوة من عدد الطلبات الفردية ويمكن أن تؤدي في النهاية إلى كفاءة أفضل في معدل النقل. |
استخدم الإسقاط لتقليل تكاليف معدل النقل لمجموعات نتائج الاستعلام الكبيرة. | استعلامات المؤلف لعرض الحد الأدنى من الحقول المطلوبة من مجموعة النتائج فقط. إذا كانت العمليات الحسابية في الحقول ضرورية، فقم بتقييم تكلفة معدل النقل لتنفيذ هذه العمليات الحسابية من جانب الخادم مقابل جانب العميل. |
تجنب استخدام استعلامات عبر الأقسام غير المحدودة. | قم بتقييم الاستعلامات وتأليفها للتأكد من أنها تبحث داخل قسم منطقي واحد كلما أمكن ذلك. استخدم عوامل تصفية الاستعلام للتحكم في الأقسام المنطقية لأهداف الاستعلام. إذا كان يجب أن يبحث الاستعلام عبر الأقسام المنطقية، فربط الاستعلام بالبحث فقط في مجموعة فرعية من الأقسام المنطقية بدلا من إجراء فحص كامل. |
تنفيذ وقت البقاء (TTL) لإزالة العناصر غير المستخدمة. | استخدم TTL لحذف البيانات التي لم تعد هناك حاجة إليها تلقائيا. إدارة تكاليف التخزين عن طريق إزالة البيانات منتهية الصلاحية أو القديمة. إذا لزم الأمر، قم بتصدير البيانات منتهية الصلاحية إلى حل تخزين أقل تكلفة. |
ضع في اعتبارك مخزنا تحليليا للتجميعات الثقيلة. | يقوم مخزن Azure Cosmos DB التحليلي تلقائيا بمزامنة بياناتك إلى مخزن أعمدة منفصل لتحسين التجميعات الكبيرة وإعداد التقارير والاستعلامات التحليلية. |
تعريفات نهج Azure
التميز التشغيلي
يجب مراقبة أحمال العمل بعد توزيعها للتأكد من أنها تعمل كما هو مقصود. علاوة على ذلك، يمكن أن تساعد مراقبة أحمال العمل في إطلاق كفاءات جديدة غير واضحة على الفور أثناء مرحلة التخطيط. في السيناريوهات الكارثية، تعد البيانات التشخيصية هي المفتاح للكشف عن سبب حدوث حادث شديد الخطورة. يتضمن هذا القسم اعتبارات وتوصيات لمراقبة أحداث وخصائص أحمال العمل الخاصة بك.
قائمة مراجعة التصميم
- قم بصياغة استراتيجية مراقبة السجل والمقاييس للتمييز بين أحمال العمل المختلفة، ووضع علامة على سيناريوهات استثنائية، وتتبع الأنماط في الاستثناءات/الأخطاء، وتتبع أداء الجهاز المضيف.
- تصميم أحمال عمل كبيرة لاستخدام العمليات المجمعة كلما أمكن ذلك.
- حدد تنبيهات متعددة لمراقبة التقييد وتحليل تخصيص معدل النقل وتتبع حجم بياناتك.
- تصميم استراتيجية مراقبة لتوفر الحل الخاص بك عبر المناطق.
- إنشاء أفضل الممارسات وفرضها لأتمتة نشر حساب وموارد Azure Cosmos DB ل NoSQL.
- تخطيط حدود القياس المتوقعة استنادا إلى تصميم القسم والفهرس. تأكد من وجود خطة لمراقبة هذه المقاييس لتحديد مدى قربها من الحدود المخطط لها.
التوصيات
التوصية | الميزة |
---|---|
تأكد من أن مطوري التطبيقات يستخدمون أحدث إصدار من SDK للمطور. | يحتوي كل Azure Cosmos DB ل NoSQL SDK على الحد الأدنى من الإصدار الموصى به. لمزيد من المعلومات، راجع .NET SDKوJava SDK. |
إنشاء معرفات في تطبيق العميل للتمييز بين أحمال العمل. | ضع في اعتبارك العلامات، مثل لاحقة عامل المستخدم، لتحديد حمل العمل الذي يجب أن يقترن به كل إدخال سجل أو مقياس. |
التقاط التشخيصات التكميلية باستخدام SDK المطور. | استخدم تقنيات حقن التشخيص لكل SDK لإضافة معلومات تكميلية حول حمل العمل جنبا إلى جنب مع المقاييس والسجلات الافتراضية. لمزيد من المعلومات، راجع .NET SDKوJava SDK. |
إنشاء تنبيهات مقترنة بموارد الجهاز المضيف. | قد تحدث مشكلات في الاتصال والتوافر بسبب مشكلات الجهاز المضيف من جانب العميل. مراقبة الموارد مثل وحدة المعالجة المركزية والذاكرة والتخزين على الأجهزة المضيفة باستخدام تطبيقات العميل باستخدام Azure Cosmos DB ل NoSQL SDKs. |
استخدم الميزات المجمعة ل SDKs للعميل للعمليات الكبيرة. | تستفيد السيناريوهات التي تتطلب درجة عالية من معدل النقل من استخدام الميزة المجمعة ل SDK. تدير الميزة المجمعة العمليات وتدفعها تلقائيا لزيادة معدل النقل إلى أقصى حد. |
إنشاء تنبيهات لتقييد معدل النقل. | استخدم التنبيهات لتعقب تقييد معدل النقل بما يتجاوز الحدود المتوقعة. مع مرور الوقت، راجع التنبيهات وضبطها أثناء معرفة المزيد حول حمل العمل الخاص بك فيما يتعلق ب Azure Cosmos DB. مقياس استهلاك RU الذي تمت تسويته هو مقياس يقيس استخدام النسبة المئوية لمعدل النقل المقدم على قاعدة بيانات أو حاوية. إذا كان هذا المقياس ثابتا عند 100٪، فمن المحتمل أن ترجع الطلبات خطأ عابرا. |
تعقب أداء الاستعلام باستخدام المقاييس. | استخدم المقاييس لتعقب أداء أهم الاستعلامات بمرور الوقت. تقييم ما إذا كانت هناك كفاءات يمكن العثور عليها عن طريق تحديث نهج الفهرسة أو تغيير الاستعلامات. إذا كان أداء الاستعلام ضعيفا، فاستكشف الأداء وإصلاحه وقم بتطبيق أفضل ممارسات الاستعلام. لمزيد من المعلومات، راجع تلميحات أداء الاستعلام. |
استخدم القوالب لتوزيع موارد الحساب تلقائيا. | ضع في اعتبارك قوالب Azure Resource Manager أو Bicep أو Terraform لأتمتة توزيع حسابك والموارد اللاحقة. تأكد من أن فريقك يستخدم نفس القوالب للنشر في بيئات أخرى غير إنتاجية. |
تعقب المقاييس الرئيسية لتحديد المشاكل الشائعة في حمل العمل الخاص بك. | استخدم مقاييس محددة للعثور على المشاكل الشائعة في حمل العمل الخاص بك بما في ذلك، على سبيل المثال لا الحصر؛ استخدام RU واستخدام RU حسب القسم والتقييد ووحدات تخزين الطلب حسب النوع. لمزيد من المعلومات، راجع مرجع بيانات المراقبة. |
تعريفات نهج Azure
كفاءة الأداء
- حدد أساس الأداء للتطبيق الخاص بك. قياس عدد المستخدمين المتزامنين والمعاملات التي قد تحتاج إلى التعامل معها. ضع في اعتبارك خصائص حمل العمل مثل متوسط تدفق المستخدم والعمليات الشائعة والارتفاعات في الاستخدام.
- ابحث عن الاستعلامات الأكثر شيوعا والأكثر تعقيدا. تحديد الاستعلامات التي تستخدم عمليات بحث متعددة أو الصلات أو التجميعات. ضع في اعتبارك هذه الاستعلامات في أي اعتبارات تصميم لمفتاح القسم أو نهج الفهرسة.
- بالنسبة للاستعلامات الأكثر شيوعا، حدد عدد النتائج التي تتوقعها لكل صفحة. سيساعد هذا الرقم في إضفاء الطابع الرسمي على عدد العناصر المخزنة مؤقتا للنتائج مسبقة الجلب.
- ابحث عن المستخدمين المستهدفين. حدد مناطق Azure الأقرب إليها.
- تحديد الاستعلامات التي تستخدم حقل ترتيب واحدا أو أكثر. أيضا، حدد العمليات التي تؤثر على حقول متعددة. قم بتضمين هذه الحقول بشكل صريح في تصميم نهج الفهرسة.
- تصميم العناصر بحيث تكون مستندات JSON المقابلة صغيرة قدر الإمكان. النظر في تقسيم البيانات عبر عناصر متعددة إذا لزم الأمر.
- حدد الاستعلامات على الصفائف التابعة وحدد ما إذا كانت مرشحة للاستعلامات الفرعية الأكثر كفاءة.
- حدد ما إذا كان حمل العمل يتطلب مخزنا تحليليا. ضع في اعتبارك المتاجر والخدمات التحليلية مثل Azure Synapse Link للاستعلامات المعقدة للغاية.
التوصية | الميزة |
---|---|
تكوين معدل النقل الخاص بك استنادا إلى أساس الأداء الخاص بك. | استخدم أدوات مثل حاسبة السعة لتحديد مقدار معدل النقل المطلوب لخط أساس الأداء الخاص بك. استخدم ميزات مثل التحجيم التلقائي لتوسيع نطاق معدل النقل الفعلي لمطابقة حمل العمل الفعلي بشكل أوثق. راقب استهلاك معدل النقل الفعلي بعد ذلك وقم بإجراء تعديلات. |
استخدم تقنيات التحسين على جانبي العميل والخادم عند الاقتضاء. | استفد من ذاكرة التخزين المؤقت المتكاملة المضمنة. قم بتكوين SDK لإدارة عدد العناصر التي تم إحضارها مسبقا (المخزن المؤقت) وإرجاعها لكل صفحة. |
انشر Azure Cosmos DB ل NoSQL إلى المناطق الأقرب إلى المستخدمين النهائيين. | تقليل زمن الانتقال عن طريق نشر Azure Cosmos DB ل NoSQL إلى المناطق الأقرب إلى المستخدمين النهائيين قدر الإمكان. استفد من النسخ المتماثل للقراءة لتوفير أداء قراءة أداء بغض النظر عن كيفية تكوين الكتابة (مناطق مفردة أو متعددة). قم بتكوين SDK (.NET/Java) لتفضيل المناطق الأقرب إلى المستخدم النهائي. |
تكوين SDK لوضع Direct. | الوضع المباشر هو الخيار المفضل للحصول على أفضل أداء. يسمح هذا الوضع للعميل بفتح اتصالات TCP مباشرة إلى الأقسام في الخدمة وإرسال الطلبات مباشرة بدون بوابة وسيطة. يوفر هذا الوضع أداء أفضل بسبب وجود عدد أقل من قفزات الشبكة. |
تعطيل الفهرسة للعمليات المجمعة. | إذا كان هناك العديد من عمليات الإدراج/استبدال/upsert، ف قم بتعطيل الفهرسة لتحسين سرعة العملية أثناء استخدام الدعم المجمع ل SDK المقابل. يمكن إعادة تمكين الفهرسة على الفور لاحقا. |
إنشاء فهارس مركبة للحولات المستخدمة في العمليات المعقدة. | يمكن أن تزيد الفهارس المركبة من كفاءة العمليات في حقول متعددة حسب أوامر الحجم. في كثير من الحالات، استخدم الفهارس المركبة لعبارات ORDER BY ذات حقول متعددة. |
تحسين أجهزة العميل المضيف ل SDKs. | بالنسبة للحالة الأكثر شيوعا، استخدم ما لا يقل عن 4 ذاكرات أساسية وذاكرة 8 غيغابايت على الأجهزة المضيفة المكونة من 64 لدغة باستخدام SDKs (.NET/Java). أيضا، قم بتمكين الشبكات المتسارعة على الأجهزة المضيفة. |
استخدم نمط singleton للفئة CosmosClient في معظم SDKs. |
استخدم فئة العميل في معظم SDKs كقاعدة بيانات أحادية. تدير فئة العميل دورة حياتها الخاصة وهي مصممة بحيث لا يتم التخلص منها. يمكن أن يؤدي إنشاء المثيلات والتخلص منها باستمرار إلى انخفاض الأداء. |
احتفظ بأحجام العناصر أقل من 100 كيلوبايت في الحجم. | تستخدم العناصر الأكبر حجما معدل نقل أكبر لعمليات القراءة والكتابة الشائعة. يمكن أن يكون للاستعلامات حول العناصر الأكبر التي تعرض جميع الحقول تكلفة إنتاجية كبيرة. |
استخدم الاستعلامات الفرعية بشكل استراتيجي لتحسين الاستعلامات التي تنضم إلى مجموعات البيانات الكبيرة. | يمكن أن تزيد الاستعلامات التي تنضم إلى الصفائف التابعة في التعقيد إذا تم تضمين صفائف متعددة ولم تتم تصفيتها. على سبيل المثال، يمكن توسيع الاستعلام الذي ينضم إلى أكثر من صفيفين من 10 عناصر على الأقل لكل منهما إلى أكثر من 1000 مجموعة. تحسين تعبيرات الصلة الذاتية باستخدام الاستعلامات الفرعية لتصفية الصفائف قبل ضم الصفائف داخل العنصر. بالنسبة للاستعلامات عبر الأقسام، قم بتحسين الاستعلام الخاص بك لتضمين عامل تصفية على مفتاح القسم لتحسين توجيه الاستعلام الخاص بك إلى أقل قدر ممكن من الأقسام. |
استخدم أحمال العمل التحليلية للاستعلامات الأكثر تعقيدا. | إذا قمت بتشغيل التجميعات المتكررة أو ضم الاستعلامات عبر حاويات كبيرة، ففكر في تمكين المخزن التحليلي والقيام بالاستعلامات في Azure Synapse Analytics. |
تعريفات نهج Azure
موارد إضافية
ضع في اعتبارك المزيد من الموارد المتعلقة ب Azure Cosmos DB ل NoSQL.
إرشادات Azure Architecture Center
- تعدد الإيجارات وAzure Cosmos DB
- البحث المرئي في البيع بالتجزئة مع Azure Cosmos DB
- الألعاب باستخدام Azure Cosmos DB
- تطبيقات بلا خادم باستخدام Azure Cosmos DB
- إضفاء الطابع الشخصي باستخدام Azure Cosmos DB