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

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

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

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

الأسعار

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

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

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

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

يُرجى ملاحظة السلوكيات الرئيسية التالية للحذف المستنِد إلى مهلة تخزين مؤقت:

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

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

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

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

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

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

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

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

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

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

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

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

الأذونات

يتطلب الإعداد الأساسي لسياسة TTL الإذن التالي في المشروع:

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

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

قبل البدء

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

gcloud components update

إنشاء سياسة وقت الاسترجاع

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

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

ضع في اعتبارك ما يلي قبل تعيين قيمة حقل TTL:

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

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

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

Google Cloud Console

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

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

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

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

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

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

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

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

gcloud

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

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

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

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

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

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

Google Cloud Console

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

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

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

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

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

gcloud

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

   gcloud firestore fields ttls list
   

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

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

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

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

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

gcloud firestore operations list

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

إيقاف سياسة TTL

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

Google Cloud Console

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

    الانتقال إلى Databases (قواعد البيانات)

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

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

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

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

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

gcloud

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

   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 تأخيرات حذف البيانات بعد انتهاء صلاحيتها

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

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