می توانید از سرویس حذف انبوه مدیریت شده Cloud Firestore برای حذف داده ها از پایگاه داده خود استفاده کنید. این ویژگی از حذف در برابر یک یا چند گروه مجموعه پشتیبانی می کند.
این صفحه نحوه حذف انبوه اسناد Cloud Firestore را با استفاده از سرویس حذف انبوه مدیریت شده توضیح می دهد. سرویس حذف انبوه مدیریت شده Cloud Firestore از طریق ابزار خط فرمان gcloud
و Cloud Firestore API ( REST ، RPC ) در دسترس است.
قبل از شروع
قبل از اینکه بتوانید از سرویس حذف انبوه مدیریت شده استفاده کنید، باید کارهای زیر را انجام دهید:
- صورتحساب پروژه 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
دسترسی پیدا کنید.مطمئن شوید که
gcloud
برای پروژه صحیح پیکربندی شده است:gcloud config set project [PROJECT_ID]
حذف انبوه داده ها
عملیات حذف انبوه ابتدا تمام اسناد قابل اجرا را در پایگاه داده شما پیدا می کند و آنها را به صورت دسته ای حذف می کند. شما همچنان می توانید این اسناد را پرس و جو کنید یا بخوانید در حالی که نتایج ممکن است بر اساس پیشرفت انجام شده متفاوت باشد. حذف انبوه هیچ سندی را که پس از شروع عملیات اضافه یا اصلاح شده است حذف نخواهد کرد.
گروه های مجموعه خاص را به صورت انبوه حذف کنید
gcloud
برای حذف انبوه گروههای مجموعه خاص، از پرچم --collection-ids
استفاده کنید. این عملیات فقط گروه های مجموعه با شناسه های داده شده را حذف می کند. یک گروه مجموعه شامل تمام اسناد و اسناد تودرتو (در هر مسیر) با گروه های مجموعه مشخص شده است.
gcloud beta 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]
مدیریت عملیات حذف انبوه
پس از شروع عملیات حذف انبوه، 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
را برای عملیات صورتحساب اعمال می کند. در صفحه گزارشهای صورتحساب ابری ، میتوانید از این برچسب برای مشاهده هزینههای مربوط به عملیات حذف انبوه استفاده کنید.
بهترین شیوه ها
از رد شدن بر روی داده های حذف شده که ممکن است پرس و جوها را کندتر کند، خودداری کنید .