פעולות רבות על פריטי אחסון מאפשרות לכם להפוך משימות בכמות גדולה לאוטומטיות, כמו מחיקת אובייקטים או עדכון מטא-נתונים, במיליארדי אובייקטים בסביבה בלי שרת (serverless). האוטומציה הזו חוסכת לכם את הצורך לכתוב ולתחזק סקריפטים בהתאמה אישית, במיוחד במערכים ארגוניים גדולים שבהם הנתונים מפוזרים באלפי קטגוריות.
במאמר יצירה וניהול של משימות של פעולות רבות על פריטי אחסון מוסבר איך יוצרים משימות של פעולות רבות על פריטי אחסון. כדי לבצע שינויים באובייקטים בודדים, לא צריך ליצור משימה של פעולות באצווה. במקום זאת, אפשר לעיין במדריכים למשימות רגילות, כמו מחיקת אובייקטים או הצגה ועריכה של מטא-נתונים של אובייקטים.
סקירה כללית
אתם יכולים להשתמש בפעולות רבות על פריטי אחסון כדי לנהל מספר גדול של קבצים בפרויקט. כדי להתחיל, יוצרים הגדרת משימה. ההגדרה קובעת אילו טרנספורמציות להחיל על אובייקטים ספציפיים. הטרנספורמציות האלה כוללות הצבת החזקות של אובייקטים, מחיקת אובייקטים, עדכון המטא-נתונים וההקשרים של האובייקטים, שכתוב של אובייקטים ותיקון של אמצעי בקרת הגישה.
כששולחים משימה של פעולה באצווה, אפשר לעקוב אחרי הסטטוס שלה כדי לוודא שהמשימה מחילה את כל הטרנספורמציות שצוינו.
יתרונות
אלה היתרונות של פעולות רבות על פריטי אחסון:
- יכולת התאמה לעומס (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 rewrite object.
עדכונים של הקשרי אובייקטים: ניהול הקשרי האובייקטים שמשויכים לאובייקטים. אתם יכולים למחוק את כל ההקשרים הקיימים של האובייקטים או לבצע עדכונים ספציפיים, כמו הסרת מפתחות או הוספה ועדכון של צמדי מפתח/ערך.
עדכונים של סוגי אחסון של אובייקטים: אתם יכולים לשנות את סוג האחסון של אובייקטים בכמות גדולה כדי לבצע אופטימיזציה של העלויות.
עדכונים של רשימת בקרת הגישה (ACL) לאובייקטים: אתם יכולים לתקן את רשימות ה-ACL של האובייקטים כדי להוסיף, לעדכן או להסיר הרשאות לישויות כמו
allUsersו-allAuthenticatedUsers.
הרצת בדיקה (אופציונלי): אפשר להשתמש במצב הרצת בדיקה כדי למנוע הגדרות שגויות בקנה מידה גדול. הרצת בדיקה מדמה את הפעולה בלי לבצע טרנספורמציות. הסימולציה הזו עוזרת לאמת את הגדרות המשימה לפני שמריצים את המשימה בפועל. תוצאות ההרצה היבשה מספקות תצוגה מקדימה של הפרטים הבאים לפני שמריצים את המשימה:
מספר האובייקטים שהמשימה משפיעה עליהם.
שגיאות אפשריות.
הגודל הכולל של האובייקטים המושפעים, אם מסננים לפי קידומות של אובייקטים.
תמחור
כדי להעריך את החיובים על המשימה או על ההרצה היבשה, עיינו בתמחור של Cloud Storage.
אתם יכולים להשתמש בהרצה יבשה כדי לאמת את ההגדרות האישיות בלי לצבור עלויות תפעול, אבל יכול להיות שההרצה היבשה תצבור עלויות של הצגת אובייקטים.
מגבלות
אלה המגבלות של פעולות רבות על פריטי אחסון:
משך החיים המקסימלי של משימות של פעולות רבות על פריטי אחסון הוא 14 ימים. כל משימה מתמשכת שלא מסתיימת תוך 14 ימים ממועד היצירה שלה מבוטלת באופן אוטומטי.
אפשר לכלול עד 1,000 קידומות של אובייקטים במשימה אחת.
הפעלה של יותר מ-10 משימות בו-זמנית באותה קטגוריה פוגעת בביצועים של כל משימה.
אפשר להריץ משימה באצווה אחת על עד 1,000 קטגוריות בפרויקט.
מסנני קטגוריות ומסנני אובייקטים מוגבלים ל-150 תווים לכל היותר.
בפעולות רבות על פריטי אחסון, המערכת בוחרת באופן אוטומטי את זמן תמונת המצב של מערך הנתונים של Storage Insights על סמך המניפסט הגלובלי. הבחירה הזו מתאימה את כל הקטגוריות המטורגטות לאותו זמן של תמונת המצב לצורך גילוי אובייקטים. הזמן שנבחר לתמונת המצב הגלובלית מוחזר בתגובה מה-API. אם זמן ה-snapshot ישן יותר מיומיים, יצירת המשימה תיכשל. במאמר פתרון בעיות בפעולות רבות על פריטי אחסון מוסבר איך לפתור את הבעיה.
אי אפשר לבצע פעולות רבות על פריטי אחסון בקטגוריות שבהן מופעלת התכונה מגיש הבקשה משלם.
כשמשתמשים בקבוצות נתונים של Storage Insights לבחירת אובייקטים, פעולות רבות על פריטי אחסון מתמקדות באובייקטים פעילים ועדכניים נכון לתמונת המצב של קבוצת הנתונים שנבחרה.