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

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

نظرة عامة حول وقت بدء البث المباشر

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

الأسعار

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

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

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

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

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

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

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

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

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

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

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

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

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

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

حقول وفهارس TTL

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

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

الأذونات

يتطلب الإعداد الأساسي لسياسة 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، يمكنك تعيين حقل المستند كوقت انتهاء صلاحية المستندات في مجموعة مجموعات.

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

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

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

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

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

Google Cloud Console

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

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

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

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

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

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

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

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

gcloud

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

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

مدة تفعيل سياسة TTL

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

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

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

Google Cloud Console

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

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

  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 لعرض مزيد من التفاصيل حول سياسة مدة البقاء الخاضعة لحالة CREATING.

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

gcloud firestore operations list

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

إيقاف سياسة TTL

لتعطيل سياسة مدة البقاء (TTL)، اتبع الخطوات التالية:

Google Cloud Console

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

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

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

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

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

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

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

gcloud

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

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

مراقبة عمليات حذف مدة البقاء (TTL)

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

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

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

firestore.googleapis.com/document/ttl_expiration_to_deletion_delays انتهاء صلاحية المدة المستغرَقة في تنفيذ عمليات الحذف

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

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