تغيير أوضاع الموجز في Azure Cosmos DB

ينطبق على: NoSQL

يقدم Azure Cosmos DB وضعي موجز التغيير. يوفر كل وضع نفس الوظيفة الأساسية. تتضمن الاختلافات العمليات التي يتم التقاطها في الموجز وبيانات التعريف المتوفرة لكل تغيير وفترة الاحتفاظ بالتغييرات. يمكنك استهلاك موجز التغيير في أوضاع مختلفة عبر تطبيقات متعددة لنفس حاوية Azure Cosmos DB لتناسب متطلبات كل حمل عمل. يمكن تكوين كل تطبيق موجز تغيير فردي لقراءة موجز التغيير في وضع واحد فقط. لا يمنعك استهلاك موجز التغيير في وضع واحد من استهلاك موجز التغيير في وضع آخر في تطبيق مختلف.

إشعار

هل لديك أي ملاحظات حول أوضاع موجز التغيير؟ نريد أن نسمعه! لا تتردد في مشاركة الملاحظات مباشرة مع فريق هندسة Azure Cosmos DB: cosmoschangefeed@microsoft.com.

وضع موجز تغيير الإصدار الأخير

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

جميع الإصدارات وحذف تغيير وضع الموجز (معاينة)

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

تغيير حالات استخدام الموجز

يوفر وضع الإصدار الأخير طريقة سهلة لمعالجة كل من التغييرات في الوقت الحقيقي والتاريخي للعناصر في حاوية مع القدرة على العودة إلى التغييرات من بداية الحاوية.

فيما يلي سيناريوهات مناسبة تماما لهذا الوضع:

  • عمليات ترحيل حاوية بأكملها إلى موقع ثانوي.

  • القدرة على إعادة معالجة التغييرات من بداية الحاوية.

  • معالجة التغييرات في الوقت الحقيقي على العناصر في حاوية الناتجة عن عمليات الإنشاء والتحديث.

  • أحمال العمل التي لا تحتاج إلى تسجيل الحذف أو التغييرات المتوسطة بين القراءات.

ميزات كل وضع

بالإضافة إلى الميزات الشائعة عبر جميع أوضاع موجز التغيير، يتمتع كل وضع موجز تغيير بالخصائص التالية:

  • يتضمن موجز التغيير عمليات الإدراج والتحديث التي يتم إجراؤها على العناصر الموجودة في الحاوية.

  • لا يقوم وضع موجز التغيير هذا بتسجيل الحذف. يمكنك التقاط عمليات الحذف عن طريق تعيين علامة "حذف مبدئي" داخل العناصر بدلا من حذفها مباشرة. على سبيل المثال، يمكنك إضافة سمة في العنصر الذي يسمى deleted بالقيمة true، ثم تعيين Time to Live (TTL) على العنصر. يلتقطه موجز التغيير كتحديث ويتم حذف العنصر تلقائيا عند انتهاء صلاحية TTL. بدلا من ذلك، يمكنك تعيين فترة انتهاء صلاحية محدودة للعناصر الخاصة بك باستخدام إمكانية TTL. مع هذا الحل، يجب معالجة التغييرات ضمن فاصل زمني أقصر من فترة انتهاء صلاحية TTL.

  • يتم تضمين أحدث تغيير لعنصر معين فقط في موجز التغيير. قد لا تتوفر التغييرات المتوسطة.

  • عند حذف عنصر، لن يعود متوفرا في موجز التغيير.

  • يمكن مزامنة التغييرات من أي نقطة زمنية، ولا توجد فترة استبقاء بيانات ثابتة تتوفر لها التغييرات.

  • لا يمكنك تصفية موجز التغيير لنوع معين من العمليات. أحد البدائل المحتملة، هو إضافة "علامة ناعمة" على العنصر للتحديثات والتصفية استنادا إلى العلامة عند معالجة العناصر في موجز التغيير.

  • يمكن أن تكون نقطة البداية لقراءة موجز التغيير من بداية الحاوية أو من نقطة زمنية أو من "الآن" أو من نقطة تحقق معينة. تبلغ دقة وقت البدء حوالي خمس ثوان.

استخدام موجز التغيير

يتوافق كل وضع مع أساليب مختلفة لقراءة موجز التغيير لكل لغة.

يمكنك استخدام الطرق التالية لاستهلاك التغييرات من موجز التغيير في أحدث وضع للإصدار:

أسلوب لقراءة موجز التغيير NET. Java Python Node.js
تغيير نموذج سحب الموجز ‏‏نعم‬ نعم نعم ‏‏نعم‬
تغيير معالج الموجز ‏‏نعم‬ نعم لا لا
مشغل Azure Functions ‏‏نعم‬ نعم نعم ‏‏نعم‬

تحليل كائن الاستجابة

في أحدث وضع للإصدار، كائن الاستجابة الافتراضي هو صفيف من العناصر التي تم تغييرها. يحتوي كل عنصر على بيانات التعريف القياسية لأي عنصر Azure Cosmos DB، بما في ذلك _etag و _ts، مع إضافة خاصية جديدة، _lsn.

_etag التنسيق داخلي ولا يجب أن تعتمد عليه لأنه يمكن أن يتغير في أي وقت. _ts هو تعديل أو طابع زمني لإنشاء. يمكنك استخدام _ts للمقارنة الزمنية. _lsn هو معرف دفعي تتم إضافته لموجز التغيير فقط الذي يمثل معرف المعاملة. يمكن أن يكون للعديد من العناصر نفس _lsn.

ETag يختلف في FeedResponse عن الذي _etag تراه على العنصر. _etag هو معرف داخلي، ويستخدم للتحكم في التزامن. _etag تمثل الخاصية إصدار العنصر، بينما يتم استخدام الخاصية ETag لتسلسل الموجز.

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

تعرف على المزيد حول موجز التغيير في المقالات التالية: