حذف البيانات بشكل مجمّع

استخدِم خدمة الحذف المجمّع المُدارة لحذف البيانات من قاعدة بياناتك. تتيح هذه الميزة حذف مجموعة واحدة أو أكثر من مجموعات البيانات.

خدمة الحذف المجمّع المُدارة

لحذف المستندات بشكل مجمّع، استخدِم خدمة الحذف المجمّع المُدارة. تتوفّر خدمة الحذف المجمّع المُدارة في Cloud Firestore من خلال أداة سطر الأوامر gcloud وCloud Firestore REST API.

قبل البدء

قبل أن تتمكّن من استخدام خدمة الحذف المجمّع المُدارة، عليك إكمال المهام التالية:

  1. لحذف المستندات بشكل مجمّع، يجب تفعيل الفوترة لمشروعك على Google Cloud. يمكن فقط لمشاريع Google Cloud التي تم تفعيل الفوترة فيها استخدام وظيفة الحذف المجمّع.
  2. تأكَّد من أنّ حسابك لديه الأذونات اللازمة لـ Cloud Firestore. إذا كنت مالك المشروع، سيكون لحسابك الأذونات المطلوبة. وإلا، تمنح الأدوار التالية الأذونات اللازمة لعمليات الحذف المجمّع:

    • أدوار Cloud Firestore: Owner أو Cloud Datastore Owner أو Cloud Datastore Bulk Admin

إعداد gcloud لمشروعك

يمكنك بدء عمليات الحذف المجمّعة من خلال وحدة تحكّم Google Cloud أو أداة سطر الأوامر gcloud. لاستخدام gcloud، عليك إعداد أداة سطر الأوامر والربط بمشروعك بإحدى الطرق التالية:

حذف البيانات باستخدام خدمة الحذف المجمّع المُدارة

تعثر عملية الحذف المجمّع أولاً على جميع المستندات السارية في قاعدة البيانات وتحذفها على دفعات. سيظل بإمكانك الاستعلام عن هذه المستندات أو قراءتها، ولكن قد تختلف النتائج حسب مستوى التقدّم الذي تم إحرازه. لا تؤدي عملية الحذف المجمّع إلى حذف أي مستندات تمت إضافتها أو تعديلها بعد بدء العملية.

الحذف المجمّع لمجموعات معيّنة من المجموعات

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 إلا بعد اكتمالها. وبالمثل، يتم تطبيق عمليات القراءة والحذف التي يتم إجراؤها أثناء عملية حذف مجمّع على استخدامك للفئة المجانية بعد اكتمال العملية. لا تؤثر عمليات الحذف المجمّع في الاستخدام الموضّح في قسم الاستخدام في وحدة التحكّم.

عرض تكاليف الحذف المجمّع

تطبّق عمليات الحذف المجمّعة التصنيف goog-firestoremanaged:bulkdelete على العمليات التي تتم فوترتها. في صفحة تقارير الفوترة في Cloud، يمكنك استخدام هذا التصنيف لعرض التكاليف ذات الصلة بعمليات الحذف المجمّع.

أفضل الممارسات

تجنَّب تخطّي البيانات المحذوفة التي قد تؤدي إلى إبطاء طلبات البحث.