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