אתם יכולים להשתמש בשירות המנוהל של Cloud Firestore למחיקה בכמות גדולה כדי למחוק נתונים מהמסד הנתונים. התכונה הזו תומכת במחיקה של קבוצת אוספים אחת או יותר.
בדף הזה נסביר איך למחוק מסמכי Cloud Firestore בכמות גדולה באמצעות השירות המנוהל למחיקה בכמות גדולה. השירות המנוהל של Cloud Firestore למחיקה בכמות גדולה זמין דרך הכלי בשורת הפקודה gcloud
ודרך ה-API של Cloud Firestore (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
, צריך להגדיר את כלי שורת הפקודה ולהתחבר לפרויקט באחת מהדרכים הבאות:
ניגשים ל-
gcloud
במסוף Google Cloud באמצעות Cloud Shell.מוודאים ש-
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. פעולות מחיקה בכמות גדולה כוללות קריאה של רשומת אינדקס אחת לכל מסמך שנמצא, ופעולה אחת של מחיקה לכל מסמך שנמחק. אתם מחויבים על פעולת קריאה אחת עבור עד 1,000 רשומות אינדקס שנקראו. לדוגמה, אם תבצעו פעולת מחיקה בכמות גדולה של 1,500 מסמכים, תחויבו ב-2 פעולות קריאה של מסמכים וב-1,500 פעולות מחיקה של מסמכים.
שימו לב ש-Cloud Firestore מחויב על העבודה שבוצעה בפועל. אם הפעולה תבוטל או תיכשל בגלל שגיאה של המשתמש, תחויבו על ההתקדמות שבוצעה. Cloud Firestore לא יחויב על קריאה או מחיקה של מסמכים שלא נמחקים בסופו של דבר (לדוגמה, מסמכים ששונו אחרי תחילת פעולת המחיקה). העלות תשויך ביום השלמת הפעולה.
פעולות מחיקה בכמות גדולה לא יפעילו את ההתראות לגבי תקציב Google Cloud עד שהן יסתיימו. באופן דומה, פעולות קריאה ומחיקה שמבוצעות במהלך פעולת מחיקה בכמות גדולה יחולו על המכסה או השימוש בחינם אחרי שהפעולה תושלם. פעולות מחיקה בכמות גדולה לא ישפיעו על השימוש שמוצג בקטע 'שימוש' במסוף.
הצגת העלויות של מחיקה בכמות גדולה
פעולות מחיקה בכמות גדולה מחילות את התווית goog-firestoremanaged:bulkdelete
על פעולות שמחויבות. בדף הדוחות של החיוב ב-Cloud, תוכלו להשתמש בתווית הזו כדי להציג עלויות שקשורות לפעולות מחיקה בכמות גדולה.
שיטות מומלצות
להימנע מדילוג על נתונים שנמחקו, כי זה עלול להאט את השאילתות.