רלוונטי רק למהדורת Cloud Firestore Enterprise. |
כדי למחוק נתונים ממסד הנתונים, משתמשים בשירות המנוהל למחיקה בכמות גדולה. התכונה הזו תומכת במחיקה של קבוצת אוספים אחת או יותר.
בדף הזה מוסבר איך למחוק מסמכים בכמות גדולה באמצעות שירות מחיקה בכמות גדולה מנוהל. שירות המחיקה בכמות גדולה של Cloud Firestore עם תאימות ל-MongoDB זמין באמצעות כלי שורת הפקודה gcloud
ו-REST API של Cloud Firestore.
לפני שמתחילים
לפני שמשתמשים בשירות המנוהל למחיקה בכמות גדולה, צריך לבצע את המשימות הבאות:
- מפעילים את החיוב בפרויקט Google Cloud. רק פרויקטים של Google Cloud עם חיוב מופעל יכולים להשתמש בפונקציית המחיקה בכמות גדולה.
-
מוודאים שיש לחשבון שלכם את ההרשאות הנדרשות ל-Cloud Firestore עם תאימות ל-MongoDB. אם אתם הבעלים של הפרויקט, יש לחשבון שלכם את ההרשאות הנדרשות. אחרת, התפקידים הבאים מעניקים את ההרשאות הנדרשות לפעולות מחיקה בכמות גדולה:
- Cloud Firestore עם תפקידים שתואמים ל-MongoDB:
Owner
, Cloud Datastore Owner
או Cloud Datastore Bulk Admin
- Cloud Firestore עם תפקידים שתואמים ל-MongoDB:
הגדרה של 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]
ניהול פעולות של מחיקה בכמות גדולה
אחרי שמתחילים פעולת מחיקה בכמות גדולה, Cloud Firestore עם תאימות ל-MongoDB מקצה לפעולה שם ייחודי. אפשר להשתמש בשם הפעולה כדי למחוק, לבטל או לבדוק את הסטטוס של הפעולה.
שמות הפעולות מתחילים בקידומת 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 עם תאימות ל-MongoDB המדד הזה לא יופיע אם לא ניתן להעריך אותו.
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 עם תאימות ל-MongoDB, החיוב הוא על העבודה בפועל. אם הפעולה בוטלה או נכשלה בגלל טעות של המשתמש, תחויבו על ההתקדמות שהושגה. ב-Cloud Firestore עם תאימות ל-MongoDB לא יחויבו קריאות או מחיקות של מסמכים שלא נמחקים בסופו של דבר, כמו מסמכים שמשתנים אחרי שהתחילה פעולת המחיקה. העלות תשויך ליום שבו הפעולה תושלם.
פעולות מחיקה בכמות גדולה לא מפעילות התראות על Google Cloud תקציב עד שהן מסתיימות. באופן דומה, פעולות קריאה ומחיקה שמתבצעות במהלך פעולת מחיקה בכמות גדולה נכללות בשימוש שלכם בחבילה החינמית אחרי שהפעולה מסתיימת. פעולות מחיקה בכמות גדולה לא משפיעות על השימוש שמוצג בקטע השימוש במסוף.
צפייה בעלויות של מחיקה בכמות גדולה
פעולות מחיקה בכמות גדולה מוסיפות את התווית goog-firestoremanaged:bulkdelete
לפעולות שמחויבות. בדף Cloud Billing reports, אפשר להשתמש בתווית הזו כדי לראות את העלויות שקשורות לפעולות של מחיקה בכמות גדולה.