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

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

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

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

الأسعار

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

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

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

الحذف باستخدام مدة البقاء

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

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

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

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

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

  • لا تحذف مدة البقاء المستندات بالترتيب نفسه الذي تظهر به الطوابع الزمنية لانتهاء صلاحيتها.

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

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

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

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

  • تستدعي عملية الحذف من خلال مدة البقاء جميع مستمعي اللقطات النشطين وتفعِّل Cloud Functions Cloud Firestore المشغّلات.

حقول مدة البقاء والفهارس

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

تنشئ النسخة العادية من Cloud Firestore تلقائيًا فهرسًا لحقل واحد لجميع الحقول. يمكنك إنشاء إعفاء من فهرسة حقل واحد لإيقاف الفهارس في حقل مدة البقاء.

الأذونات

يحتاج الأساسي الذي يضبط سياسة مدة البقاء إلى الإذن التالي في المشروع:

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

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

إنشاء سياسة مدة البقاء

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

تستخدم مدة البقاء حقلًا محدّدًا لتحديد المستندات المؤهّلة للحذف. بالنسبة إلى قواعد بيانات الإصدار العادي، يجب ضبط حقل مدة البقاء على قيمة Date and time. بالنسبة إلى قواعد بيانات إصدار المؤسسة، يجب ضبطه على قيمة Date and time أو قيمة Array تحتوي على قيمة Date and time. يمكنك اختيار حقل حالي أو تحديد حقل تخطط لإضافته لاحقًا.

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

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

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

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

Google Cloud Console

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

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

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

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

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

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

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

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

gcloud

استخدِم الأمر firestore fields ttls update لضبط سياسة مدة البقاء. أضِف العلامة --async لمنع Google Cloud CLI من انتظار اكتمال العملية.

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

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

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

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

لعرض سياسات مدة البقاء وحالاتها، اتّبِع الخطوات التالية:

Google Cloud Console

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

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

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

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

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

gcloud

استخدِم الأمر firestore fields ttls list لضبط سياسة مدة البقاء. يعرض الأمر التالي جميع سياسات مدة البقاء.

   gcloud firestore fields ttls list
   

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

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

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

يمكنك استخدام Google Cloud CLI لعرض مزيد من التفاصيل حول سياسة مدة البقاء التي تكون في حالة CREATING

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

gcloud firestore operations list

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

إيقاف سياسة مدة البقاء

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

Google Cloud Console

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

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

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

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

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

  5. أكِّد من خلال النقر على حذف.

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

gcloud

1. استخدِم الأمر firestore fields ttls update لضبط سياسة مدة البقاء. أضِف العلامة --async لمنع Google Cloud CLI من انتظار اكتمال العملية.

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

تتبُّع عمليات الحذف التي تتم من خلال مدة البقاء

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

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

العدد الإجمالي للمستندات التي تم حذفها من خلال سياسات مدة البقاء.

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

الوقت المنقضي بين انتهاء صلاحية مستند بموجب سياسة مدة البقاء ووقت حذفه فعليًا.

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