استخدِم خدمة الحذف المجمّع المُدارة لحذف البيانات من قاعدة البيانات. تتيح هذه الميزة الحذف من مجموعة واحدة أو أكثر من مجموعات البيانات.
توضّح هذه الصفحة كيفية حذف المستندات بشكل مجمّع باستخدام خدمة الحذف المجمّع المُدارة. تتوفّر خدمة
Cloud Firestore الحذف المجمّع المُدارة من خلال
أداة سطر الأوامر gcloud
وCloud Firestore REST API.
قبل البدء
قبل أن تتمكّن من استخدام خدمة الحذف المجمّع المُدارة، عليك إكمال المهام التالية:
- فعِّل الفوترة لمشروعك Google Cloud. يمكن فقط للمشاريع التي تم تفعيل الفوترة فيها استخدام وظيفة الحذف المجمّع.Google Cloud
-
تأكَّد من أنّ حسابك لديه الأذونات اللازمة لتنفيذ Cloud Firestore. إذا كنت مالك المشروع، يعني ذلك أنّ حسابك لديه الأذونات المطلوبة. بخلاف ذلك، تمنح الأدوار التالية الأذونات اللازمة لعمليات الحذف المجمّع:
- أدوار Cloud Firestore:
Owner
أوCloud Datastore Owner
أوCloud Datastore Bulk Admin
- أدوار Cloud Firestore:
إعداد gcloud
لمشروعك
يمكنك بدء عمليات الحذف المجمّع من خلال وحدة تحكّم Google Cloud أو أداة سطر الأوامر gcloud
. لاستخدام gcloud
، عليك إعداد أداة سطر الأوامر
والاتصال بمشروعك بإحدى الطرق التالية:
يمكنك الوصول إلى
gcloud
من "وحدة تحكّم Google Cloud" باستخدام Cloud Shell.تأكَّد من ضبط
gcloud
للمشروع الصحيح:gcloud config set project [PROJECT_ID]
ثبِّت حزمة تطوير البرامج (SDK) من Google Cloud وابدأ إعدادها.
حذف البيانات بشكلٍ مجمّع
تبحث عملية الحذف المجمّع أولاً عن جميع المستندات السارية في قاعدة البيانات وتحذفها على دفعات. سيظل بإمكانك البحث عن هذه المستندات أو قراءتها، ولكن قد تختلف النتائج استنادًا إلى التقدم المحرَز. لا تؤدي عملية الحذف المجمّع إلى حذف أي مستندات تمت إضافتها أو تعديلها بعد بدء العملية.
حذف مجموعات مختارات معيّنة بشكلٍ مجمّع
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. تتضمّن عمليات الحذف المجمّع قراءة إدخال فهرس واحد لكل مستند تم العثور عليه وعملية حذف واحدة لكل مستند تم حذفه. يتم تحصيل رسوم عملية قراءة واحدة مقابل ما يصل إلى 1,000 إدخال فهرس تتم قراءته. على سبيل المثال، بالنسبة إلى عملية حذف مجمّع حذفت 1500 مستند، سيتم تحصيل رسوم منك مقابل قراءتَي مستند و1500 عملية حذف مستند.يُرجى العِلم أنّ Cloud Firestore رسوم على العمل الفعلي الذي تم إنجازه. إذا تم إلغاء العملية أو تعذّر إجراؤها بسبب خطأ من المستخدم، سيتم تحصيل رسوم منك مقابل التقدم الذي تم إحرازه. لن يتم تحصيل رسوم مقابل عمليات القراءة أو الحذف للمستندات التي لن يتم حذفها في النهاية، مثل المستندات التي تم تعديلها بعد بدء عملية الحذف.Cloud Firestore سيتم احتساب التكلفة في يوم إكمال العملية.
لا تؤدي عمليات الحذف المجمّع إلى إطلاق تنبيهات Google Cloud الميزانية إلا بعد اكتمالها. وبالمثل، يتم تطبيق عمليات القراءة والحذف التي يتم تنفيذها أثناء عملية الحذف المجمّع على استخدامك في الطبقة المجانية بعد اكتمال العملية. لا تؤثّر عمليات الحذف المجمّع في الاستخدام المعروض في قسم الاستخدام بوحدة التحكّم.
عرض تكاليف الحذف المجمّع
تطبِّق عمليات الحذف المجمَّعة التصنيف goog-firestoremanaged:bulkdelete
على العمليات التي تتم فوترتها. في صفحة تقارير الفوترة من Cloud، يمكنك استخدام هذه التصنيف لعرض التكاليف المرتبطة بعمليات الحذف المجمّع.
أفضل الممارسات
تجنَّب تخطّي البيانات المحذوفة لأنّ ذلك قد يؤدي إلى إبطاء طلبات البحث.