توضّح هذه الصفحة كيفية استخدام Google Cloud Console وGoogle Cloud CLI لضبط سياسات مدة البقاء (TTL). قبل قراءة هذه الصفحة، يجب أن تفهم نموذج بيانات Cloud Firestore.
نظرة عامة على مدة البقاء
استخدِم سياسات مهلة التخزين المؤقت لإزالة البيانات القديمة تلقائيًا من قواعد بياناتك. تعين سياسة TTL حقلاً معينًا على أنه وقت انتهاء صلاحية المستندات الموجودة في مجموعة مجموعات معينة. باستخدام TTL، يمكنك تقليل تكاليف التخزين عن طريق إزالة البيانات القديمة. يتم عادةً حذف البيانات في غضون 24 ساعة من تاريخ انتهاء صلاحيتها.
الأسعار
يتم احتساب عمليات حذف مدة البقاء (TTL) ضمن تكاليف حذف المستندات. للاطّلاع على أسعار عمليات الحذف، يُرجى الاطّلاع على أسعار Cloud Firestore.
الحدود والقيود
- يمكن وضع علامة على حقل واحد فقط لكل مجموعة مجموعات على أنّه حقل TTL.
- يُسمح بإجمالي 200 إعداد على مستوى الحقل. يمكن أن تحتوي إعدادات حقل واحد على إعدادات متعددة للحقل نفسه. على سبيل المثال، يُحتسَب استثناء الفهرسة لحقل واحد وسياسة مدة البقاء (TTL) في الحقل نفسه على أنّهما إعداد حقل واحد ضمن الحدّ الأقصى.
- بالنسبة إلى عملاء Firestore في وضع "مخزن البيانات"، لا يمكن استخدام مدة البقاء (TTL) مع وضع المزامنة في "التفاؤل مع مجموعات الكيانات". يمكنك تغيير وضع التزامن إلى وضع التزامن المتفائل.
حذف مدة البقاء (TTL)
يُرجى ملاحظة السلوكيات الرئيسية التالية للحذف المستنِد إلى مهلة تخزين مؤقت:
لا تتم عملية الحذف من خلال TTL بشكل فوري. تستمر المستندات المنتهية الصلاحية في الظهور في طلبات البحث والبحث إلى أن تحذفها عملية TTL. تستبدل مدة البقاء (TTL) بالمواعيد الزمنية للحذف لصالح تخفيض التكلفة الإجمالية للملكية لعمليات الحذف. يتم عادةً حذف البيانات في غضون 24 ساعة من تاريخ انتهاء صلاحيتها.
لا يؤدي حذف مستند من خلال مدة البقاء (TTL) إلى حذف المجموعات الفرعية ضمن هذا المستند.
يؤدي تطبيق سياسة مهلة تخزين على مجموعة جمع حالية إلى إزالة كل البيانات المنتهية الصلاحية بشكل مجمّع وفقًا لسياسة المهلة الجديدة. يُرجى العلم أنّ عملية الحذف المجمّع هذه ليست فورية أيضًا وتعتمد على كمية البيانات المتوفّرة لمجموعة المجموعة هذه.
إذا كان للمستند وقت انتهاء صلاحية في الماضي وأضفت سياسة جديدة لوقت تخزين مؤقت إلى المجموعة، سيتم حذف المستند خلال 24 ساعة من وقت انتهاء إعداد سياسة وقت التخزين المؤقت وبدء تطبيقها.
لا يؤدي وقت الاستبدال إلى حذف المستندات بالترتيب نفسه الذي تم به تسجيل الطوابع الزمنية لانتهاء الصلاحية.
لا تتم عمليات الحذف على مستوى المعاملات. لا يتم بالضرورة حذف المستندات التي لها تاريخ انتهاء صلاحية مماثل في الوقت نفسه. إذا كنت بحاجة إلى هذا السلوك، يمكنك إجراء عمليات الحذف باستخدام مكتبة عملاء.
سيحترم Cloud Firestore دائمًا حقل مدة البقاء (TTL) الأخير لتحديد تاريخ انتهاء الصلاحية. على سبيل المثال، إذا تم تعديل حقل TTL لوثيقة منتهية الصلاحية ولكن لم يتم حذفها بعد إلى تاريخ لاحق، لن تنتهي صلاحية الوثيقة وسيتم استخدام التاريخ الجديد.
تم تصميم مدة البقاء (TTL) لتقليل التأثير في أنشطة قاعدة البيانات الأخرى. تتم معالجة عمليات الحذف التي تحدّدها مدة "وقت الاسترجاع" بأولوية أقل. تم وضع استراتيجيات أخرى أيضًا لتخفيف الارتفاعات المفاجئة في عدد الزيارات الناتجة عن عمليات الحذف المستندة إلى مهلة التخزين المؤقت.
يؤدي الحذف من خلال مهلة تخزين مؤقت إلى استدعاء جميع مثبّتي Cloud Functions Cloud Firestore النشطين ومشغّلات اللقطات.
حقول مدة البقاء والفهارس
يمكن فهرسة حقل 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 لإدارة سياسات مدة البقاء (TTL)، استخدِم الأمر
gcloud components update
لتحديث المكوّنات إلى أحدث إصدار متاح:
gcloud components update
إنشاء سياسة TTL
عند إنشاء سياسة مدة صلاحية، يمكنك تحديد حقل مستند على أنّه وقت انتهاء صلاحية المستندات في مجموعة مجموعات.
يستخدم TTL حقلًا محدّدًا لتحديد المستندات المؤهّلة للحذف.
يجب أن يكون حقل TTL هذا من النوع Date and time
. يمكنك اختيار حقل
حالي أو يمكنك تحديد حقل تخطّط لإضافته لاحقًا.
راجِع ما يلي قبل ضبط قيمة حقل مدة البقاء:
يمكن أن تكون قيمة حقل مدة البقاء (TTL) وقتًا في المستقبل أو الآن أو في الماضي. إذا كانت القيمة هي وقت في الماضي، يصبح المستند مؤهّلاً للحذف على الفور. على سبيل المثال، يمكنك إنشاء سياسة مدة صلاحية باستخدام الحقل
expireAt
، ثم إضافتها إلى المستندات الحالية.سيؤدي استخدام أي نوع بيانات آخر أو عدم ضبط قيمة حقل مدة البقاء (TTL) إلى إيقاف مدة البقاء للمستند الفردي.
لإنشاء سياسة مهلة تسجيل الدخول، اتّبِع الخطوات التالية:
Google Cloud Console
في وحدة التحكّم في Google Cloud، انتقِل إلى صفحة قواعد البيانات.
حدد قاعدة البيانات المطلوبة من قائمة قواعد البيانات.
في قائمة التنقّل، انقر على مدّة الصلاحية.
انقر على إنشاء سياسة.
أدخِل اسم مجموعة مجموعات واسم حقل طابع زمني.
انقر على إنشاء.
تعود وحدة التحكم إلى صفحة مدة البقاء. إذا بدأت العملية بنجاح، تُضيف الصفحة إدخالاً إلى جدول سياسات وقت الاستبدال المؤقت للذاكرة. في حال عدم نجاح العملية، ستعرض الصفحة رسالة خطأ.
gcloud
استخدِم الأمر firestore fields ttls
update
لضبط سياسة مهلة تسجيل البيانات. أضِف العلامة --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، انتقِل إلى صفحة القواعد البيانات.
اختَر قاعدة البيانات المطلوبة من قائمة قواعد البيانات.
في قائمة التنقّل، انقر على مدّة الصلاحية.
تعرض وحدة التحكّم سياسات مهلة الجلسة لقاعدة بياناتك، وتتضمّن حالة كل سياسة.
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
يتضمّن الردّ تقديرًا لمستوى تقدّم العملية.
إيقاف سياسة مهلة الجلسة
لإيقاف سياسة وقت الاستبدال، اتّبِع الخطوات التالية:
Google Cloud Console
في وحدة تحكّم Google Cloud، انتقِل إلى صفحة القواعد البيانات.
حدد قاعدة البيانات المطلوبة من قائمة قواعد البيانات.
في قائمة التنقّل، انقر على مدّة الصلاحية.
في جدول سياسة مدة البقاء، ابحث عن صف سياسة مدة البقاء. ضمن صف الجدول هذا، انقر على زر حذف (سلة المهملات).
أكِّد الإجراء بالنقر على حذف.
تعود وحدة التحكم إلى صفحة مدة البقاء. في حال نجاح العملية، تتم إزالة سياسة 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
مراقبة عمليات حذف مدّة البقاء
يمكنك استخدام Cloud Monitoring لعرض مقاييس عن عمليات الحذف المستندة إلى وقت الاستبدال. توفّر الدالة Cloud Firestore المقاييس التالية لمدة البقاء:
نوع المقياس | اسم المقياس | وصف المقاييس |
---|---|---|
firestore.googleapis.com/document/ttl_deletion_count | عدد عمليات حذف مدة البقاء |
إجمالي عدد المستندات التي تم حذفها بموجب سياسات مهلة التخزين المؤقت |
firestore.googleapis.com/document/ttl_expiration_to_deletion_delays | تأخيرات حذف البيانات بعد انتهاء صلاحيتها |
انقضى الوقت بين وقت انتهاء صلاحية مستند بموجب سياسة TTL ووقت حذفه فعليًا. |
لإعداد لوحة بيانات تتضمّن مقاييس Cloud Firestore، اطّلِع على إدارة لوحة البيانات المخصّصة وإضافة تطبيقات مصغّرة للوحة البيانات.