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

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

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

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

ملاحظة

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

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

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

  1. مدة البقاء في الحاوية (تُضبط باستخدام DefaultTimeToLive):

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

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

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

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

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

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

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

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

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

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

أمثلة

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

مثال 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 في المقالات التالية: