مدة البقاء (TTL) في Azure Cosmos DB

ينطبق على: NoSQL

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

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

إشعار

يرتبط هذا المحتوى بمخزن عمليات Azure Cosmos DB TTL. إذا كنت تبحث عن متجر تحليلي TTL، والذي يمكّن سيناريوهات NoETL HTAP من خلال Azure Synapse Link، فالرجاء النقر here.

مدة البقاء للحاويات والأشياء

يتم تعيين وقت القيمة المباشرة بالثوان، ويتم تفسيره على أنه دلتا من وقت آخر تعديل للعنصر. يمكنك تعيين الوقت لمدة البقاء في حاوية أو عنصر داخل الحاوية:

  1. مدة البقاء في حاوية (يتم تعيينها باستخدام DefaultTimeToLive):

    • إذا كانت مفقودة (أو تم تعيينها إلى خالية)، فلن تنتهي صلاحية العناصر تلقائيا.

    • إذا كانت موجودة وتم تعيين القيمة إلى "-1"، فهي تساوي اللانهاية، ولا تنتهي صلاحية العناصر بشكل افتراضي.

    • إذا كانت موجودة وتم تعيين القيمة إلى بعض الأرقام غير الصفرية "n" - ستنتهي صلاحية العناصر بالثوان "n" بعد آخر وقت تم تعديله.

  2. مدة البقاء في أحد العناصر (يتم تعيينها باستخدام ttl):

    • تنطبق هذه الخاصية فقط إذا كانت DefaultTimeToLive موجودة ولم يتم تعيينها إلى قيمة خالية للحاوية الأصل.

    • إذا كان موجوداً، فإنه يتجاوز قيمة DefaultTimeToLive للحاوية الرئيسية.

تكوينات مدة البقاء

  • إذا تم تعيين TTL على "n" في إحدى الحاوية، فستنتهي صلاحية العناصر الموجودة في تلك الحاوية بعد n ثانية. إذا كانت هناك عناصر في نفس الحاوية لها وقتها الخاص للعيش، فاضبط على -1 (مما يشير إلى أنها لا تنتهي صلاحيتها). إذا تجاوزت بعض العناصر وقت الإعداد المباشر برقم مختلف، تنتهي صلاحية هذه العناصر استنادا إلى قيمة TTL المكونة الخاصة بها.

  • إذا لم يتم تعيين TTL على حاوية، فلن يكون لوقت البقاء على عنصر في هذه الحاوية أي تأثير.

  • إذا تم تعيين TTL على حاوية إلى -1، فسينتهي صلاحية عنصر في هذه الحاوية يحتوي على وقت البقاء على n، بعد n ثانية، ولن تنتهي صلاحية العناصر المتبقية.

الأمثلة

يعرض هذا القسم بعض الأمثلة ذات الوقت المختلف للقيم الحية المخصصة للحاوية والعناصر:

إشعار

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

المثال 1

عُيِّن TTL في الحاوية على قيمة خالية (DefaultTimeToLive = خالية)

TTL على العنصر نتيجة
خاصية ttl مفقودة TTL معطل. لن تنتهي صلاحية العنصر أبداً (افتراضي).
ttl = -1 TTL معطل. لن تنتهي صلاحية العنصر أبدًا.
ttl = 2000 TTL معطل. لن تنتهي صلاحية العنصر أبدًا.

المثال 2

عُيِّن TTL في الحاوية على -1 (افتراضي TimeToLive = -1)

TTL على العنصر نتيجة
خاصية ttl مفقودة TTL ممكَّن. لن تنتهي صلاحية العنصر أبداً (افتراضي).
ttl = -1 TTL ممكَّن. لن تنتهي صلاحية العنصر أبدًا.
ttl = 2000 TTL ممكَّن. ستنتهي صلاحية العنصر بعد 2000 ثانية.

المثال 3

عُيِّن TTL في الحاوية على 1000 (DefaultTimeToLive = 1000)

TTL على العنصر نتيجة
خاصية ttl مفقودة TTL ممكَّن. ستنتهي صلاحية العنصر بعد 1000 ثانية (افتراضي).
ttl = -1 TTL ممكَّن. لن تنتهي صلاحية العنصر أبدًا.
ttl = 2000 TTL ممكَّن. ستنتهي صلاحية العنصر بعد 2000 ثانية.

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

تعرف على كيفية تكوين Time to Live في المقالات التالية: