قراءة موجز تغيير قاعدة بيانات Azure Cosmos
ينطبق على: NoSQL
يمكنك العمل مع موجز تغيير قاعدة بيانات Azure Cosmos باستخدام إما نموذج دفع أو نموذج سحب. باستخدام نموذج الدفع، يدفع معالج موجز التغيير العمل إلى العميل الذي لديه منطق تسلسل عمل لمعالجة هذا العمل. ومع ذلك، يتم التعامل مع التعقيد في التحقق من العمل وحالة التخزين لآخر عمل تمت معالجته داخل معالج موجز التغيير.
مع نموذج السحب، يجب على العميل سحب العمل من الخادم. العميل، في هذه الحالة، ليس لديه فقط منطق تسلسل العمل لمعالجة العمل ولكن أيضًا تخزين الحالة لآخر عمل تمت معالجته، والتعامل مع موازنة التحميل عبر العديد من العملاء الذين يعالجون العمل بشكل متوازٍ، ومعالجة الأخطاء.
عند القراءة من موجز تغيير قاعدة بيانات Azure Cosmos، نوصي عادةً باستخدام نموذج دفع لأنك لن تحتاج إلى القلق بشأن:
- التحقق من موجز التغيير الخاص بالتغييرات المستقبلية.
- حالة التخزين لآخر تغيير تمت معالجته. إذا كنت تقرأ من معالج موجز التغيير، يتم تخزين الحالة تلقائيا في حاوية تأجير.
- موازنة الحمل عبر العديد من العملاء الذين يستهلكون التغييرات. على سبيل المثال، إذا كان أحد العملاء لا يستطيع مواكبة تغييرات المعالجة وكان آخر لديه سعة متاحة.
- معالجة الأخطاء. على سبيل المثال، إعادة المحاولة تلقائياً للتغييرات الفاشلة التي لم تتم معالجتها بشكل صحيح بعد استثناء لم تتم معالجته في التعليمات البرمجية أو مشكلة عابرة في الشبكة.
ستستخدم معظم السيناريوهات التي تستخدم موجز تغيير Azure Cosmos DB أحد خيارات نموذج الدفع. ومع ذلك، هناك بعض السيناريوهات التي قد ترغب فيها في التحكم الإضافي في المستوى المنخفض لنموذج السحب. يتضمن هذا ما يلي:
- قراءة التغييرات من مفتاح قسم معين
- التحكم في السرعة التي يتلقى بها عميلك التغييرات للمعالجة
- إجراء قراءة لمرة واحدة للبيانات الموجودة في موجز التغيير (على سبيل المثال، للقيام بترحيل البيانات)
قراءة موجز التغيير بنموذج الدفع
يعد استخدام نموذج الدفع أسهل طريقة للقراءة من موجز التغيير. هناك طريقتان يمكنك قراءتها من موجز التغيير باستخدام نموذج دفع: مشغلات Azure Functions Azure Cosmos DB ومعالج موجز التغيير. تستخدم Azure Functions معالج موجز التغيير خلف الكواليس، لذا فإن هاتين الطريقتين متشابهتان لقراءة موجز التغيير. فكر في وظائف Azure على أنها مجرد نظام أساسي لاستضافة معالج موجز التغيير، وليست طريقة مختلفة تمامًا لقراءة موجز التغيير.
دالات Azure
Azure Functions هو أبسط خيار إذا كنت بدأت للتو في استخدام موجز التغيير. نظرا لبساطته، فهو أيضا الخيار الموصى به لمعظم حالات استخدام موجز التغيير. عند إنشاء مشغل Azure Functions ل Azure Cosmos DB، يمكنك تحديد الحاوية للاتصال، ويتم تشغيل Azure Function كلما كان هناك تغيير في الحاوية. نظرًا لأن وظائف Azure تستخدم معالج موجز التغيير خلف الكواليس، فإنها تقوم تلقائيًا بموازاة معالجة التغيير عبر أقسام الحاوية.
يعد التطوير باستخدام وظائف Azure تجربة سهلة ويمكن أن يكون أسرع من نشر معالج موجز التغيير بنفسك. يمكن إنشاء المشغّلات باستخدام مدخل وظائف Azure أو برمجيًا باستخدام عدد تطوير البرامج. يوفر Visual Studio والتعليمات البرمجية VS الدعم لكتابة وظائف Azure، ويمكنك حتى استخدام واجهة سطر الأوامر لوظائف Azure للتطوير عبر الأنظمة الأساسية. يمكنك كتابة التعليمات البرمجية وتصحيحها على سطح المكتب، ثم نشر الدالة بزر واحد. راجع مقالتَي حوسبة قاعدة البيانات بلا خادم باستخدام وظائف Azure واستخدام موجز التغيير مع وظائف Azure لمعرفة المزيد.
مكتبة معالج موجز التغيير
عدة تطوير البرامج SDK مدعومة
.Net V3 | Java | Node.JS | Python |
---|---|---|---|
✓ | ✓ | ✕ | ✕ |
يمنحك معالج موجز التغيير مزيدًا من التحكم في موجز التغيير ولا يزال يخفي معظم التعقيدات. تتبع مكتبة معالج موجز التغيير نمط المراقب، حيث يتم استدعاء وظيفة المعالجة الخاصة بك من قبل المكتبة. سيتحقق معالج موجز التغيير تلقائيا من وجود تغييرات، وإذا تم العثور على التغييرات، "ادفعها" إلى العميل. إذا كان لديك موجز تغيير معدل النقل، يمكنك إنشاء مثيل لعدة عملاء لقراءة موجز التغيير. سيقوم معالج موجز التغيير تلقائيا بتقسيم الحمل بين العملاء المختلفين. لن تضطر إلى تنفيذ أي منطق لموازنة التحميل عبر عملاء متعددين أو أي منطق للحفاظ على حالة التأجير.
يضمن معالج موجز التغيير تسليم جميع التغييرات "مرة واحدة على الأقل". بمعنى آخر، إذا كنت تستخدم معالج موجز التغيير، استدعاء وظيفة المعالجة بنجاح لكل عنصر في موجز التغيير. إذا كان هناك استثناء غير معالج في منطق العمل في وظيفة المعالجة، فستتم إعادة محاولة التغييرات الفاشلة حتى تتم معالجتها بنجاح. لمنع معالج موجز التغيير الخاص بك من "التعطل" باستمرار إعادة محاولة نفس التغييرات، أضف منطقاً في وظيفة المعالجة لكتابة المستندات، عند الاستثناء، إلى قائمة انتظار الرسائل المهملة. تعرف على المزيد حول معالجة الأخطاء.
في وظائف Azure، التوصية بمعالجة الأخطاء هي نفسها. لا يزال يتعين عليك إضافة منطق في التعليمة البرمجية للتفويض لكتابة المستندات، عند الاستثناء، إلى قائمة انتظار الرسائل المهملة. ومع ذلك، إذا كان هناك استثناء غير معالج في Azure Function، فلن تتم إعادة محاولة التغيير الذي أنشأ الاستثناء تلقائيا. إذا كان هناك استثناء غير معالج في منطق العمل، فستنتقل وظيفة Azure إلى معالجة التغيير التالي. لن تعيد وظيفة Azure محاولة نفس التغيير الفاشل.
مثل وظائف Azure، يعد التطوير باستخدام مكتبة معالج موجز التغيير أمرًا سهلاً. ومع ذلك، فأنت مسؤول عن نشر مضيف واحد أو أكثر لمعالج موجز التغيير. المضيف هو مثيل تطبيق يستخدم معالج موجز التغيير للاستماع إلى التغييرات. في حين أن Azure Functions لديها قدرات للتحجيم التلقائي، فأنت مسؤول عن تحجيم المضيفين. لمعرفة المزيد، راجع استخدام معالج موجز التغيير. تعد مكتبة معالج تغيير الموجز جزءًا من عدة تطوير البرامج V3 لقاعدة بيانات Azure Cosmos.
قراءة موجز التغيير مع نموذج السحب
يسمح لك تغيير نموذج سحب الموجز باستهلاك موجز التغيير بالسرعة التي تناسبك. يجب أن يطلب العميل التغييرات ولا يوجد استقصاء تلقائي للتغييرات. إذا كنت تريد "وضع إشارة مرجعية" بشكل دائم على آخر تغيير تمت معالجته (مشابه لحاوية تأجير نموذج الدفع)، ستحتاج إلى حفظ رمز مميز للاستمرار.
باستخدام نموذج سحب العلف المتغير، يمكنك الحصول على مزيد من التحكم في المستوى المنخفض لموجز التغيير. عند قراءة موجز التغيير باستخدام نموذج السحب، لديك ثلاثة خيارات:
- اقرأ التغييرات لحاوية كاملة
- قراءة التغييرات الخاصة بـ نطاق تغيير معين
- اقرأ التغييرات الخاصة بقيمة مفتاح قسم معينة
يمكنك موازنة معالجة التغييرات عبر عملاء متعددين، تمامًا كما يمكنك باستخدام معالج موجز التغيير. ومع ذلك، لا يتعامل نموذج السحب تلقائيا مع موازنة التحميل عبر العملاء. عند استخدام نموذج السحب لموازنة معالجة موجز التغيير، ستحصل أولاً على قائمة نطاقات التغيير. يمتد نطاق التغيير على نطاق من قيم مفاتيح القسم. ستحتاج إلى عملية منسق تحصل على نطاقات التغيير وتوزعها على أجهزتك. يمكنك بعد ذلك استخدام نطاقات التغيير هذه لجعل أجهزة متعددة تقرأ موجز التغيير بشكل متوازٍ.
لا يوجد ضمان تسليم مضمن "مرة واحدة على الأقل" مع نموذج السحب. يمنحك نموذج السحب تحكمًا منخفض المستوى لتحديد الطريقة التي تريد بها معالجة الأخطاء.
موجز التغيير في واجهات برمجة التطبيقات لـ Cassandra وMongoDB
تظهر وظيفة موجز التغيير كتدفقات تغيير في واجهة برمجة التطبيقات ل MongoDB والاستعلام مع دالة تقييم في واجهة برمجة التطبيقات ل Cassandra. لمعرفة المزيد حول تفاصيل التنفيذ لواجهة برمجة التطبيقات ل MongoDB، راجع تغيير التدفقات في Azure Cosmos DB ل MongoDB.
يوفر Apache Cassandra الأصلي التقاط بيانات التغيير (CDC)، وهي آلية لوضع علامة على جداول محددة للأرشفة ورفض عمليات الكتابة إلى تلك الجداول بمجرد الوصول إلى حجم قابل للتكوين على القرص لسجل التقاط بيانات التغيير. تعزز ميزة موجز التغيير في Azure Cosmos DB ل Apache Cassandra القدرة على الاستعلام عن التغييرات باستخدام التقييم عبر CQL. لمعرفة المزيد حول تفاصيل التنفيذ، راجع موجز التغيير في Azure Cosmos DB ل Apache Cassandra.
الخطوات التالية
يمكنك الآن الاستمرار في معرفة المزيد حول موجز التغيير في المقالات التالية: