Catch up on highlights from Firebase at Google I/O 2023. Learn more

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

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

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

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

التسعير

تحتسب عمليات حذف TTL ضمن تكاليف حذف المستند. لتسعير عمليات الحذف ، راجع تسعير Cloud Firestore .

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

  • يمكن تحديد حقل واحد فقط لكل مجموعة مجموعة كحقل TTL.
  • يُسمح بإجمالي 200 تكوين على مستوى الحقل. يمكن أن يحتوي تكوين حقل واحد على تكوينات متعددة لنفس الحقل. على سبيل المثال ، يتم احتساب استثناء فهرسة الحقل الفردي وسياسة TTL في نفس الحقل كتكوين حقل واحد نحو الحد الأقصى.

حذف TTL

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

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

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

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

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

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

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

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

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

فهارس وحقول TTL

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

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

أذونات

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

  • يتطلب عرض نُهج TTL أذونات datastore.indexes.list و datastore.indexes.get .
  • يتطلب تعديل نُهج TTL الإذن datastore.indexes.update .
  • يتطلب التحقق من حالة عمليات TTL datastore.operations.list و datastore.operations.get .

بالنسبة إلى الأدوار التي تعين هذه الأذونات ، راجع أدوار Cloud Firestore Identity and Access Management .

قبل ان تبدأ

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

gcloud components update

قم بإنشاء سياسة TTL

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

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

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

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

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

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

جوجل كلاود كونسول

  1. انتقل إلى صفحة Cloud Firestore Time-to-live في وحدة تحكم Google Cloud Platform.

    انتقل إلى صفحة مدة البقاء

  2. انقر فوق إنشاء سياسة .

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

  4. انقر فوق إنشاء .

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

جوجل كلاود كونسول

انتقل إلى صفحة Cloud Firestore Time-to-live في وحدة تحكم Google Cloud Platform.

انتقل إلى صفحة مدة البقاء

تسرد وحدة التحكم سياسات 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.

جوجل كلاود كونسول

  1. انتقل إلى صفحة Cloud Firestore Time-to-live في وحدة تحكم Google Cloud Platform.

    انتقل إلى صفحة مدة البقاء

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

  3. قم بالتأكيد عن طريق النقر فوق حذف .

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

مراقبة عمليات الحذف TTL

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

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

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

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

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

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