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

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

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

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

الأسعار

يتم احتساب عمليات الحذف حسب مدة البقاء ضمن تكاليف حذف المستندات. للاطّلاع على أسعار عمليات الحذف، راجِع أسعار Cloud Firestore.

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

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

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

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

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

  • لا يؤدي حذف مستند من خلال TTL إلى حذف المجموعات الفرعية ضمن هذا المستند.

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

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

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

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

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

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

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

  • يؤدي الحذف من خلال TTL إلى استدعاء جميع أدوات معالجة اللقطات النشطة وتفعيل مشغّلات Cloud Functions وCloud Firestore.

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

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

تنشئ Cloud Firestore تلقائيًا فهرسًا بحقل واحد لجميع الحقول. يمكنك إنشاء استثناء لفهرس حقل واحد لإيقاف الفهارس في حقل 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 من النوع Date and time. يمكنك اختيار حقل متوفّر حاليًا أو تحديد حقل تنوي إضافته لاحقًا.

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

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

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

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

Google Cloud Console

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

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

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

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

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

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

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

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

gcloud

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

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

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

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

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

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

Google Cloud Console

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

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

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

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

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

gcloud

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

   gcloud firestore fields ttls list
   

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

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

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

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

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

gcloud firestore operations list

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

إيقاف سياسة TTL

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

Google Cloud Console

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

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

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

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

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

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

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

gcloud

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

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

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

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

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

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

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

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

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