حذف انبوه داده‌ها

از سرویس حذف انبوه مدیریت‌شده برای حذف داده‌ها از پایگاه داده‌تان استفاده کنید. این ویژگی از حذف در یک یا چند گروه مجموعه پشتیبانی می‌کند.

سرویس حذف انبوه مدیریت‌شده

برای حذف انبوه اسناد، از سرویس حذف انبوه مدیریت‌شده استفاده کنید. سرویس حذف انبوه مدیریت‌شده 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 محاسبه می‌شود. عملیات حذف انبوه شامل یک خواندن ورودی نمایه به‌ازای هر سند یافت‌شده و یک عملیات حذف به‌ازای هر سند حذف‌شده است. برای خواندن حداکثر ۱۰۰۰ ورودی نمایه، هزینه یک عملیات خواندن از شما کسر می‌شود. برای مثال، برای عملیات حذف انبوهی که ۱۵۰۰ سند را حذف کرده است، هزینه ۲ خواندن سند و ۱۵۰۰ حذف سند از شما کسر خواهد شد.

توجه داشته باشید که Cloud Firestore برای کار واقعی انجام‌شده هزینه دریافت می‌کند. اگر عملیات به‌دلیل خطای کاربر لغو شود یا ناموفق باشد، هزینه پیشرفت حاصل‌شده از شما کسر خواهد شد. Cloud Firestore برای اسنادی که درنهایت حذف نمی‌شوند، مثل اسنادی که پس‌از شروع عملیات حذف اصلاح می‌شوند، هزینه خواندن یا حذف کردن کسر نمی‌کند. هزینه در روز تکمیل عملیات کسر خواهد شد.

عملیات حذف انبوه تا زمانی که تکمیل نشود، هشدارهای بودجه Google Cloud شما را فعال نمی‌کند. به‌طور مشابه، خواندن‌ها و حذف‌های انجام‌شده درطول عملیات حذف انبوه پس‌از تکمیل عملیات بر استفاده از ردیف رایگان شما اعمال می‌شود. عملیات حذف انبوه بر میزان استفاده نشان‌داده‌شده در بخش استفاده کنسول تأثیری ندارد.

مشاهده هزینه‌های حذف انبوه

عملیات حذف انبوه برچسب goog-firestoremanaged:bulkdelete را به عملیات صورت‌حساب‌شده اعمال می‌کند. در صفحه گزارش‌های Cloud Billing، می‌توانید از این برچسب برای مشاهده هزینه‌های مربوط به عملیات حذف انبوه استفاده کنید.

روال‌های مطلوب

از نادیده گرفتن داده‌های حذف‌شده خودداری کنید زیرا ممکن است سرعت پُرسمان‌ها را کاهش دهد.