إدارة الاحتفاظ بالبيانات باستخدام سياسات مدة البقاء (TTL)

ينطبق ذلك على إصدار Cloud Firestore Enterprise فقط.

توضّح هذه الصفحة كيفية استخدام وحدة تحكّم Google Cloud وGoogle Cloud CLI لضبط سياسات مدة البقاء (TTL).

نظرة عامة على مدة البقاء على قيد الحياة

استخدِم سياسات مدة البقاء (TTL) لإزالة البيانات القديمة تلقائيًا من قواعد البيانات. تحدّد سياسة TTL حقلاً معيّنًا ليكون وقت انتهاء صلاحية المستندات في مجموعة معيّنة. باستخدام مدة البقاء، يمكنك خفض تكاليف التخزين من خلال إزالة البيانات القديمة. يتم عادةً حذف البيانات في غضون 24 ساعة من تاريخ انتهاء صلاحيتها.

الأسعار

يتم احتساب عمليات الحذف حسب مدة البقاء (TTL) ضمن تكاليف حذف المستندات. للاطّلاع على أسعار عمليات الحذف، يُرجى الرجوع إلى أسعار إصدار Cloud Firestore Enterprise.

الحدود والقيود

  • يمكنك وضع علامة على حقل واحد فقط لكل مجموعة كحقل TTL.
  • يمكنك ضبط 500 إعداد كحدّ أقصى لوقت البقاء على قيد الحياة على مستوى الحقل.

حذف مدة البقاء (TTL)

يُرجى ملاحظة السلوكيات الرئيسية التالية للحذف المستند إلى مدة البقاء (TTL):

  • لا تتم عملية الحذف من خلال TTL بشكل فوري. تستمر المستندات المنتهية الصلاحية في الظهور في طلبات البحث والاسترجاع إلى أن تتم إزالتها فعليًا من خلال عملية TTL. تتضمن مدة البقاء (TTL) مقايضة بين سرعة حذف البيانات وميزة تقليل التكلفة الإجمالية للملكية لعمليات الحذف. يتم عادةً حذف البيانات في غضون 24 ساعة بعد تاريخ انتهاء صلاحيتها.

  • يؤدي تطبيق سياسة مدة البقاء على مجموعة حالية إلى حذف مجمّع لجميع البيانات المنتهية الصلاحية وفقًا لسياسة مدة البقاء الجديدة. يُرجى العِلم أنّ عملية الحذف المجمّع هذه ليست فورية أيضًا وتعتمد على مقدار البيانات المتوفّرة في تلك المجموعة.

  • إذا كان المستند يتضمّن وقت انتهاء صلاحية في الماضي وأضفت سياسة TTL جديدة إلى المجموعة، سيتم حذف المستند في غضون 24 ساعة من انتهاء إعداد سياسة TTL وتفعيلها.

  • لا يؤدي TTL بالضرورة إلى حذف المستندات بالترتيب نفسه الذي تم به تحديد الطوابع الزمنية لانتهاء صلاحيتها.

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

  • ستلتزم خدمة Cloud Firestore المتوافقة مع MongoDB دائمًا بأحدث حقل TTL لتحديد تاريخ انتهاء الصلاحية. على سبيل المثال، إذا تم تعديل حقل TTL لمستند منتهي الصلاحية ولكن لم يتم حذفه بعد إلى تاريخ لاحق، لن تنتهي صلاحية المستند وسيتم استخدام التاريخ الجديد.

  • لا تنتهي صلاحية مستند في Cloud Firestore المتوافق مع MongoDB إلا عندما يتم ضبط حقل TTL على نوع Date and time أو BSON Date. اترك الحقل فارغًا أو اضبطه على قيمة مثل null لإيقاف عمليات انتهاء الصلاحية على أساس كل مستند على حدة.

  • تم تصميم مدة البقاء (TTL) للحدّ من التأثير في أنشطة قاعدة البيانات الأخرى. يتم التعامل مع عمليات الحذف الناتجة عن TTL بأولوية أقل. تتوفّر استراتيجيات أخرى أيضًا لتخفيف حدّة الارتفاعات المفاجئة في عدد الزيارات الناتجة عن عمليات الحذف المستندة إلى قيمة TTL.

حقول ومؤشرات مدة البقاء (TTL)

يمكن فهرسة حقل TTL أو عدم فهرسته. ومع ذلك، بما أنّ حقل TTL هو طابع زمني، يمكن أن يؤثر فهرسة الحقل في الأداء عند معدلات الزيارات الأعلى. يمكن أن يؤدي فهرسة حقل الطابع الزمني إلى إنشاء نقاط نشاط، وهو ما يتعارض مع أفضل الممارسات. النقاط الفعّالة هي معدّلات قراءة وكتابة وحذف عالية لنطاق مستندات ضيق.

الأذونات

يجب أن يكون لدى الجهة الرئيسية التي تُعدّ سياسة مدة البقاء على قيد الحياة الإذن التالي في المشروع:

  • يتطلّب عرض سياسات TTL أذونات datastore.indexes.list وdatastore.indexes.get.
  • يتطلّب تعديل سياسات TTL الحصول على إذن datastore.indexes.update.
  • يتطلّب التحقّق من حالة عمليات TTL توفُّر الإذنَين datastore.operations.list وdatastore.operations.get.

للاطّلاع على الأدوار التي تمنح هذه الأذونات، يُرجى الرجوع إلى Cloud Firestore أدوار إدارة الهوية وإمكانية الوصول.

قبل البدء

قبل استخدام gcloud CLI لإدارة سياسات مدة البقاء (TTL)، استخدِم الأمر gcloud components update لتحديث المكوّنات إلى أحدث إصدار متاح:

gcloud components update

إنشاء سياسة TTL

عند إنشاء سياسة TTL، يمكنك تحديد حقل مستند ليكون وقت انتهاء الصلاحية للمستندات في مجموعة.

تستخدم ميزة "مدة البقاء" حقلًا محدّدًا لتحديد المستندات المؤهَّلة للحذف. يجب أن يكون حقل TTL هذا من النوع Timestamp أو BSON Date. يمكنك اختيار حقل متوفّر أو تحديد حقل تنوي إضافته لاحقًا.

يُرجى مراعاة ما يلي قبل ضبط قيمة حقل "مدة البقاء":

  • يمكن أن تكون قيمة حقل "مدة البقاء" وقتًا في المستقبل أو الآن أو في الماضي. إذا كانت القيمة تمثّل وقتًا سابقًا، يصبح المستند مؤهلاً للحذف على الفور. على سبيل المثال، يمكنك إنشاء سياسة TTL باستخدام الحقل expireAt، ثم إضافتها إلى المستندات الحالية.

  • سيؤدي استخدام أي نوع بيانات آخر أو عدم ضبط قيمة الحقل "مدة البقاء" إلى إيقاف مدة البقاء للمستند الفردي.

لإنشاء سياسة TTL، اتّبِع الخطوات التالية:

Google Cloud Console

  1. في Google Cloud Console، انتقِل إلى صفحة قواعد البيانات.

    الانتقال إلى "قواعد البيانات"

  2. اختَر قاعدة البيانات المطلوبة من قائمة قواعد البيانات.

  3. في قائمة التنقّل، انقر على مدة البقاء.

  4. انقر على إنشاء سياسة.

  5. أدخِل اسم مجموعة واسم حقل الطابع الزمني.

  6. انقر على إنشاء.

ستعود وحدة التحكّم إلى صفحة الوقت اللازم للبقاء على قيد الحياة. إذا بدأت العملية بنجاح، ستضيف الصفحة إدخالاً إلى جدول سياسات TTL. في حال حدوث خطأ، تعرض الصفحة رسالة خطأ.

gcloud

  1. ثبِّت واجهة سطر الأوامر gcloud CLI وابدأها.

  2. استخدِم الأمر firestore fields ttls update لإعداد سياسة TTL. أضِف العلامة --async لمنع gcloud CLI من انتظار اكتمال العملية.

     gcloud firestore fields ttls update
    ttl_field --collection-group=collection_name
    --enable-ttl 

مدة تفعيل سياسة مدة البقاء (TTL)

حتى في قاعدة بيانات فارغة، قد يستغرق تفعيل سياسة مدة البقاء على قيد الحياة عشر دقائق أو أكثر. بعد بدء عملية، لن يؤدي إغلاق نافذة الوحدة الطرفية إلى إلغاء العملية.

عرض سياسات مدة البقاء (TTL)

لعرض سياسات TTL وحالاتها، اتّبِع الخطوات التالية:

Google Cloud Console

  1. في Google Cloud Console، انتقِل إلى صفحة قواعد البيانات.

    الانتقال إلى "قواعد البيانات"

  2. اختَر قاعدة البيانات المطلوبة من قائمة قواعد البيانات.

  3. في قائمة التنقّل، انقر على مدة البقاء.

تعرض وحدة التحكّم سياسات TTL لقاعدة البيانات وتتضمّن حالة كل سياسة.

gcloud

  1. ثبِّت واجهة سطر الأوامر gcloud CLI وابدأها.

  2. استخدِم الأمر firestore fields ttls list لإعداد سياسة TTL. يعرض الأمر التالي جميع سياسات TTL.

    gcloud firestore fields ttls list
    

    لعرض سياسات TTL ضمن مجموعة معيّنة، استخدِم ما يلي:

    gcloud firestore fields ttls list  --collection-group=collection_name
    

عرض تفاصيل العملية

يمكنك استخدام gcloud CLI لعرض المزيد من التفاصيل حول سياسة TTL التي تكون في الحالة CREATING.

استخدِم الأمر operations list للاطّلاع على جميع العمليات الجارية والمكتملة مؤخرًا:

gcloud firestore operations list

يتضمّن الرد تقديرًا لمدى تقدّم العملية.

إيقاف سياسة TTL

لإيقاف سياسة TTL، اتّبِع الخطوات التالية:

Google Cloud Console

  1. في Google Cloud Console، انتقِل إلى صفحة قواعد البيانات.

    الانتقال إلى "قواعد البيانات"

  2. اختَر قاعدة البيانات المطلوبة من قائمة قواعد البيانات.

  3. في قائمة التنقّل، انقر على مدة البقاء.

  4. في جدول سياسات مدة البقاء (TTL)، ابحث عن صف سياسة مدة البقاء. ضمن صف الجدول هذا، انقر على الزر حذف (رمز سلة المهملات).

  5. أكِّد الإجراء بالنقر على حذف.

ستعود وحدة التحكّم إلى صفحة الوقت اللازم للبقاء على قيد الحياة. في حال النجاح، ستزيل خدمة Cloud Firestore المتوافقة مع MongoDB سياسة TTL من الجدول.

gcloud

  1. ثبِّت واجهة سطر الأوامر gcloud CLI وابدأها.

  2. استخدِم الأمر firestore fields ttls update لإعداد سياسة TTL. أضِف العلامة --async لمنع gcloud CLI من انتظار اكتمال العملية.

    gcloud firestore fields ttls update ttl_field --collection-group=collection_name --disable-ttl
    

مراقبة عمليات الحذف حسب مدة البقاء

يمكنك استخدام Cloud Monitoring لعرض مقاييس حول عمليات الحذف المستندة إلى TTL. توفّر Cloud Firestore مع توافق MongoDB المقاييس التالية لوقت البقاء (TTL):

نوع المقياس اسم المقياس وصف المقاييس
firestore.googleapis.com/document/ttl_deletion_count عدد عمليات الحذف حسب مدة البقاء

إجمالي عدد المستندات التي تم حذفها بموجب سياسات مدة البقاء (TTL)

firestore.googleapis.com/document/ttl_expiration_to_deletion_delays تأخيرات الحذف عند انتهاء صلاحية الوقت المحدّد

تمثّل هذه السمة الوقت المنقضي بين تاريخ انتهاء صلاحية المستند بموجب سياسة مدة البقاء (TTL) وتاريخ حذفه فعليًا.

لإعداد لوحة بيانات باستخدام Cloud Firestore مع مقاييس التوافق مع MongoDB، راجِع إدارة لوحة البيانات المخصّصة و إضافة تطبيقات مصغّرة إلى لوحة البيانات.