ניהול התחייבויות לעומסי עבודה

‫BigQuery Reservation API מאפשר לכם לרכוש משבצות זמן ייעודיות (שנקראות התחייבויות), ליצור מאגרי משבצות זמן (שנקראים הזמנות) ולהקצות פרויקטים, תיקיות וארגונים להזמנות האלה.

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

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

הפעלת Reservations API

‫BigQuery Reservation API שונה מ-BigQuery API הקיים, וצריך להפעיל אותו בנפרד. מידע נוסף זמין במאמר הפעלה והשבתה של ממשקי API.

  • שם ה-API הוא BigQuery Reservations API
  • נקודת הקצה של BigQuery Reservation API היא bigqueryreservation.googleapis.com.

מפעילים את ה-API.

התחייבויות לרכישה

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

ההרשאות הנדרשות

כדי ליצור התחייבות לקיבולת, אתם צריכים את ההרשאה הבאה בממשק של ניהול הזהויות והרשאות הגישה (IAM):

  • bigquery.capacityCommitments.create בפרויקט הניהול שבו נשמרת הבעלות על ההתחייבויות.

כל אחד מהתפקידים הבאים שמוגדרים מראש ב-IAM כולל את ההרשאה הזו:

  • BigQuery Admin
  • BigQuery Resource Admin

מידע נוסף על תפקידי IAM ב-BigQuery זמין במאמר תפקידים והרשאות מוגדרים מראש.

יצירת מחויבות לקיבולת

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

המסוף

  1. נכנסים לדף BigQuery במסוף Cloud de Confiance .

    כניסה ל-BigQuery

  2. בתפריט הניווט, לוחצים על ניהול קיבולת.

  3. לוחצים על יצירת התחייבות.

  4. בקטע הגדרה:

    1. בוחרים את המיקום.
    2. בקטע Capacity model, בוחרים את מודל הקיבולת.
    3. אם בוחרים באפשרות 'התאמה אוטומטית לעומס (מהדורה)':
      1. בוחרים מהדורה מהרשימה Edition. התחייבויות לקיבולת נתמכות רק במהדורות Enterprise ו-Enterprise Plus.
    4. בוחרים את משך ההתחייבות, שמציין את תוכנית ההתחייבות.
    5. אם אתם רוכשים מינוי שנתי, בוחרים את תוכנית החידוש שרוצים שתופעל כשהמינוי יפוג:

      1. חידוש שנתי. כשתוקף ההתחייבות השנתית יפוג, היא תתחדש לשנה נוספת כהתחייבות שנתית.

      מידע נוסף זמין במאמר בנושא התחייבויות לשימוש במשבצות.

    6. מזינים את מספר המקומות שרוצים לרכוש.

    7. לוחצים על הבא.

  5. בודקים את העלות המשוערת של הרכישה בCost (עלות).

  6. בקטע אישור ושליחה:

    1. מקלידים CONFIRM (אישור) כדי לאשר את הרכישה.
    2. לוחצים על רכישה כדי לרכוש את היחידות.
  7. כדי לראות את ההתחייבות, לוחצים על View slot commitments (הצגת התחייבויות לשימוש במשבצות). אחרי שהקיבולת מוקצית, סטטוס ההתחייבות לקיבולת שביקשתם יהיה ירוק.

בפעם הראשונה שאתם רוכשים קיבולת, נוצרת default הזמנה.

SQL

כדי ליצור התחייבות לקיבולת, משתמשים בהצהרת DDL‏ CREATE CAPACITY.

  1. במסוף Cloud de Confiance , עוברים לדף BigQuery.

    כניסה ל-BigQuery

  2. מזינים את ההצהרה הבאה בעורך השאילתות:

    CREATE CAPACITY
      `ADMIN_PROJECT_ID.region-LOCATION.COMMITMENT_ID`
    OPTIONS (
      slot_count = NUMBER_OF_SLOTS,
      edition = EDITION,
      plan = 'PLAN_TYPE',
      renewal_plan = 'RENEWAL_PLAN_TYPE');

    מחליפים את מה שכתוב בשדות הבאים:

    • ADMIN_PROJECT_ID: מזהה פרויקט הניהול שישמור על הבעלות על ההתחייבות הזו.
    • LOCATION: המיקום של ההתחייבות
    • COMMITMENT_ID: מזהה ההתחייבות

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

    • NUMBER_OF_SLOTS: מספר יחידות הקיבולת לרכישה
    • EDITION: המהדורה שמשויכת להתחייבות לקיבולת. אפשר ליצור התחייבות לקיבולת רק במהדורות Enterprise או Enterprise Plus. מידע נוסף על מהדורות זמין במאמר מבוא למהדורות BigQuery.
    • PLAN_TYPE: סוג התוכנית. האפשרויות הן ANNUAL או THREE_YEAR.
    • RENEWAL_PLAN_TYPE: סוג תוכנית החידוש. האפשרויות הן NONE, ANNUAL או THREE_YEAR.

  3. לוחצים על הפעלה.

מידע נוסף על הרצת שאילתות זמין במאמר הרצת שאילתה אינטראקטיבית.

BQ

משתמשים בפקודה bq mk עם הדגל --capacity_commitment כדי לרכוש משבצות.

bq mk \
    --project_id=ADMIN_PROJECT_ID \
    --location=LOCATION \
    --capacity_commitment=true \
    --edition=EDITION \
    --plan=PLAN_TYPE \
    --renewal_plan=RENEWAL_PLAN_TYPE \
    --slots=NUMBER_OF_SLOTS

מחליפים את מה שכתוב בשדות הבאים:

  • ADMIN_PROJECT_ID: מזהה הפרויקט של פרויקט הניהול שישמור על הבעלות על ההתחייבות הזו
  • LOCATION: המיקום של ההתחייבות
  • EDITION: המהדורה שמשויכת להתחייבות לקיבולת. אפשר ליצור התחייבות לקיבולת רק במהדורות Enterprise או Enterprise Plus. מידע נוסף על מהדורות BigQuery זמין במאמר מבוא למהדורות BigQuery.
  • PLAN_TYPE: סוג התוכנית. האפשרויות הן ANNUAL או THREE_YEAR.
  • RENEWAL_PLAN_TYPE: סוג תוכנית החידוש. האפשרויות הן NONE, ANNUAL או THREE_YEAR.
  • NUMBER_OF_SLOTS: מספר יחידות הקיבולת לרכישה.

הצגת מחויבויות קיבולת

בקטעים הבאים מוסבר איך לראות את התחייבויות הקיבולת הקיימות.

ההרשאות הנדרשות

כדי לראות את ההתחייבויות, אתם צריכים את ההרשאה הבאה בממשק לניהול זהויות והרשאות גישה (IAM):

כל אחד מהתפקידים הבאים שמוגדרים מראש ב-IAM כולל את ההרשאה הזו:

  • BigQuery Admin
  • BigQuery Resource Admin
  • BigQuery Resource Editor
  • BigQuery Resource Viewer
  • BigQuery User

מידע נוסף על תפקידי IAM ב-BigQuery זמין במאמר תפקידים והרשאות מוגדרים מראש.

צפייה בהתחייבויות לקיבולת לפי פרויקט

כדי לראות את ההתחייבויות לקיבולת לפי פרויקט:

המסוף

  1. נכנסים לדף BigQuery במסוף Cloud de Confiance .

    כניסה ל-BigQuery

  2. בתפריט הניווט, לוחצים על ניהול קיבולת.

  3. לוחצים על הכרטיסייה התחייבויות לשימוש במשבצות. התחייבויות הקיבולת שלכם מפורטות בטבלה בקטע התחייבויות.

SQL

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

  1. במסוף Cloud de Confiance , עוברים לדף BigQuery.

    כניסה ל-BigQuery

  2. מזינים את ההצהרה הבאה בעורך השאילתות:

    SELECT
      capacity_commitment_id
    FROM
      `region-LOCATION`.INFORMATION_SCHEMA.CAPACITY_COMMITMENTS_BY_PROJECT
    WHERE
      project_id = 'ADMIN_PROJECT_ID'
      AND slot_count = 100;

    מחליפים את מה שכתוב בשדות הבאים:

  3. לוחצים על הפעלה.

מידע נוסף על הרצת שאילתות זמין במאמר הרצת שאילתה אינטראקטיבית.

BQ

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

bq ls \
    --capacity_commitment=true \
    --location=LOCATION \
    --project_id=ADMIN_PROJECT_ID

מחליפים את מה שכתוב בשדות הבאים:

עדכון מחויבויות קיבולת

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

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

ההרשאות הנדרשות

כדי לעדכן התחייבויות לקיבולת, אתם צריכים את ההרשאה הבאה בממשק של ניהול הזהויות והרשאות הגישה (IAM):

  • bigquery.capacityCommitments.update בפרויקט הניהול שבו נשמרת הבעלות על ההתחייבויות.

כל אחד מהתפקידים הבאים שמוגדרים מראש ב-IAM כולל את ההרשאה הזו:

  • BigQuery Admin
  • BigQuery Resource Admin

מידע נוסף על תפקידי IAM ב-BigQuery זמין במאמר תפקידים והרשאות מוגדרים מראש.

חידוש התחייבות

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

המסוף

כדי לשנות את תוכנית החידוש של מינוי עם התחייבות שנתית:

  1. נכנסים לדף BigQuery במסוף Cloud de Confiance .

    כניסה ל-BigQuery

  2. בתפריט הניווט, לוחצים על ניהול קיבולת.

  3. לוחצים על הכרטיסייה התחייבויות לשימוש במשבצות.

  4. מחפשים את ההתחייבות שרוצים לערוך.

  5. לוחצים על פעולות ובוחרים באפשרות עריכת תוכנית החידוש.

  6. בוחרים את תוכנית החידוש החדשה.

BQ

כדי לשנות את התוכנית שנבחרה לחידוש התחייבות שנתית, משתמשים בפקודה bq update עם הדגל --capacity_commitment ועם הדגל --renewal_plan.

bq update \
    --project_id=ADMIN_PROJECT_ID \
    --location=LOCATION \
    --renewal_plan=PLAN_TYPE \
    --capacity_commitment=true \
    COMMITMENT_ID

מחליפים את מה שכתוב בשדות הבאים:

המרת התחייבות לתקופה ארוכה יותר

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

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

כדי להמיר התחייבות, משתמשים בפקודה bq update עם הדגל --plan.

bq update \
    --project_id=ADMIN_PROJECT_ID \
    --location=LOCATION \
    --plan=PLAN_TYPE \
    --renewal_plan=RENEWAL_PLAN \
    --capacity_commitment=true \
    COMMITMENT_ID

מחליפים את מה שכתוב בשדות הבאים:

  • ADMIN_PROJECT_ID: מזהה הפרויקט
  • LOCATION: המיקום של ההתחייבות
  • PLAN_TYPE: סוג התוכנית, למשל ANNUAL או THREE_YEAR.
  • RENEWAL_PLAN: תוכנית החידוש

    ההגדרה הזו רלוונטית רק אם PLAN_TYPE הוא ANNUAL.

  • COMMITMENT_ID: מזהה ההתחייבות

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

פיצול התחייבות

אתם יכולים לפצל את ההתחייבות לשתי התחייבויות. האפשרות הזו שימושית אם רוצים לחדש חלק מההתחייבות. לדוגמה, אם יש לכם התחייבות שנתית ל-1,000 משבצות, תוכלו לפצל 300 משבצות להתחייבות חדשה, ולהשאיר 700 משבצות בהתחייבות המקורית. לאחר מכן תוכלו לחדש 700 מינויים בתעריף השנתי ולהמיר 300 מינויים להתחייבות לשלוש שנים. אפשר לפצל התחייבות במרווחים של 50 משבצות.

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

המסוף

  1. נכנסים לדף BigQuery במסוף Cloud de Confiance .

    כניסה ל-BigQuery

  2. בתפריט הניווט, לוחצים על ניהול קיבולת.

  3. לוחצים על הכרטיסייה התחייבויות לשימוש במשבצות.

  4. בוחרים את ההתחייבות שרוצים לפצל.

  5. לוחצים על פיצול.

  6. בדף Split commitment (פיצול התחייבות), משתמשים במחוון Configure split (הגדרת הפיצול) כדי לבחור כמה משבצות יוקצו לכל פיצול, במרווחים של 50 משבצות.

  7. לוחצים על פיצול כדי לפצל את ההתחייבות. ההתחייבות החדשה מופיעה בכרטיסייה Slot commitments.

BQ

כדי לפצל התחייבויות, משתמשים בפקודה bq update.

bq update \
    --project_id=ADMIN_PROJECT_ID \
    --location=LOCATION \
    --split \
    --slots=SLOTS_TO_SPLIT \
    --capacity_commitment=true \
    COMMITMENT_ID

מחליפים את מה שכתוב בשדות הבאים:

  • ADMIN_PROJECT_ID: מזהה הפרויקט
  • LOCATION: המיקום של ההתחייבות
  • SLOTS_TO_SPLIT: מספר המשבצות לפיצול מההתחייבות המקורית להתחייבות חדשה
  • COMMITMENT_ID: מזהה ההתחייבות

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

מיזוג של שתי התחייבויות

אתם יכולים למזג כמה התחייבויות להתחייבות אחת. כל ההתחייבויות למיזוג צריכות להיות מאותו סוג (ANNUAL או THREE_YEAR). תאריך הסיום של ההתחייבות המשולבת הוא תאריך הסיום המאוחר ביותר מבין ההתחייבויות המקוריות. אם לאחד מההתחייבויות יש תאריך סיום מוקדם יותר, תאריך הסיום שלו יוארך לתאריך המאוחר יותר ותחויבו בסכום יחסי על המקומות האלה.

המסוף

  1. נכנסים לדף BigQuery במסוף Cloud de Confiance .

    כניסה ל-BigQuery

  2. בתפריט הניווט, לוחצים על ניהול קיבולת.

  3. לוחצים על הכרטיסייה התחייבויות לשימוש במשבצות.

  4. בוחרים את ההתחייבויות שרוצים למזג.

  5. לוחצים על מיזוג.

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

BQ

כדי למזג שתי התחייבויות להתחייבות אחת, משתמשים בפקודה bq update:

bq update \
    --project_id=ADMIN_PROJECT_ID \
    --location=LOCATION \
    --merge=true \
    --capacity_commitment=true \
    COMMITMENT1,COMMITMENT2

מחליפים את מה שכתוב בשדות הבאים:

  • ADMIN_PROJECT_ID: מזהה הפרויקט
  • LOCATION: המיקום של ההתחייבויות
  • COMMITMENT1: ההתחייבות הראשונה למיזוג
  • COMMITMENT2: ההתחייבות השנייה למיזוג

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

אי אפשר לשדרג ישירות התחייבות למהדורה חדשה. לדוגמה, אי אפשר לשדרג התחייבות ממהדורת Enterprise למהדורת Enterprise Plus. במקום זאת, פועלים לפי השלבים הבאים כדי לשדרג התחייבות:

  1. יצירת התחייבות חדשה בוחרים את המהדורה המתאימה לשדרוג. שימו לב שתאריך הסיום של ההתחייבות החדשה שונה מתאריך הסיום של ההתחייבות הקיימת.

  2. כדי לבקש ביטול של ההתחייבות הקיימת, צריך לפנות לתמיכה.

תפוגת ההתחייבות

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

אחרי חידוש של התחייבות, הערך של שעת התחלה לא משתנה. הוא מתייחס לזמן ההתחלה של ההתחייבות המקורית. הערך של End time הוא השעה שבה פג תוקף ההתחייבות המחודשת. לדוגמה, אם יש לכם התחייבות שנתית שנוצרה ב-13 בדצמבר 2022 והיא חודשה ב-13 בדצמבר 2023. אם תצפו בפרטי ההתחייבות ב-14 בדצמבר 2023, הערך של שעת ההתחלה יהיה 13 בדצמבר 2022 והערך של שעת הסיום יהיה 12 בדצמבר 2024.

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

שליטה ביצירה של מחויבויות קיבולת

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

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

לדוגמה, המדיניות הבאה דוחה את ההרשאה של כל המשתמשים ליצור התחייבויות לקיבולת, למעט המשתמש lucian@example.com:

{
  "deniedPrincipals": [
    "principalSet://goog/public:all"
  ],
  "deniedPermissions": [
    "bigquery.googleapis.com/capacityCommitments.create"
  ],
  "exceptionPrincipals": [
    "principal://goog/subject/lucian@example.com"
  ]
}

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

שימו לב שהמדיניות הזו מקבלת עדיפות על פני תפקידי IAM, כך שגם משתמש עם תפקיד bigquery.admin לא יוכל ליצור התחייבות אלא אם המדיניות תימחק או תשתנה.

מידע נוסף מופיע במאמר דחיית הגישה למשאבים.

פתרון בעיות שקשורות למחויבויות קיבולת

בקטע הזה מתוארות פעולות לפתרון בעיות שיכולות לעזור לכם אם נתקלתם בבעיות בשימוש ב-BigQuery Reservations.

יחידות הקיבולת שנרכשו נמצאות בהמתנה

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

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

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