استخدِم خدمة الحذف المجمّع المُدارة لحذف البيانات من قاعدة البيانات. تتيح هذه الميزة الحذف من مجموعة واحدة أو أكثر من مجموعات البيانات.
خدمة الحذف المجمّع المُدارة
لحذف المستندات بشكل مجمّع، استخدِم خدمة الحذف المجمّع المُدارة. تتوفّر خدمة 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]
حذف البيانات باستخدام خدمة الحذف المجمّع المُدارة
تؤدي عملية الحذف المجمّع أولاً إلى العثور على جميع المستندات السارية في قاعدة البيانات وحذفها على دفعات. سيظل بإمكانك طلب هذه المستندات أو قراءتها، ولكن قد تختلف النتائج استنادًا إلى التقدم المحرز. لا تؤدي عملية الحذف المجمّع إلى حذف أي مستندات تمت إضافتها أو تعديلها بعد بدء العملية.
الحذف المجمّع لمجموعات مجموعات معيّنة
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 إدخال فهرس تتم قراءته. على سبيل المثال، بالنسبة إلى عملية حذف مجمّع حذفت 1, 500 مستند، سيتم تحصيل رسوم منك مقابل قراءة مستندَين وحذف 1, 500 مستند.يُرجى العِلم أنّ Cloud Firestore رسوم على العمل الفعلي الذي تم إنجازه. إذا تم إلغاء العملية أو تعذّر إجراؤها بسبب خطأ من المستخدم، سيتم تحصيل رسوم منك مقابل التقدم الذي تم إحرازه. Cloud Firestore لن يتم تحصيل رسوم مقابل عمليات القراءة أو الحذف للمستندات التي لن يتم حذفها نهائيًا، مثل المستندات التي تم تعديلها بعد بدء عملية الحذف. سيتم احتساب التكلفة في يوم إكمال العملية.
لا تؤدي عمليات الحذف المجمّع إلى إطلاق تنبيهات Google Cloud الميزانية إلا بعد اكتمالها. وبالمثل، يتم تطبيق عمليات القراءة والحذف التي يتم تنفيذها أثناء عملية حذف مجمّع على استخدامك للطبقة المجانية بعد اكتمال العملية. لا تؤثّر عمليات الحذف المجمّع في الاستخدام المعروض في قسم الاستخدام ضمن وحدة التحكّم.
عرض تكاليف الحذف المجمّع
تطبِّق عمليات الحذف المجمّعة التصنيف goog-firestoremanaged:bulkdelete على العمليات الخاضعة للفوترة. في صفحة تقارير الفوترة من Cloud، يمكنك استخدام هذا التصنيف لعرض التكاليف المرتبطة بعمليات الحذف المجمّع.
أفضل الممارسات
تجنَّب تخطّي البيانات المحذوفة لأنّ ذلك قد يؤدي إلى إبطاء عمليات البحث.