از سرویس حذف انبوه مدیریت شده برای حذف داده ها از پایگاه داده خود استفاده کنید. این ویژگی از حذف در برابر یک یا چند گروه مجموعه پشتیبانی می کند.
این صفحه نحوه حذف انبوه اسناد را با استفاده از سرویس حذف انبوه مدیریت شده شرح می دهد. سرویس حذف انبوه مدیریت شده 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 ، ابزار خط فرمان را راه اندازی کرده و به یکی از روش های زیر به پروژه خود متصل شوید:
با استفاده از Cloud Shell از کنسول Google Cloud
gcloudدسترسی پیدا کنید.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 سند را حذف کرده است، 2 سند خوانده شده و 1500 سند حذف می شود.توجه داشته باشید که Cloud Firestore بر اساس کار واقعی انجام شده هزینه دریافت می کند. اگر عملیات به دلیل خطای کاربر لغو یا ناموفق باشد، هزینه پیشرفت انجام شده از شما کسر می شود. Cloud Firestore برای اسنادی که در نهایت حذف نمیشوند، مانند اسنادی که پس از شروع عملیات حذف اصلاح میشوند، هزینه خواندن یا حذف را دریافت نمیکند. هزینه در روز اتمام عملیات نسبت داده می شود.
عملیات حذف انبوه هشدارهای بودجه Google Cloud شما را تا پس از تکمیل فعال نمی کند. به طور مشابه، خواندن و حذف های انجام شده در طول عملیات حذف انبوه، پس از تکمیل عملیات، برای استفاده از لایه رایگان شما اعمال می شود. عملیات حذف انبوه بر میزان استفاده نشان داده شده در بخش استفاده از کنسول تأثیری ندارد.
مشاهده هزینه های حذف انبوه
عملیات حذف انبوه برچسب goog-firestoremanaged:bulkdelete را برای عملیات صورتحساب اعمال می کند. در صفحه گزارشهای صورتحساب ابری ، میتوانید از این برچسب برای مشاهده هزینههای مربوط به عملیات حذف انبوه استفاده کنید.
بهترین شیوه ها
از رد شدن بر روی داده های حذف شده که ممکن است پرس و جوها را کندتر کند، خودداری کنید .