استخدِم خدمة الحذف المجمّع المُدارة لحذف البيانات من قاعدة البيانات. تتيح هذه الميزة حذف البيانات من مجموعة واحدة أو أكثر من مجموعات المستندات.
توضّح هذه الصفحة كيفية حذف المستندات بشكلٍ مجمّع باستخدام خدمة الحذف المجمّع المُدارة. تتوفّر خدمة الحذف المجمّع المُدارة في Cloud Firestore من خلال أداة سطر الأوامر gcloud وCloud Firestore REST API.
قبل البدء
قبل أن تتمكّن من استخدام خدمة الحذف المجمّع المُدارة، عليك إكمال المهام التالية:
- لحذف المستندات بشكلٍ مجمّع، فعِّل الفوترة لمشروعك Google Cloud على Google Cloud. لا يمكن استخدام وظيفة الحذف المجمّع إلا في مشاريع Google Cloud التي تم تفعيل الفوترة فيها.
-
تأكَّد من أنّ حسابك لديه الأذونات اللازمة لاستخدام Cloud Firestore. إذا كنت مالك المشروع، حسابك لديه الأذونات المطلوبة. بخلاف ذلك، تمنح الأدوار التالية الأذونات اللازمة لعمليات الحذف المجمّع:
- Cloud Firestore أدوار:
OwnerأوCloud Datastore OwnerأوCloud Datastore Bulk Admin
- Cloud Firestore أدوار:
إعداد gcloud لمشروعك
يمكنك بدء عمليات الحذف المجمّع من خلال Google Cloud Console أو أداة سطر الأوامر gcloud. لاستخدام gcloud، عليك إعداد أداة سطر الأوامر والاتصال بمشروعك بإحدى الطرق التالية:
يمكنك الوصول إلى
gcloudمن Google Cloud Console باستخدام Cloud Shell.تأكَّد من ضبط
gcloudللمشروع الصحيح:gcloud config set project [PROJECT_ID]
حذف البيانات بشكلٍ مجمّع
تجد عملية الحذف المجمّع أولاً جميع المستندات السارية في قاعدة البيانات وتحذفها على شكل دفعات. قد يظل بإمكانك طلب هذه المستندات أو قراءتها، ولكن قد تختلف النتائج استنادًا إلى التقدّم المحرَز. لا تحذف عملية الحذف المجمّع أي مستندات تمت إضافتها أو تعديلها بعد بدء العملية.
حذف مجموعات مستندات معيّنة بشكلٍ مجمّع
gcloud
لحذف مجموعات مستندات معيّنة بشكلٍ مجمّع، استخدِم العلامة
--collection-ids.
لا تحذف العملية سوى مجموعات المستندات التي تحمل المعرّفات المُحدّدة.
تتضمّن مجموعة المستندات جميع المستندات والمستندات المضمّنة (في أي مسار) التي تحمل مجموعات المستندات المحدّدة.
gcloud firestore bulk-delete \ --collection-ids=[COLLECTION_GROUP_ID_1_OR_KIND_1],[COLLECTION_GROUP_ID_2_OR_KIND_2],[SUBCOLLECTION_GROUP_ID_1_OR_KIND_3] \ --database=[DATABASE]
restaurants ذات المستوى الأعلى في قاعدة بيانات cymbal. ضمن كل مستند مطعم، هناك مجموعات فرعية مضمّنة متعددة، مثل ratings وreviews وoutlets. لحذف مجموعتَي المستندات restaurants وreviews بشكلٍ مجمّع، سيبدو الأمر على النحو التالي:
gcloud firestore bulk-delete \ --collection-ids=restaurants,reviews \ --database='cymbal'
إدارة عمليات الحذف المجمّع
بعد بدء عملية الحذف المجمّع، يمنح Cloud Firestore العملية اسمًا فريدًا. يمكنك استخدام اسم العملية لحذفها أو إلغاؤها أو التحقّق من حالتها.
تسبق أسماء العمليات البادئة projects/[PROJECT_ID]/databases/[DATABASE_ID]/operations/، على سبيل المثال:
projects/my-project/databases/(default)/operations/ASA1MTAwNDQxNAgadGx1YWZlZAcSeWx0aGdpbi1zYm9qLW5pbWRhEgopEg
ومع ذلك، يمكنك حذف البادئة عند تحديد اسم عملية لأوامر describe وcancel وdelete.
عرض جميع عمليات الحذف المجمّع
gcloud
استخدِم الأمر operations list للاطّلاع على جميع العمليات الجارية و
المكتملة مؤخرًا، بما في ذلك عمليات الحذف المجمّع:
gcloud firestore operations list
التحقّق من حالة العملية
gcloud
استخدِم الأمر operations describe لعرض حالة
عملية الحذف المجمّع.
gcloud firestore operations describe [OPERATION_NAME]
تقدير وقت الإكمال
يعرض طلب حالة عملية طويلة المدى المقياسَين workEstimated وworkCompleted. يتم عرض كل من هذَين المقياسَين بعدد البايتات وعدد المستندات:
workEstimatedيعرض إجمالي عدد البايتات والمستندات التي من المتوقّع أن تعالجها العملية. Cloud Firestore قد يحذف هذا المقياس إذا لم يتمكّن من إجراء تقدير.workCompletedيعرض عدد البايتات والمستندات التي تم حذفها حتى الآن. بعد اكتمال العملية، تعرض القيمة إجمالي عدد البايتات والمستندات التي تمت معالجتها فعليًا، والتي قد تكون أكبر من قيمةworkEstimated.
قسِّم workCompleted على workEstimated للحصول على تقدير تقريبي للتقدّم المحرَز. قد يكون هذا التقدير غير دقيق، لأنّه يعتمد على جمع الإحصاءات المتأخرة.
إلغاء عملية
gcloud
استخدِم الأمر operations cancel لإيقاف عملية
قيد التنفيذ:
gcloud firestore operations cancel [OPERATION_NAME]
لا يؤدي إلغاء عملية قيد التنفيذ إلى التراجع عن العملية. لا تسترد عملية الحذف المجمّع الملغاة المستندات المحذوفة.
حذف عملية
استخدِم الأمر gcloud firestore operations delete لإزالة
عملية مكتملة من قائمة العمليات الأخيرة. لإلغاء عملية قيد التنفيذ، استخدِم عملية الإلغاء السابقة.
gcloud firestore operations delete [OPERATION_NAME]
الفوترة والتسعير لعمليات الحذف المجمّع
عليك تفعيل الفوترة لمشروعك Google Cloud قبل استخدام خدمة الحذف المجمّع المُدارة.
يتم تحصيل رسوم عمليات الحذف المجمّع مقابل قراءة المستندات وحذفها بال أسعار المُدرَجة في Cloud Firestore صفحة تسعير. تؤدي عمليات الحذف المجمّع إلى قراءة إدخال فهرس واحد لكل مستند يتم العثور عليه وعملية حذف واحدة لكل مستند يتم حذفه. يتم تحصيل رسوم عملية قراءة واحدة مقابل ما يصل إلى 1000 إدخال فهرس تتم قراءته. على سبيل المثال، بالنسبة إلى عملية حذف مجمّع حذفت 1500 مستند، سيتم تحصيل رسوم قراءتَين للمستندات و1500 عملية حذف للمستندات.يُرجى العِلم أنّ Cloud Firestore يفرض رسومًا على العمل الفعلي الذي تم إجراؤه. إذا تم إلغاء العملية أو تعذّر إكمالها بسبب خطأ من جانب المستخدم، سيتم تحصيل رسوم مقابل التقدّم المحرَز. Cloud Firestore لن يفرض رسومًا على عمليات القراءة أو الحذف لـ المستندات التي لم يتم حذفها في النهاية، مثل المستندات التي تم تعديلها بعد بدء عملية الحذف. سيتم احتساب التكلفة في يوم اكتمال العملية.
لا تؤدي عمليات الحذف المجمّع إلى تفعيل تنبيهات الميزانية في Google Cloud Google Cloud إلا بعد اكتمالها. وبالمثل، يتم تطبيق عمليات القراءة والحذف التي يتم إجراؤها أثناء عملية الحذف المجمّع على استخدامك ضمن المستوى المجاني بعد اكتمال العملية. لا تؤثر عمليات الحذف المجمّع في الاستخدام المعروض في قسم الاستخدام في وحدة التحكّم.
عرض تكاليف الحذف المجمّع
تطبِّق عمليات الحذف المجمّع التصنيف goog-firestoremanaged:bulkdelete على العمليات التي يتم تحصيل رسوم مقابلها. في صفحة تقارير "الفوترة من Google Cloud"، يمكنك
استخدام هذا التصنيف لعرض التكاليف المرتبطة بعمليات الحذف المجمّع.
أفضل الممارسات
تجنَّب تخطّي البيانات المحذوفة التي قد تؤدي إلى إبطاء طلبات البحث.