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

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

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

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

التسعير

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

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

  • يمكن وضع علامة على حقل واحد فقط لكل مجموعة تجميع كحقل TTL.
  • يُسمح بإجمالي 200 تكوين على مستوى الحقل. يمكن أن يحتوي تكوين حقل واحد على تكوينات متعددة لنفس الحقل. على سبيل المثال، يتم احتساب استثناء فهرسة الحقل الواحد وسياسة TTL على نفس الحقل كتكوين حقل واحد نحو الحد الأقصى.
  • بالنسبة لعملاء Firestore في وضع Datastore، لا يمكن استخدام TTL مع وضع التزامن Optimistic With Entity Groups . فكر في تغيير وضع التزامن بعد ذلك .

حذف TTL

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

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

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

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

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

قبل ان تبدأ

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

gcloud components update

إنشاء سياسة TTL

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

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

خذ بعين الاعتبار ما يلي قبل تعيين قيمة حقل TTL:

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

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

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

جوجل السحابية وحدة التحكم

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

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

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

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

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

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

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

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

com.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 وحالاتها.

جوجل السحابية وحدة التحكم

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

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

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

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

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

com.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. في Google Cloud Platform Console، انتقل إلى صفحة قواعد البيانات .

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

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

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

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

  5. قم بالتأكيد بالنقر فوق "حذف" .

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

com.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، راجع إدارة لوحة المعلومات المخصصة وإضافة عناصر واجهة المستخدم للوحة المعلومات .