تصف هذه الصفحة كيفية استخدام 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، انتقِل إلى صفحة قواعد البيانات.
اختَر قاعدة البيانات المطلوبة من قائمة قواعد البيانات.
في قائمة التنقّل، انقر على مدة البقاء.
انقر على إنشاء سياسة.
أدخِل اسم مجموعة مجموعات واسم حقل الطابع الزمني.
اختياري: اضبط إزاحة انتهاء الصلاحية. أدخِل قيمة واختَر وحدة (أيام أو ساعات أو دقائق أو ثوانٍ). تكون الإزاحة تلقائيًا 0.
انقر على إنشاء.
تعود وحدة التحكّم إلى صفحة مدة البقاء. إذا بدأت العملية بنجاح، تضيف الصفحة إدخالاً إلى جدول سياسات مدة البقاء. في حال حدوث خطأ، تعرض الصفحة رسالة خطأ.
gcloud
استخدِم الأمر firestore fields ttls
update
لضبط سياسة مدة البقاء. أضِف العلامة --async لمنع
gcloud CLI من انتظار اكتمال العملية.
gcloud firestore fields ttls update
ttl_field
--collection-group=collection_group_name
--enable-ttl
لتفعيل مدة البقاء مع إزاحة انتهاء الصلاحية، أضِف العلامة
--expiration-offset:
gcloud firestore fields ttls update
ttl_field
--collection-group=collection_group_name
--enable-ttl
--expiration-offset=expiration_offset
استبدِل expiration_offset بمدة، مثلاً 7d
لمدة 7 أيام أو 24h لمدة 24 ساعة. إذا لم تُضِف هذه العلامة، يتم ضبط إزاحة انتهاء الصلاحية
تلقائيًا على 0.
مدة تفعيل سياسة مدة البقاء
قد يستغرق تفعيل سياسة مدة البقاء عشر دقائق على الأقل أو أكثر. بعد بدء عملية، لا يؤدي إغلاق الجهاز إلى إلغاء العملية.
الاطّلاع على سياسات مدة البقاء
للاطّلاع على سياسات مدة البقاء وحالاتها، اتّبِع الخطوات التالية:
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، يُرجى الاطّلاع على إدارة لوحة بيانات مخصّصة و إضافة أدوات لوحة البيانات.