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

ينطبق على: NoSQL

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

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

بالنسبة لحسابات معدل النقل المقدمة، يستخدم حذف العناصر منتهية الصلاحية وحدات الطلب المتبقية التي لم تستهلكها طلبات المستخدم.

بالنسبة للحسابات بلا خادم، يتم فرض رسوم على حذف العناصر منتهية الصلاحية في وحدات الطلب بنفس معدل عمليات حذف العنصر.

إشعار

يرتبط هذا المحتوى بمخزن عمليات 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 في المقالات التالية: