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

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

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

סקירה כללית

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

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

יתרונות

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    • מסננים של מערכי נתונים: אפשר להשתמש ב-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.

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

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

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

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

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

      • מטא-נתונים קבועים: אפשר לעדכן את Cache-Control,‏ Content-Disposition,‏ Content-Encoding,‏ Content-Language,‏ Content-Type,‏ Custom-Time והגדרת השמירה. כדי לשנות את ההשהיות של האובייקטים, צריך להשתמש בסוג העבודה 'עדכונים של השהיות אובייקטים'.

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

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

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

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

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

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

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

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

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

תמחור

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

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

מגבלות

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

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

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

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

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

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

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

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

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

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