تصف هذه الصفحة كيفية استخدام Google Cloud Console وGoogle Cloud CLI لضبط سياسات مدة البقاء (TTL). قبل قراءة هذه الصفحة، عليك فهم Cloud Firestore نموذج البيانات.
نظرة عامة على مدة البقاء
استخدِم سياسات مدة البقاء لإزالة البيانات القديمة تلقائيًا من قواعد البيانات. تحدّد سياسة مدة البقاء حقلًا معيّنًا كوقت انتهاء صلاحية المستندات في مجموعة مجموعات معيّنة. باستخدام مدة البقاء، يمكنك تقليل تكاليف التخزين من خلال إزالة البيانات القديمة. عادةً ما يتم حذف البيانات في غضون 24 ساعة بعد تاريخ انتهاء صلاحيتها.
الأسعار
تُحتسب عمليات الحذف التي تتم من خلال مدة البقاء ضمن تكاليف حذف المستندات. للتعرّف على أسعار عمليات الحذف، يُرجى الاطّلاع على Cloud Firestore pricing.
الحدود والقيود
- يمكنك وضع علامة على حقل واحد فقط لكل مجموعة مجموعات كحقل مدة البقاء.
- يمكنك إجراء ما يصل إلى 1000 عملية ضبط على مستوى الحقل. يمكن أن يحتوي ضبط الحقل الواحد على عمليات ضبط متعدّدة للحقل نفسه. على سبيل المثال، يُحتسب الإعفاء من الفهرسة لحقل واحد وسياسة مدة البقاء في الحقل نفسه كعملية ضبط حقل واحدة ضمن الحدّ المسموح به.
- بالنسبة إلى عملاء 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
في Google Cloud Console، انتقِل إلى صفحة قواعد البيانات.
اختَر قاعدة البيانات المطلوبة من قائمة قواعد البيانات.
في قائمة التنقّل، انقر على مدة البقاء.
انقر على إنشاء سياسة.
أدخِل اسم مجموعة مجموعات واسم حقل الطابع الزمني.
انقر على إنشاء.
تعود وحدة التحكّم إلى صفحة مدة البقاء. إذا بدأت العملية بنجاح، ستضيف الصفحة إدخالاً إلى جدول سياسات مدة البقاء. في حال حدوث خطأ، ستعرض الصفحة رسالة خطأ.
gcloud
استخدِم الأمر firestore fields ttls
update
لضبط سياسة مدة البقاء. أضِف العلامة --async لمنع
gcloud CLI من انتظار اكتمال العملية.
gcloud firestore fields ttls update ttl_field --collection-group=collection_group_name --enable-ttl
مدة تفعيل سياسة مدة البقاء
قد يستغرق تفعيل سياسة مدة البقاء عشر دقائق على الأقل أو أكثر. بعد بدء عملية، لا يؤدي إغلاق المحطة الطرفية إلى إلغاء العملية.
عرض سياسات مدة البقاء
لعرض سياسات مدة البقاء وحالاتها، اتّبِع الخطوات التالية:
Google Cloud Console
في Google Cloud Console، انتقِل إلى صفحة قواعد البيانات.
اختَر قاعدة البيانات المطلوبة من قائمة قواعد البيانات.
في قائمة التنقّل، انقر على مدة البقاء.
تعرض وحدة التحكّم سياسات مدة البقاء لقاعدة البيانات، بما في ذلك حالة كل سياسة.
gcloud
استخدِم الأمر
firestore fields ttls list
لضبط سياسة مدة البقاء. يعرض الأمر التالي جميع سياسات مدة البقاء.
gcloud firestore fields ttls list
لعرض سياسات مدة البقاء ضمن مجموعة مجموعات معيّنة، استخدِم ما يلي:
gcloud firestore fields ttls list --collection-group=collection_group_name
عرض تفاصيل العملية
يمكنك استخدام gcloud CLI لعرض مزيد من التفاصيل حول سياسة مدة البقاء التي تكون في حالة CREATING.
استخدِم الأمر operations list للاطّلاع على جميع العمليات الجارية و
المكتملة مؤخرًا:
gcloud firestore operations list
يتضمّن الردّ تقديرًا لمدى تقدّم العملية.
إيقاف سياسة مدة البقاء
لإيقاف سياسة مدة البقاء، اتّبِع الخطوات التالية:
Google Cloud Console
في Google Cloud Console، انتقِل إلى صفحة قواعد البيانات.
اختَر قاعدة البيانات المطلوبة من قائمة قواعد البيانات.
في قائمة التنقّل، انقر على مدة البقاء.
في جدول سياسات مدة البقاء، ابحث عن صف سياسة مدة البقاء. ضمن صف الجدول هذا، انقر على الزر حذف (سلة المهملات).
أكِّد من خلال النقر على حذف.
تعود وحدة التحكّم إلى صفحة مدة البقاء. في حال نجاح العملية، Cloud Firestore يزيل سياسة مدة البقاء من الجدول.
gcloud
1. استخدِم الأمر
firestore fields ttls update
لضبط سياسة مدة البقاء. أضِف العلامة --async لمنع
gcloud 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، يُرجى الاطّلاع على إدارة لوحة بيانات مخصّصة و إضافة أدوات لوحة البيانات.