قراءة موجز تغيير قاعدة بيانات Azure Cosmos

ينطبق على: واجهة برمجة تطبيقات SQL

يمكنك العمل مع موجز تغيير قاعدة بيانات Azure Cosmos باستخدام إما نموذج دفع أو نموذج سحب. باستخدام نموذج الدفع، يدفع معالج موجز التغيير العمل إلى العميل الذي لديه منطق تسلسل عمل لمعالجة هذا العمل. ومع ذلك، يتم التعامل مع التعقيد في التحقق من العمل وحالة التخزين لآخر عمل تمت معالجته داخل معالج موجز التغيير.

مع نموذج السحب، يجب على العميل سحب العمل من الخادم. العميل، في هذه الحالة، ليس لديه فقط منطق تسلسل العمل لمعالجة العمل ولكن أيضًا تخزين الحالة لآخر عمل تمت معالجته، والتعامل مع موازنة التحميل عبر العديد من العملاء الذين يعالجون العمل بشكل متوازٍ، ومعالجة الأخطاء.

عند القراءة من موجز تغيير قاعدة بيانات Azure Cosmos، نوصي عادةً باستخدام نموذج دفع لأنك لن تحتاج إلى القلق بشأن:

  • التحقق من موجز التغيير الخاص بالتغييرات المستقبلية.
  • حالة التخزين لآخر تغيير تمت معالجته. عند القراءة من موجز التغيير، يتم تخزين ذلك تلقائيًا في حاوية تأجير.
  • موازنة التحميل عبر العديد من العملاء الذين يستهلكون التغييرات. على سبيل المثال، إذا كان أحد العملاء لا يستطيع مواكبة تغييرات المعالجة وكان آخر لديه سعة متاحة.
  • معالجة الأخطاء. على سبيل المثال، إعادة المحاولة تلقائيًا للتغييرات الفاشلة التي لم تتم معالجتها بشكل صحيح بعد استثناء لم تتم معالجته في التعليمات البرمجية أو مشكلة عابرة في الشبكة.

ستستخدم غالبية السيناريوهات التي تستخدم موجز تغيير قاعدة بيانات Azure Cosmos أحد خيارات نموذج الدفع. ومع ذلك، هناك بعض السيناريوهات التي قد ترغب فيها في التحكم الإضافي في المستوى المنخفض لنموذج السحب. وتشمل هذه القيود ما يلي:

  • قراءة التغييرات من مفتاح قسم معين
  • التحكم في السرعة التي يتلقى بها عميلك التغييرات للمعالجة
  • إجراء قراءة لمرة واحدة للبيانات الموجودة في موجز التغيير (على سبيل المثال، للقيام بترحيل البيانات)

قراءة موجز التغيير بنموذج الدفع

يعد استخدام نموذج الدفع أسهل طريقة للقراءة من موجز التغيير. هناك طريقتان يمكنك القراءة من موجز التغيير باستخدام نموذج الدفع: مشغّلات قاعدة بيانات Azure Functions Cosmosومكتبة تغيير معالج الموجز. تستخدم وظائف Azure معالج موجز التغيير خلف الكواليس، لذا فإن هاتين الطريقتين متشابهتين جدًا لقراءة موجز التغيير. فكر في وظائف Azure على أنها مجرد نظام أساسي لاستضافة معالج موجز التغيير، وليست طريقة مختلفة تمامًا لقراءة موجز التغيير.

دالات Azure

وظائف Azure هي أبسط خيار إذا كنت قد بدأت للتو في استخدام موجز التغيير. نظرًا لبساطته، فهو أيضًا الخيار الموصى به لمعظم حالات استخدام موجز التغيير. عند إنشاء مشغّل وظائف Azure لقاعدة بيانات Azure Cosmos DB، فإنك تحدد الحاوية للاتصال، ويتم تشغيل وظيفة Azure عندما يكون هناك تغيير في الحاوية. نظرًا لأن وظائف Azure تستخدم معالج موجز التغيير خلف الكواليس، فإنها تقوم تلقائيًا بموازاة معالجة التغيير عبر أقسام الحاوية.

يعد التطوير باستخدام وظائف Azure تجربة سهلة ويمكن أن يكون أسرع من نشر معالج موجز التغيير بنفسك. يمكن إنشاء المشغّلات باستخدام مدخل وظائف Azure أو برمجيًا باستخدام عدد تطوير البرامج. يوفر Visual Studio والتعليمات البرمجية VS الدعم لكتابة وظائف Azure، ويمكنك حتى استخدام واجهة سطر الأوامر لوظائف Azure للتطوير عبر الأنظمة الأساسية. يمكنك كتابة التعليمات البرمجية وتتبع أخطائها على سطح المكتب، ثم نشر الوظيفة بنقرة واحدة. راجع مقالتَي حوسبة قاعدة البيانات بلا خادم باستخدام وظائف Azureواستخدام موجز التغيير مع وظائف Azure لمعرفة المزيد.

مكتبة معالج موجز التغيير

يمنحك معالج موجز التغيير مزيدًا من التحكم في موجز التغيير ولا يزال يخفي معظم التعقيدات. تتبع مكتبة معالج موجز التغيير نمط المراقب، حيث يتم استدعاء وظيفة المعالجة الخاصة بك من قبل المكتبة. ستتحقق مكتبة معالج موجز التغيير تلقائيًا من التغييرات، وإذا تم العثور على تغييرات، "ادفعها" إلى العميل. إذا كان لديك موجز تغيير معدل النقل، يمكنك إنشاء مثيل لعدة عملاء لقراءة موجز التغيير. ستقوم مكتبة معالج موجز التغيير تلقائيًا بتقسيم الحمل بين العملاء المختلفين. لن تضطر إلى تنفيذ أي منطق لموازنة التحميل عبر عملاء متعددين أو أي منطق للحفاظ على حالة التأجير.

تضمن مكتبة معالج موجز التغيير تسليم جميع التغييرات "مرة واحدة على الأقل". بمعنى آخر، إذا كنت تستخدم مكتبة معالج موجز التغيير، سيتم استدعاء وظيفة المعالجة الخاصة بك بنجاح لكل عنصر في موجز التغيير. إذا كان هناك استثناء غير معالج في منطق العمل في وظيفة المعالجة الخاصة بك، ستتم إعادة محاولة التغييرات الفاشلة حتى تتم معالجتها بنجاح. لمنع معالج موجز التغيير الخاص بك من "التعطل" باستمرار لإعادة محاولة نفس التغييرات، أضِف منطقًا في وظيفة المعالجة لكتابة المستندات، عند الاستثناء، إلى قائمة انتظار الرسائل المهملة. تعرف على المزيد حول معالجة الأخطاء.

في وظائف Azure، التوصية بمعالجة الأخطاء هي نفسها. لا يزال يتعين عليك إضافة منطق في التعليمة البرمجية للتفويض لكتابة المستندات، عند الاستثناء، إلى قائمة انتظار الرسائل المهملة. ومع ذلك، إذا كان هناك استثناء لم تتم معالجته في وظيفة Azure، لن تتم إعادة محاولة التغيير الذي أنشأ الاستثناء تلقائيًا. إذا كان هناك استثناء غير معالج في منطق العمل، ستنتقل وظيفة Azure إلى معالجة التغيير التالي. لن تعيد وظيفة Azure محاولة نفس التغيير الفاشل.

مثل وظائف Azure، يعد التطوير باستخدام مكتبة معالج موجز التغيير أمرًا سهلاً. ومع ذلك، فأنت مسؤول عن نشر مضيف واحد أو أكثر لمعالج موجز التغيير. المضيف هو مثيل تطبيق يستخدم معالج موجز التغيير للاستماع إلى التغييرات. بينما تتمتع وظائف Azure بإمكانيات للتحجيم التلقائي، فأنت مسؤول عن تحجيم مضيفيك. لمعرفة المزيد، راجع استخدام معالج موجز التغيير. تعد مكتبة معالج تغيير الموجز جزءًا من عدة تطوير البرامج V3 لقاعدة بيانات Azure Cosmos.

قراءة موجز التغيير مع نموذج السحب

يسمح لك تغيير نموذج سحب الموجز باستهلاك موجز التغيير بالسرعة التي تناسبك. يجب أن يطلب العميل التغييرات ولا يوجد تحقق تلقائي للتغييرات. إذا كنت تريد "وضع إشارة مرجعية" بشكل دائم على آخر تغيير تمت معالجته (مشابه لحاوية تأجير نموذج الدفع)، ستحتاج إلى حفظ رمز مميز للاستمرار.

باستخدام نموذج سحب موجز التغيير، يمكنك الحصول على مزيد من التحكم في المستوى المنخفض لموجز التغيير. عند قراءة موجز التغيير باستخدام نموذج السحب، لديك ثلاثة خيارات:

  • اقرأ التغييرات لحاوية كاملة
  • قراءة التغييرات الخاصة بـ نطاق تغيير معين
  • اقرأ التغييرات الخاصة بقيمة مفتاح قسم معينة

يمكنك موازنة معالجة التغييرات عبر عملاء متعددين، تمامًا كما يمكنك باستخدام معالج موجز التغيير. ومع ذلك، لا يتعامل نموذج السحب تلقائيًا مع موازنة التحميل عبر العملاء. عند استخدام نموذج السحب لموازنة معالجة موجز التغيير، ستحصل أولاً على قائمة نطاقات التغيير. يمتد نطاق التغيير على نطاق من قيم مفاتيح القسم. ستحتاج إلى عملية منسق تحصل على نطاقات التغيير وتوزعها على أجهزتك. يمكنك بعد ذلك استخدام نطاقات التغيير هذه لجعل أجهزة متعددة تقرأ موجز التغيير بشكل متوازٍ.

لا يوجد ضمان تسليم مضمّن "مرة واحدة على الأقل" مع نموذج السحب. يمنحك نموذج السحب تحكمًا منخفض المستوى لتحديد الطريقة التي تريد بها معالجة الأخطاء.

موجز التغيير في واجهات برمجة التطبيقات لـ Cassandra وMongoDB

تظهر وظائف موجز التغيير كتدفقات في واجهة برمجة التطبيقات MongoDB، والاستعلام من خلال تقييم واجهة برمجة التطبيقات Cassandra. لمعرفة المزيد حول تفاصيل تنفيذ MongoDB API، راجع تدفقات التغيير في واجهة برمجة التطبيقات Azure Cosmos DB لـ MongoDB.

يوفر Native Apache Cassandra التقاط بيانات التغيير (CDC)، وهي آلية لوضع علامة على جداول معينة للأرشفة بالإضافة إلى رفض عمليات الكتابة إلى تلك الجداول بمجرد الوصول إلى حجم قابل للتكوين على القرص لسجل CDC. تعمل ميزة موجز التغيير في واجهة برمجة التطبيقات Azure Cosmos DB لـ Cassandra على تحسين القدرة على الاستعلام عن التغييرات باستخدام المسند عبر CQL. لمعرفة المزيد حول تفاصيل التنفيذ، راجع موجز التغيير في واجهة برمجة التطبيقاتAzure Cosmos DB لـ Cassandra.

الخطوات التالية

يمكنك الآن الاستمرار في معرفة المزيد حول موجز التغيير في المقالات التالية: