פעולות אצווה באחסון

במאמר הזה מוסבר איך להשתמש בפעולות רבות על פריטי אחסון כדי לבצע פעולות על מיליארדי אובייקטים בסביבה בלי שרתים. בארגונים גדולים, יכול להיות שאובייקטים יפוזרו על פני אלפי קטגוריות. פעולות רבות על פריטי אחסון מאפשרות לבצע אוטומציה של פעולות בהיקף גדול על אובייקטים. האוטומציה הזו מקצרת את זמן הפיתוח שנדרש לכתיבה ולתחזוקה של סקריפטים לכל בקשה.

במאמר יצירה וניהול של משימות של פעולות בכמות גדולה באחסון יש הסבר איך ליצור משימות של פעולות בכמות גדולה באחסון.

סקירה כללית

אפשר להשתמש בפעולות אצווה של אחסון כדי לנהל מספרים גדולים של קבצים בפרויקט. כדי להתחיל, יוצרים הגדרת משימה. ההגדרה קובעת אילו טרנספורמציות יחולו על אובייקטים ספציפיים. הפעולות האלה כוללות הצבת הקפאה על אובייקטים, מחיקת אובייקטים, עדכון מטא-נתונים והקשרים של אובייקטים, שכתוב אובייקטים ועדכון הרשאות גישה.

כששולחים עבודת פעולות בקבוצה, אפשר לעקוב אחרי הסטטוס שלה כדי לוודא שהעבודה מבצעת את כל השינויים שצוינו.

יתרונות

היתרונות של פעולות רבות על פריטי אחסון:

  • יכולת הרחבה: אפשר לבצע טרנספורמציות על מיליוני אובייקטים באמצעות משימת פעולות אצווה אחת באחסון.
  • הרצה ללא שרת: הרצת משימות אצווה בסביבה ללא שרת, מה שמבטל את הצורך בניהול תשתית.
  • אוטומציה: אוטומציה של משימות מורכבות וחוזרות על עצמן כדי לשפר את היעילות התפעולית.
  • קיצור זמן הפיתוח: לא צריך לכתוב ולתחזק סקריפטים מותאמים אישית מורכבים.
  • שילוב של קבוצת נתונים של Storage Insights: אפשר לבחור אובייקטים ישירות על ידי ציון תנאים שתואמים לשדות בקבוצות הנתונים של Storage Insights. הבחירה הישירה הזו מייתרת את הצורך להרכיב ידנית קובץ מניפסט של CSV או להריץ שאילתות כדי לייצא את מערך הנתונים מ-BigQuery.
  • ביצועים: כדי להשלים פעולות שרגישות לזמן, אפשר להריץ כמה משימות אצווה בו-זמנית. לדוגמה, אפשר לעבד עד מיליארד אובייקטים תוך שלוש שעות.
  • ניסיונות חוזרים אוטומטיים: ניסיון חוזר אוטומטי של פעולות שנכשלו.
  • מעקב אחרי משימות: מעקב מפורט אחרי ההתקדמות כדי לנטר את הסטטוס וההשלמה של כל המשימות.

תרחישים לדוגמה

פעולות רבות על פריטי אחסון מאפשרות לנהל את האחסון בכל הארגון בצורה אוטומטית ופשוטה יותר. בתרחישים הנפוצים הבאים מוסבר איך הם עוזרים להגן על המשאבים, לארגן אותם ולנהל אותם:

  • הגנה על הנתונים: ניהול מצב האבטחה בקנה מידה. לדוגמה, אתם יכולים לבצע רוטציה של מפתחות הצפנה במיליוני אובייקטים, להחיל או להסיר הקפאות של אובייקטים כדי לאכוף את אי-השינוי, ולבצע תיקון של רשימות בקרת גישה (ACL) בכמות גדולה כדי להסיר גישת קריאה ציבורית לנתונים פרטיים.

  • שמירה על תאימות: עזרה בעמידה בתקנות בנושא שמירת נתונים. אפשר להשתמש בהקפאות ממוקדות של אובייקטים כדי לאכוף כללי שמירת נתונים, להגדיר ציר זמן ספציפי לתפוגה ולמחוק אובייקטים בתוך תקופה מסוימת כדי לעמוד בדרישות של מדיניות מחיקה.

  • המרת נתונים בהיקף נרחב: ביצוע עדכונים בכמות גדולה של מאפייני אובייקטים. לדוגמה, אפשר לעדכן מטא-נתונים מותאמים אישית או קבועים של אובייקט, ולתייג קבצים למערכות במורד הזרם על ידי עדכון או ניקוי של הקשרים המותאמים אישית של האובייקט.

  • ניהול עלויות האחסון: עזרה באופטימיזציה של ההוצאות על Cloud Storage. לדוגמה, אפשר למחוק בכמות גדולה אובייקטים פעילים שלא צריך, למחוק רשומות ישנות על ידי מחיקה סופית של גרסאות לא עדכניות של אובייקטים, ולהעביר אובייקטים באחסון Standard לסוגי אחסון שמתאימים לשימוש נדיר יותר, כמו אחסון בארכיון.

הגדרות של משימות

כדי ליצור משימה של פעולות אצווה לאחסון, מגדירים את הגדרות המשימה הבאות. הגדרות של משימות הן פרמטרים שקובעים איך המשימה מעבדת אובייקטים.

  • שם המשימה: שם ייחודי לזיהוי משימת הפעולות באצווה באחסון. משתמשים בשם הזה כדי לעקוב אחרי העבודה, לנטר אותה ולהפנות אליה. שמות המשרות מכילים אותיות וספרות, למשל job-01.

  • תיאור התפקיד (אופציונלי): תיאור קצר של מטרת התפקיד. התיאור הזה עוזר לכם להבין ולתעד את מה שהעבודה עושה. לדוגמה, Deletes all objects in a bucket.

  • Bucket list: רשימה מופרדת בפסיקים של שם אחד או יותר של קטגוריות שמכילות את האובייקטים שרוצים לעבד. אפשר לציין עד 1,000 קטגוריות מכל פרויקט, כל עוד כל קטגוריה רשומה לתוכנית של אחסון חכם.

  • בחירת אובייקטים: קריטריוני הבחירה שמגדירים אילו אובייקטים לעבד. אפשר לציין את הקריטריונים באמצעות אחת מהאפשרויות הבאות:

    • מסנני מערך נתונים: אפשר להשתמש ב-Common Expression Language ‏ (CEL) כדי לסנן אובייקטים על סמך שדות מטא-נתונים במערך הנתונים של Storage Insights. אפשר להריץ עבודות אצווה על אובייקטים בכמה קטגוריות בפרויקט. כשמשתמשים במסנני מערך נתונים לבחירת אובייקטים, פעולות אצווה של אחסון מכוונות לאובייקטים פעילים ועדכניים נכון לנקודת הזמן של צילום מערך הנתונים שנבחר. לכן, העבודה כוללת רק אובייקטים עם ערך NULL גם ל-softDeleteTime וגם ל-timeDeleted בזמן הצילום. מידע נוסף מופיע במאמר יצירת משימה באמצעות מסננים מתקדמים.

    • מניפסט: יוצרים מניפסט ומציינים את המיקום שלו כשיוצרים את משימת הפעולות באצווה של אחסון. המניפסט הוא קובץ CSV שמועלה אל Google Cloud ומכיל את רשימת האובייקטים לעיבוד. כל שורה במניפסט צריכה לכלול את bucket וname של האובייקט. אפשר גם לציין את generation של האובייקט. אם לא מציינים ערך ל-generation, העבודה מעבדת את הגרסה הפעילה של האובייקט.

      קובץ המניפסט חייב לכלול שורת כותרת בפורמט הבא:

      bucket,name,generation

      דוגמה למניפסט:

      bucket,name,generation
      bucket_1,object_1,generation_1
      bucket_1,object_2,generation_2
      bucket_2,object_3,generation_3
      

      אפשר גם ליצור קובץ מניפסט באמצעות מערכי נתונים של Storage Insights. פרטים נוספים זמינים במאמר בנושא יצירת קובץ מניפסט באמצעות מערכי נתונים של Storage Insights.

    • קידומות של אובייקטים: מציינים רשימה של קידומות לסינון אובייקטים בקטגוריה. העבודה מעבדת רק אובייקטים שתואמים לקידומות האלה. אם משאירים את רשימת הקידומות ריקה, העבודה מעבדת את כל האובייקטים בקטגוריה.

  • סוג העבודה: פעולות באצווה ב-Storage תומכות בסוגי העבודה הבאים, ומריצות משימה אחת לכל פעולה באצווה.

    • מחיקת אובייקטים: מחיקת אובייקטים בקטגוריה כדי לבצע אופטימיזציה של העלויות, לנהל את מחזור החיים של הנתונים ולעמוד בדרישות של מדיניות מחיקת הנתונים.

    • עדכוני מטא-נתונים: אפשר לשנות את המטא-נתונים הבאים של אובייקטים:

    • עדכונים של דגלי object hold: אתם יכולים להפעיל או להשבית דגלי object hold. החזקות של אובייקטים מונעות מחיקה או שינוי של אובייקטים. ההשעיות האלה חיוניות לצורך עמידה בדרישות ולשמירת נתונים.

    • עדכונים של מפתחות הצפנה של אובייקטים: אתם יכולים לנהל את מפתחות ההצפנה בניהול הלקוח של אובייקט אחד או יותר. היכולת הזו כוללת החלה או שינוי של מפתחות הצפנה באמצעות השיטה rewrite object.

    • עדכוני הקשר של אובייקטים: ניהול ההקשרים של אובייקטים שמשויכים לאובייקטים. אתם יכולים לנקות את כל ההקשרים הקיימים של האובייקט או לבצע עדכונים ספציפיים, כמו הסרת מפתחות או הוספה ועדכון של צמדים של מפתח/ערך.

    • עדכונים של סוג האחסון של אובייקטים: אתם יכולים לשנות את סוג האחסון של אובייקטים בכמות גדולה כדי לייעל את העלויות.

    • עדכונים ברשימות של בקרת גישה (ACL) לאובייקטים: אפשר לעדכן רשימות ACL של אובייקטים כדי להוסיף, לעדכן או להסיר הרשאות לישויות כמו allUsers ו-allAuthenticatedUsers.

  • הרצה יבשה (אופציונלי): כדאי להשתמש במצב הרצה יבשה כדי למנוע טעויות בהגדרות בהיקף גדול. הרצה יבשה מדמה את הפעולה בלי לבצע טרנספורמציות. הסימולציה הזו עוזרת לכם לאמת את הגדרות העבודה לפני שמריצים את העבודה בפועל. התוצאות של ההרצה היבשה מספקות תצוגה מקדימה של הפרטים הבאים לפני שמריצים את העבודה:

    • מספר האובייקטים שהעבודה משפיעה עליהם.

    • שגיאות אפשריות.

    • הגודל הכולל של האובייקטים המושפעים, אם מסננים לפי קידומות של אובייקטים.

תמחור

כדי לקבל הערכה של החיובים על העבודה או על הרצת בדיקה, אפשר לעיין במחירון של Cloud Storage.

אפשר להשתמש בהרצה יבשה כדי לאמת את ההגדרה בלי לשלם על פעולות, אבל יכול להיות שיהיו עלויות על רישום אובייקטים.

מגבלות

יש מגבלות על פעולות רבות על פריטי אחסון:

  • משך החיים המקסימלי של עבודות של פעולות אצווה באחסון הוא 14 ימים. כל משימה שמתבצעת ולא הושלמה תוך 14 ימים ממועד היצירה שלה תבוטל אוטומטית.

  • אפשר לכלול עד 1,000 קידומות של אובייקטים במשימה אחת.

  • הפעלת יותר מ-10 משימות בו-זמנית באותו מאגר גורמת לירידה בביצועים של כל משימה.

  • אפשר להריץ משימה באצווה אחת על עד 1,000 דליים בפרויקט.

  • המסננים של ה-Bucket והמסננים של האובייקט מוגבלים ל-150 תווים לכל היותר.

  • בפעולות רבות על פריטי אחסון, הזמן של תמונת מצב של מערך הנתונים של Storage Insights נבחר באופן אוטומטי על סמך המניפסט הגלובלי. הבחירה הזו תתאים לכל מאגרי היעד את אותו זמן צילום של תמונת מצב לצורך גילוי אובייקטים. השעה הגלובלית של הצילום שנבחרה מוחזרת בתגובת ה-API. אם ה-snapshot בוצע לפני יותר מיומיים, יצירת המשימה נכשלת. במאמר פתרון בעיות בפעולות אצווה ב-Storage מוסבר איך לפתור את הכשל הזה.

  • אי אפשר להשתמש בפעולות אצווה באחסון בקטגוריות שבהן מופעלת התכונה מגיש הבקשה משלם.

  • כשמשתמשים במערכי נתונים של Storage Insights לבחירת אובייקטים, פעולות אצווה של אחסון מכוונות לאובייקטים פעילים ועדכניים נכון לנקודת הזמן של מערך הנתונים שנבחר.

המאמרים הבאים