ניהול הקצאות של עומסי עבודה
BigQuery Reservation API מאפשר לכם לרכוש משבצות זמן ייעודיות (שנקראות התחייבויות), ליצור מאגרי משבצות זמן (שנקראים הזמנות) ולהקצות פרויקטים, תיקיות וארגונים להזמנות האלה.
יצירת הקצאות של הזמנות
כדי להשתמש במשבצות שרכשתם, אתם יוצרים הקצאה שמקצה פרויקט, תיקייה, ארגון או חשבון משתמש להזמנת משבצת. אי אפשר להקצות או להקצות מספר מסוים של משבצות ברמת ההקצאה. המשבצות מנוהלות ומוקצות ברמת ההזמנה.
הלוגיקה והקריטריונים של ההקצאה
פרויקטים משתמשים בהזמנה הספציפית ביותר בהיררכיית המשאבים שאליה הם משויכים. הלוגיקה הבאה משמשת ב-BigQuery לבחירת המקום השמור המתאים:
- העדיפות של היררכיית המשאבים: מערכת BigQuery מעריכה את ההקצאות על סמך ישות האב של המשאב שהוקצה (פרויקט > תיקייה > ארגון). הקצאות של תיקיות וארגונים לא זמינות בהזמנות של מהדורת Standard.
הקצאות ספציפיות למשתמש באמצעות המאפיין
principal(גרסת Preview): הקצאות של מקומות שמורים ב-BigQuery תומכות במאפיין אופציונליprincipal, שמאפשר לאדמינים לנתב שאילתות למקומות שמורים ספציפיים על סמך הזהות של המשתמש או חשבון השירות שמבצעים את העבודה. במשאב מסוים של מקבל ההקצאה, הקצאה עם חשבון משתמש תואם מקבלת עדיפות על פני הקצאה כללית שבה חשבון המשתמש לא מוגדר.מגבלת ברירת המחדל לכל פרויקט של הקצאות ספציפיות למשתמשים היא 10. כדי לקבל עזרה בשינוי מגבלת ברירת המחדל, אפשר לפנות לכתובת bigquery-wlm-feedback@google.com.
כדי ליצור הקצאה בהזמנה, ההזמנה צריכה לעמוד לפחות באחד מהקריטריונים הבאים:
הוא מוגדר עם מספר חריצים בסיסיים שמוקצים לו, שהוא לא אפס.
הוא מוגדר עם מספר חריצים שאינו אפס להתאמה אוטומטית של נפח האחסון.
הוא מוגדר לשימוש ביחידות קיבולת (Slot) פנויות, ויש יחידות קיבולת (Slot) פנויות בפרויקט.
אם תנסו להקצות משאב להזמנה שלא עומדת לפחות באחד מהקריטריונים האלה, תוצג לכם ההודעה הבאה: Assignment is pending, your project will be executed as on-demand.
אפשר להקצות משאב להזמנת מעבר לגיבוי ולשחזור, אבל ההקצאה תהיה בהמתנה במיקום המשני.
ההרשאות הנדרשות
כדי ליצור הקצאה של הזמנה, אתם צריכים את ההרשאה הבאה לניהול זהויות והרשאות גישה (IAM):
-
bigquery.reservationAssignments.createבפרויקט הניהול ובמקבל ההקצאה.
כל אחד מהתפקידים הבאים שמוגדרים מראש ב-IAM כולל את ההרשאה הזו:
BigQuery AdminBigQuery Resource AdminBigQuery Resource Editor
מידע נוסף על תפקידי IAM ב-BigQuery זמין במאמר תפקידים והרשאות מוגדרים מראש.
הקצאת ארגון להזמנה
המסוף
במסוף Cloud de Confiance , עוברים לדף BigQuery.
בתפריט הניווט, לוחצים על Workload management.
לוחצים על הכרטיסייה הזמנות.
מוצאים את ההזמנה בטבלת ההזמנות.
מרחיבים את האפשרות Actions (פעולות).
לוחצים על יצירת מטלה.
בקטע יצירת מטלה, לוחצים על עיון.
מחפשים את הארגון או מנווטים אליו ובוחרים אותו.
בקטע Job Type, בוחרים את סוג העבודה שרוצים להקצות להזמנה הזו. אלו הן חלק מהאפשרויות:
QUERYCONTINUOUSPIPELINEBACKGROUNDML_EXTERNAL
מידע נוסף על סוגי משימות זמין במאמר הקצאות של הזמנות. ערך ברירת המחדל הוא
QUERY.מידע נוסף על מתן הרשאה למשתמשים להשתמש ב-Gemini ב-BigQuery באמצעות מטלות במהדורת Enterprise Plus זמין במאמר הגדרת Gemini ב-BigQuery.
אופציונלי: בשדה User, מזינים את כתובת האימייל של המשתמש, חשבון השירות או הזהות של הצד השלישי.
לוחצים על יצירה.
SQL
כדי להקצות ארגון להזמנה, משתמשים בהצהרת ה-DDL CREATE ASSIGNMENT.
במסוף Cloud de Confiance , עוברים לדף BigQuery.
מזינים את ההצהרה הבאה בעורך השאילתות:
CREATE ASSIGNMENT `ADMIN_PROJECT_ID.region-LOCATION.RESERVATION_NAME.ASSIGNMENT_ID` OPTIONS ( assignee = 'organizations/ORGANIZATION_ID', job_type = 'JOB_TYPE', principal = 'PRINCIPAL');
מחליפים את מה שכתוב בשדות הבאים:
-
ADMIN_PROJECT_ID: מזהה הפרויקט של פרויקט הניהול שבבעלותו משאב ההזמנה -
LOCATION: המיקום של ההזמנה -
RESERVATION_NAME: השם של ההזמנה
ASSIGNMENT_ID: מזהה ההקצאההמזהה צריך להיות ייחודי לפרויקט ולמיקום, להתחיל ולהסתיים באות קטנה או במספר, ולהכיל רק אותיות קטנות, מספרים ומקפים.
-
ORGANIZATION_ID: מזהה הארגון -
JOB_TYPE: סוג העבודה שיוקצה להזמנה הזו, למשלQUERY,CONTINUOUS,PIPELINE,BACKGROUNDאוML_EXTERNAL - אופציונלי:
PRINCIPAL: פורמט הזהות שמציין את המשתמש, חשבון השירות או הזהות של הצד השלישיהשדה
principalתומך רק בפורמטים הבאים של מזהה חשבון משתמש ב-IAM:- חשבון Google
- חשבון שירות
- זהות יחידה במאגר זהויות של כוח עבודה
- זהות יחידה במאגר זהויות של עומסי עבודה
-
לוחצים על הפעלה.
מידע נוסף על הרצת שאילתות זמין במאמר הרצת שאילתה אינטראקטיבית.
BQ
כדי להקצות משרות בארגון להזמנה, משתמשים בפקודה bq mk עם הדגל --reservation_assignment:
bq mk \
--project_id=ADMIN_PROJECT_ID \
--location=LOCATION \
--reservation_assignment \
--reservation_id=RESERVATION_NAME \
--assignee_type=ORGANIZATION \
--assignee_id=ORGANIZATION_ID \
--job_type=JOB_TYPE \
--principal=PRINCIPAL
מחליפים את מה שכתוב בשדות הבאים:
-
ADMIN_PROJECT_ID: מזהה הפרויקט של פרויקט הניהול שבבעלותו משאב המקום השמור -
LOCATION: המיקום של ההזמנה -
RESERVATION_NAME: השם של ההזמנה -
ORGANIZATION_ID: מזהה הארגון -
JOB_TYPE: סוג העבודה שיוקצה להזמנה הזו, למשלQUERY,CONTINUOUS,PIPELINE,BACKGROUNDאוML_EXTERNAL אופציונלי:
PRINCIPAL: פורמט הזהות שמציין את המשתמש, חשבון השירות או הזהות של הצד השלישי.הדגל
--principalתומך רק בפורמטים הבאים של מזהי חשבונות משתמשים ב-IAM:- חשבון Google
- חשבון שירות
- זהות יחידה במאגר זהויות של כוח עבודה
- זהות יחידה במאגר זהויות של עומסי עבודה
כשיוצרים הקצאה של הזמנה, צריך להמתין לפחות 5 דקות לפני שמריצים שאילתה. אחרת, יכול להיות שתחויבו על השאילתה לפי תמחור על פי דרישה.
הגדרת מכסות לפרויקטים ושינויים במדיניות התזמון
כדי לבקש תמיכה או לשלוח משוב על התכונה הזו, אפשר לפנות לכתובת bigquery-wlm-feedback@google.com.
אתם יכולים ליצור מכסות לפרויקטים, שהן סוג של כלל הקצאה, כדי להגדיר שינויים ספציפיים לפרויקט במדיניות ברירת המחדל של תזמון הזמנות. לדוגמה, אתם יכולים להגביל את מספר המשבצות שייצרכו ואת מספר השאילתות המקבילות בפרויקט.
בניגוד לסוגים אחרים של הקצאות בהזמנה שקובעות באיזו הזמנה הפרויקט משתמש, מכסות פרויקט הן משאבי הקצאה ששולטים רק בהתנהגות התזמון של פרויקט ספציפי.
כשיוצרים מכסת פרויקט, חלות ההגבלות הבאות:
- מקבל ההקצאה חייב להיות Cloud de Confiance פרויקט. אין תמיכה בתיקיות ובארגונים.
- הערך של סוג העבודה צריך להיות לא מוגדר או מוגדר במפורש כ-
JOB_TYPE_UNSPECIFIED. - כדי שהעדכון ייכנס לתוקף, צריך להפעיל שאילתה חדשה אחרי שינוי הערך במדיניות
max_slots.
כדי ליצור הגבלות על פרויקטים באמצעות הקצאות של מדיניות תזמון, בוחרים באחת מהאפשרויות הבאות:
המסוף
במסוף Cloud de Confiance , עוברים לדף BigQuery.
בתפריט הניווט, עוברים אל Administration > Workload management (ניהול עומסי עבודה).
לוחצים על הכרטיסייה כללי הקצאה.
לוחצים על יצירת כלל הקצאה.
ברשימה סוג הכלל, בוחרים באפשרות מגבלת פרויקט.
ברשימה Select a project, בוחרים פרויקט ולוחצים על Continue.
ברשימה הזמנה, בוחרים הזמנה ולוחצים על המשך.
בקטע Project override (שינוי ברירת המחדל של הפרויקט), מזינים ערכים בשדות Max slots (מקסימום משבצות) ו-Max concurrency (מקסימום מקביליות).
לוחצים על יצירה.
SQL
כדי ליצור הקצאה של מדיניות תזמון פרויקטים, משתמשים בהצהרת DDL CREATE
ASSIGNMENT עם האפשרויות scheduling_policy_max_slots ו-scheduling_policy_concurrency.
CREATE ASSIGNMENT `ADMIN_PROJECT_ID.region-LOCATION.RESERVATION_NAME.ASSIGNMENT_ID` OPTIONS ( assignee = 'projects/PROJECT_ID', scheduling_policy_max_slots = MAX_SLOTS, scheduling_policy_concurrency = MAX_CONCURRENCY);
מחליפים את מה שכתוב בשדות הבאים:
-
ADMIN_PROJECT_ID: מזהה הפרויקט של פרויקט הניהול שבבעלותו משאב המקום השמור -
LOCATION: המיקום של ההזמנה -
RESERVATION_NAME: השם של ההזמנה -
ASSIGNMENT_ID: מזהה ההקצאה -
PROJECT_ID: מזהה הפרויקט שמוקצה Cloud de Confiance -
MAX_SLOTS: המגבלה המקסימלית על צריכת משבצות של שאילתות שמופעלות בפרויקט -
MAX_CONCURRENCY: הגבול העליון של מספר השאילתות בו-זמניות שאושרו לפרויקט
BQ
כדי ליצור הקצאה של מדיניות תזמון באמצעות כלי שורת הפקודה bq, משתמשים בפקודה bq mk עם הדגלים --scheduling_policy_max_slots ו---scheduling_policy_concurrency.
bq mk \
--project_id=ADMIN_PROJECT_ID \
--location=LOCATION \
--reservation_assignment \
--reservation_id=RESERVATION_NAME \
--assignee_id=PROJECT_ID \
--assignee_type=PROJECT \
--scheduling_policy_max_slots=MAX_SLOTS \
--scheduling_policy_concurrency=MAX_CONCURRENCY
מחליפים את מה שכתוב בשדות הבאים:
-
ADMIN_PROJECT_ID: מזהה הפרויקט של פרויקט הניהול שבבעלותו משאב המקום השמור -
LOCATION: המיקום של ההזמנה -
RESERVATION_NAME: השם של ההזמנה -
PROJECT_ID: מזהה הפרויקט שמוקצה Cloud de Confiance -
MAX_SLOTS: המגבלה המקסימלית על צריכת משבצות של שאילתות שמופעלות בפרויקט -
MAX_CONCURRENCY: הגבול העליון של מספר השאילתות בו-זמניות שאושרו לפרויקט
כדי לשנות או להסיר הקצאה קיימת של מדיניות תזמון, משתמשים בהצהרת DDL ALTER ASSIGNMENT:
ALTER ASSIGNMENT `ADMIN_PROJECT_ID.region-LOCATION.RESERVATION_NAME.ASSIGNMENT_ID` SET OPTIONS ( scheduling_policy_max_slots = NEW_MAX_SLOTS, scheduling_policy_concurrency = NEW_MAX_CONCURRENCY); -- To remove a scheduling policy setting, set its values to null. To all settings, delete the assignment.
מחליפים את מה שכתוב בשדות הבאים:
-
ADMIN_PROJECT_ID: מזהה הפרויקט של פרויקט הניהול שבבעלותו משאב המקום השמור -
LOCATION: המיקום של ההזמנה -
RESERVATION_NAME: השם של ההזמנה -
ASSIGNMENT_ID: מזהה ההקצאה -
NEW_MAX_SLOTS: המגבלה המקסימלית על צריכת משבצות של שאילתות שמופעלות בפרויקט -
NEW_MAX_CONCURRENCY: הגבול העליון של מספר השאילתות בו-זמניות שאושרו לפרויקט
כדי לראות חריגות פעילות ממדיניות התזמון, בודקים את העמודות scheduling_policy ו-assignment_type בתצוגה INFORMATION_SCHEMA.ASSIGNMENTS.
הקצאת פרויקט או תיקייה להזמנה
המסוף
במסוף Cloud de Confiance , עוברים לדף BigQuery.
בתפריט הניווט, לוחצים על Workload management.
לוחצים על הכרטיסייה הזמנות.
מוצאים את ההזמנה בטבלת ההזמנות.
מרחיבים את האפשרות Actions (פעולות).
לוחצים על יצירת מטלה.
בקטע יצירת מטלה, לוחצים על עיון.
מדפדפים או מחפשים את הפרויקט או התיקייה ובוחרים אותם.
בקטע Job Type, בוחרים את סוג העבודה שרוצים להקצות להזמנה הזו. אלו הן חלק מהאפשרויות:
QUERYCONTINUOUSPIPELINEBACKGROUNDML_EXTERNAL
עדיין אין תמיכה במסוף ביצירה ובשינוי של סוגים מפורטים יותר של עבודות ברקע, כמו
BACKGROUND_COLUMN_METADATA_INDEX.מידע נוסף על סוגי משימות זמין במאמר בנושא הקצאות של הזמנות. ערך ברירת המחדל הוא
QUERY.אופציונלי: בשדה User, מזינים את כתובת האימייל של המשתמש, חשבון השירות או הזהות של הצד השלישי.
לוחצים על יצירה.
SQL
כדי להקצות פרויקט להזמנה, משתמשים בהצהרת DDL CREATE ASSIGNMENT.
במסוף Cloud de Confiance , עוברים לדף BigQuery.
מזינים את ההצהרה הבאה בעורך השאילתות:
CREATE ASSIGNMENT `ADMIN_PROJECT_ID.region-LOCATION.RESERVATION_NAME.ASSIGNMENT_ID` OPTIONS( assignee="projects/PROJECT_ID", job_type="JOB_TYPE", principal="PRINCIPAL");
מחליפים את מה שכתוב בשדות הבאים:
-
ADMIN_PROJECT_ID: מזהה הפרויקט של פרויקט הניהול שבבעלותו משאב ההזמנה -
LOCATION: המיקום של ההזמנה -
RESERVATION_NAME: השם של ההזמנה
ASSIGNMENT_ID: מזהה ההקצאההמזהה צריך להיות ייחודי לפרויקט ולמיקום, להתחיל ולהסתיים באות קטנה או במספר, ולהכיל רק אותיות קטנות, מספרים ומקפים.
-
PROJECT_ID: המזהה של הפרויקט שרוצים להקצות להזמנה -
JOB_TYPE: סוג העבודה שמוקצה להזמנה הזו, למשלQUERY,CONTINUOUS,PIPELINE,BACKGROUND_CHANGE_DATA_CAPTURE,BACKGROUND_COLUMN_METADATA_INDEX,BACKGROUND_SEARCH_INDEX_REFRESH,BACKGROUNDאוML_EXTERNAL אופציונלי:
PRINCIPAL: פורמט הזהות שמציין את המשתמש, חשבון השירות או הזהות של הצד השלישי. השדהprincipalתומך רק בפורמטים הבאים של מזהה חשבון משתמש ב-IAM:- חשבון Google
- חשבון שירות
- זהות יחידה במאגר זהויות של כוח עבודה
- זהות יחידה במאגר זהויות של עומסי עבודה
-
לוחצים על הפעלה.
מידע נוסף על הרצת שאילתות זמין במאמר הרצת שאילתה אינטראקטיבית.
BQ
כדי להקצות משימות להזמנה, משתמשים בפקודה bq mk עם הדגל --reservation_assignment:
bq mk \
--project_id=ADMIN_PROJECT_ID \
--location=LOCATION \
--reservation_assignment \
--reservation_id=RESERVATION_NAME \
--assignee_type=PROJECT \
--assignee_id=PROJECT_ID \
--job_type=JOB_TYPE \
--principal=PRINCIPAL
מחליפים את מה שכתוב בשדות הבאים:
-
ADMIN_PROJECT_ID: מזהה הפרויקט של פרויקט הניהול שבבעלותו משאב המקום השמור -
LOCATION: המיקום של ההזמנה -
RESERVATION_NAME: השם של ההזמנה -
PROJECT_ID: המזהה של הפרויקט להקצאה להזמנה הזו -
JOB_TYPE: סוג העבודה שמוקצה להזמנה הזו, כמוQUERY,CONTINUOUS,PIPELINE,BACKGROUND_CHANGE_DATA_CAPTURE,BACKGROUND_COLUMN_METADATA_INDEX,BACKGROUND_SEARCH_INDEX_REFRESH,BACKGROUNDאוML_EXTERNAL אופציונלי:
PRINCIPAL: פורמט הזהות שמציין את המשתמש, חשבון השירות או הזהות של הצד השלישי.הדגל
--principalתומך רק בפורמטים הבאים של מזהי חשבונות משתמשים ב-IAM:- חשבון Google
- חשבון שירות
- זהות יחידה במאגר זהויות של כוח עבודה
- זהות יחידה במאגר זהויות של עומסי עבודה
Terraform
משתמשים במשאב google_bigquery_reservation_assignment.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
בדוגמה הבאה, פרויקט מוקצה להזמנה בשם my-reservation:
כדי להחיל את הגדרות Terraform בפרויקט ב- Cloud de Confiance , מבצעים את השלבים בקטעים הבאים.
הכנת Cloud Shell
- מפעילים את Cloud Shell.
-
מגדירים את פרויקט ברירת המחדל שבו רוצים להחיל את ההגדרות של Terraform. Cloud de Confiance
תצטרכו להריץ את הפקודה הזו רק פעם אחת לכל פרויקט, ותוכלו לעשות זאת בכל ספרייה.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
אם תגדירו ערכים ספציפיים בקובץ התצורה של Terraform, הם יבטלו את ערכי ברירת המחדל של משתני הסביבה.
הכנת הספרייה
לכל קובץ תצורה של Terraform צריכה להיות ספרייה משלו (שנקראת גם מודול ברמה הבסיסית).
-
יוצרים ספרייה חדשה ב-Cloud Shell ובה יוצרים קובץ חדש. שם הקובץ חייב לכלול את הסיומת
.tf, למשלmain.tf. במדריך הזה, הקובץ נקראmain.tf.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
אם אתם עוקבים אחרי המדריך, תוכלו להעתיק את הקוד לדוגמה בכל קטע או שלב.
מעתיקים את הקוד לדוגמה בקובץ
main.tfהחדש שיצרתם.לחלופין, אפשר גם להעתיק את הקוד מ-GitHub. כדאי לעשות את זה כשקטע הקוד של Terraform הוא חלק מפתרון מקצה לקצה.
- בודקים את הפרמטרים לדוגמה ומשנים אותם בהתאם לסביבה שלכם.
- שומרים את השינויים.
-
מפעילים את Terraform. צריך לעשות זאת רק פעם אחת לכל ספרייה.
terraform init
אופציונלי: תוכלו לכלול את האפשרות
-upgrade, כדי להשתמש בגרסה העדכנית ביותר של הספק של Google:terraform init -upgrade
החלה של השינויים
-
בודקים את ההגדרות ומוודאים שהמשאבים שמערכת Terraform תיצור או תעדכן תואמים לציפיות שלכם:
terraform plan
מתקנים את ההגדרות לפי הצורך.
-
מריצים את הפקודה הבאה ומזינים
yesבהודעה שמופיעה, כדי להחיל את הגדרות Terraform:terraform apply
ממתינים עד שב-Terraform תוצג ההודעה "Apply complete!".
- פותחים את Cloud de Confiance הפרויקט כדי לראות את התוצאות. במסוף Cloud de Confiance , נכנסים למשאבים בממשק המשתמש כדי לוודא שהם נוצרו או עודכנו ב-Terraform.
כשיוצרים הקצאה של הזמנה, צריך להמתין לפחות 5 דקות לפני שמריצים שאילתה. אחרת, יכול להיות שתחויבו על השאילתה לפי תמחור על פי דרישה.
כדי ליצור פרויקט שמשתמש רק במשבצות זמן פנויות, יוצרים הזמנה עם 0 משבצות זמן שמוקצות לה, ואז מבצעים את השלבים הקודמים כדי להקצות את הפרויקט להזמנה הזו.
מטלות ספציפיות למשתמש
אתם יכולים להקצות הזמנה לחשבון משתמש ספציפי, כמו משתמש או חשבון שירות, בתוך פרויקט, תיקייה או ארגון. ההגדרה הזו שימושית להפניית עומסי עבודה של משתמשים ספציפיים להזמנות ייעודיות.
כשמערכת BigQuery מחליטה באיזה מקום שמור להשתמש עבור עבודה, היא בודקת את ההקצאות לפי הסדר הבא:
- בודקים את היררכיית המשאבים, מתחילים בפרויקט, עוברים לתיקיות האב ואז לארגון.
- בכל רמה בהיררכיה, BigQuery בודק קודם אם יש הקצאה שתואמת לחשבון המשתמש הספציפי שמריץ את המשימה.
- אם אין הקצאה שתואמת לחשבון המשתמש ברמה הזו, בודקים אם יש הקצאה כללית ללא חשבון משתמש באותה רמה.
- אם לא נמצאה הקצאה, עוברים לרמה הבאה בהיררכיה.
הקצאה ברמת הפרויקט ללא חשבון משתמש מבטלת הקצאה ברמת התיקייה עם חשבון משתמש.
פורמטים נתמכים של ישויות
האפשרות principal תומכת בפורמטים הבאים של חשבונות משתמשים ב-IAM v2:
| סוג הזהות | פורמט של חשבון משתמש |
|---|---|
| משתמשים | principal://goog/subject/EMAIL_ADDRESS |
| חשבונות שירות | principal://iam.googleapis.com/projects/-/serviceAccounts/EMAIL_ADDRESS |
| זהויות במאגר הזהויות של כוח העבודה | principal://iam.googleapis.com/locations/global/workforcePools/POOL_ID/subject/SUBJECT_ID |
| זהויות במאגר זהויות של עומסי עבודה | principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECT_ID |
הקצאת חשבון משתמש להזמנה
SQL
כדי ליצור הקצאה ספציפית למשתמש, משתמשים בהצהרת CREATE ASSIGNMENT DDL עם האפשרות principal.
CREATE ASSIGNMENT
`ADMIN_PROJECT_ID.region-LOCATION.RESERVATION_NAME.ASSIGNMENT_ID`
OPTIONS (
assignee = 'projects/PROJECT_ID',
principal = 'principal://goog/subject/EMAIL_ADDRESS',
job_type = 'QUERY');
מחליפים את מה שכתוב בשדות הבאים:
-
ADMIN_PROJECT_ID: מזהה הפרויקט של פרויקט הניהול שבבעלותו משאב המקום השמור -
LOCATION: המיקום של ההזמנה -
RESERVATION_NAME: השם של ההזמנה -
ASSIGNMENT_ID: מזהה ההקצאה -
PROJECT_ID: מזהה הפרויקט - `EMAIL_ADDRESS: כתובת האימייל של המשתמש
-
JOB_TYPE: סוג העבודה שיוקצה להזמנה הזו, למשלQUERY,CONTINUOUS,PIPELINE,BACKGROUNDאוML_EXTERNAL
BQ
כדי ליצור הקצאה ספציפית למשתמש, משתמשים בפקודה bq mk עם הדגל --principal:
bq mk \
--project_id=ADMIN_PROJECT_ID \
--location=LOCATION \
--reservation_assignment \
--reservation_id=RESERVATION_NAME \
--assignee_id=PROJECT_ID \
--assignee_type=PROJECT \
--principal=PRINCIPAL \
--job_type=JOB_TYPE
מחליפים את מה שכתוב בשדות הבאים:
-
ADMIN_PROJECT_ID: מזהה הפרויקט של פרויקט הניהול שבבעלותו משאב המקום השמור -
LOCATION: המיקום של ההזמנה -
RESERVATION_NAME: השם של ההזמנה -
ASSIGNMENT_ID: מזהה ההקצאה -
PROJECT_ID: מזהה הפרויקט PRINCIPAL: the principal identifier, for example,principal://goog/subject/EMAIL_ADDRESS`-
JOB_TYPE: סוג העבודה שיוקצה להזמנה הזו, למשלQUERY,CONTINUOUS,PIPELINE,BACKGROUNDאוML_EXTERNAL
הקצאת פרויקט ל-none
הערך none במטלות מייצג היעדר מטלה. פרויקטים שהוקצו לשימוש בתמחור לפי דרישה none.
SQL
כדי להקצות פרויקט ל-none, משתמשים בהצהרת ה-DDL CREATE ASSIGNMENT.
במסוף Cloud de Confiance , עוברים לדף BigQuery.
מזינים את ההצהרה הבאה בעורך השאילתות:
CREATE ASSIGNMENT `ADMIN_PROJECT_ID.region-LOCATION.none.ASSIGNMENT_ID` OPTIONS( assignee="projects/PROJECT_ID", job_type="QUERY");
מחליפים את מה שכתוב בשדות הבאים:
-
LOCATION: המיקום של המשימות שצריך להשתמש בהן בתמחור לפי דרישה
ASSIGNMENT_ID: מזהה ההקצאההמזהה צריך להיות ייחודי לפרויקט ולמיקום, להתחיל ולהסתיים באות קטנה או במספר, ולהכיל רק אותיות קטנות, מספרים ומקפים.
-
PROJECT_ID: המזהה של הפרויקט שרוצים להקצות להזמנה
-
לוחצים על הפעלה.
מידע נוסף על הרצת שאילתות זמין במאמר הרצת שאילתה אינטראקטיבית.
BQ
כדי להקצות פרויקט ל-none, משתמשים בפקודה bq mk עם הדגל --reservation_assignment:
bq mk \
--project_id=ADMIN_PROJECT_ID \
--location=LOCATION \
--reservation_assignment \
--reservation_id=none \
--job_type=QUERY \
--assignee_id=PROJECT_ID \
--assignee_type=PROJECT
מחליפים את מה שכתוב בשדות הבאים:
-
ADMIN_PROJECT_ID: מזהה הפרויקט של פרויקט הניהול שבבעלותו משאב המקום השמור -
LOCATION: המיקום של המשרות שצריך להחיל עליהן תמחור לפי דרישה -
PROJECT_ID: מזהה הפרויקט להקצאה ל-none
Terraform
משתמשים במשאב google_bigquery_reservation_assignment.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
בדוגמה הבאה מוקצה פרויקט ל-none:
כדי להחיל את הגדרות Terraform בפרויקט ב- Cloud de Confiance , מבצעים את השלבים בקטעים הבאים.
הכנת Cloud Shell
- מפעילים את Cloud Shell.
-
מגדירים את פרויקט ברירת המחדל שבו רוצים להחיל את ההגדרות של Terraform. Cloud de Confiance
תצטרכו להריץ את הפקודה הזו רק פעם אחת לכל פרויקט, ותוכלו לעשות זאת בכל ספרייה.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
אם תגדירו ערכים ספציפיים בקובץ התצורה של Terraform, הם יבטלו את ערכי ברירת המחדל של משתני הסביבה.
הכנת הספרייה
לכל קובץ תצורה של Terraform צריכה להיות ספרייה משלו (שנקראת גם מודול ברמה הבסיסית).
-
יוצרים ספרייה חדשה ב-Cloud Shell ובה יוצרים קובץ חדש. שם הקובץ חייב לכלול את הסיומת
.tf, למשלmain.tf. במדריך הזה, הקובץ נקראmain.tf.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
אם אתם עוקבים אחרי המדריך, תוכלו להעתיק את הקוד לדוגמה בכל קטע או שלב.
מעתיקים את הקוד לדוגמה בקובץ
main.tfהחדש שיצרתם.לחלופין, אפשר גם להעתיק את הקוד מ-GitHub. כדאי לעשות את זה כשקטע הקוד של Terraform הוא חלק מפתרון מקצה לקצה.
- בודקים את הפרמטרים לדוגמה ומשנים אותם בהתאם לסביבה שלכם.
- שומרים את השינויים.
-
מפעילים את Terraform. צריך לעשות זאת רק פעם אחת לכל ספרייה.
terraform init
אופציונלי: תוכלו לכלול את האפשרות
-upgrade, כדי להשתמש בגרסה העדכנית ביותר של הספק של Google:terraform init -upgrade
החלה של השינויים
-
בודקים את ההגדרות ומוודאים שהמשאבים שמערכת Terraform תיצור או תעדכן תואמים לציפיות שלכם:
terraform plan
מתקנים את ההגדרות לפי הצורך.
-
מריצים את הפקודה הבאה ומזינים
yesבהודעה שמופיעה, כדי להחיל את הגדרות Terraform:terraform apply
ממתינים עד שב-Terraform תוצג ההודעה "Apply complete!".
- פותחים את Cloud de Confiance הפרויקט כדי לראות את התוצאות. במסוף Cloud de Confiance , נכנסים למשאבים בממשק המשתמש כדי לוודא שהם נוצרו או עודכנו ב-Terraform.
אם אין מקומות שמורים בפרויקט הניהול, עליך להשתמש בכלי שורת הפקודה של BigQuery כדי להציג את הפרויקטים שהוקצו ל-none.
ביטול ההזמנה בשאילתה
כדי להשתמש בהזמנה ספציפית בשאילתה, אתם צריכים את ההרשאה הבאה בניהול זהויות והרשאות גישה (IAM):
bigquery.reservations.useבהזמנה או בפרויקט הניהול שלה.
כדי להקצות שאילתה להרצה בהזמנה ספציפית, מבצעים אחת מהפעולות הבאות:
המסוף
עוברים לדף BigQuery.
לוחצים על שאילתת SQL.
מזינים שאילתת GoogleSQL תקינה בעורך השאילתות.
לוחצים על עריכה > הגדרות שאילתה.
מבטלים את הסימון בתיבת הסימון הגדרה אוטומטית של מיקום, ואז בוחרים את האזור או את האזורים שבהם נמצאת ההזמנה.
ברשימה Reservation, בוחרים את ההזמנה שרוצים שהשאילתה תפעל בה.
לוחצים על Save.
כותבים שאילתה בכרטיסיית העורך ומריצים אותה. השאילתה מופעלת בהזמנה שציינתם.
SQL
מגדירים את משתנה המערכת @@reservation בסשן כדי להקצות את ההזמנה שהשאילתה פועלת בה:
במסוף Cloud de Confiance , עוברים לדף BigQuery.
מזינים את ההצהרה הבאה בעורך השאילתות:
SET @@reservation='RESERVATION'; SELECT QUERY;
מחליפים את מה שכתוב בשדות הבאים:
RESERVATION: ההזמנה שבה רוצים להריץ את השאילתה.
QUERY: השאילתה שרוצים להריץ.
לוחצים על הפעלה.
מידע נוסף על הרצת שאילתות זמין במאמר הרצת שאילתה אינטראקטיבית.
לדוגמה, השאילתה הבאה משתמשת בהצהרה SET כדי להגדיר את המקום השמור ל-test-reservation באזור US שכולל מספר אזורים, ואז קוראת לשאילתה בסיסית:
SET @@reservation='projects/project1/locations/US/reservations/test-reservation'; SELECT 42;
BQ
-
במסוף Cloud de Confiance , מפעילים את Cloud Shell.
בחלק התחתון של Cloud de Confiance המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.
ב-Cloud Shell, מריצים את השאילתה באמצעות הפקודה
bq queryעם הדגל--reservation_id:bq query --use_legacy_sql=false --reservation_id=RESERVATION_ID 'QUERY'
מחליפים את מה שכתוב בשדות הבאים:
RESERVATION_ID: ההזמנה שבה רוצים להריץ את השאילתה.
QUERY: הצהרת ה-SQL של השאילתה.
לדוגמה, השאילתה הבאה מופעלת בהזמנה
test-reservationבאזור מרובהUS:bq query --reservation_id=project1.US:test-reservation 'SELECT 42;'
API
כדי לציין הזמנה באמצעות ה-API, מוסיפים משימה חדשה ומאכלסים את מאפיין הגדרת המשימה query. מציינים את ההזמנה בשדה reservation.
הקצאת יחידות קיבולת לעומסי עבודה של BigQuery ML
בקטעים הבאים מפורטים הדרישות להקצאת הזמנות למודלים של BigQuery ML. כדי ליצור את הקצאות ההזמנות האלה, פועלים לפי השלבים במאמרים הקצאת ארגון להזמנה או הקצאת פרויקט או תיקייה להזמנה.
מודלים חיצוניים
סוגי המודלים הבאים של BigQuery ML משתמשים בשירותים חיצוניים:
כדי להקצות משבצות שמורות לשאילתות באמצעות השירותים האלה, צריך ליצור הקצאת הזמנה שמשתמשת בסוג העבודה ML_EXTERNAL. אם לא נמצאה הקצאת הזמנה עם סוג העבודה ML_EXTERNAL, משימת השאילתה מופעלת באמצעות תמחור לפי דרישה.
במשימות אימון של מודלים חיצוניים, המשבצות בהקצאת השמירה משמשות לשלבי העיבוד המקדים, האימון והעיבוד שלאחר האימון. במהלך האימון, אי אפשר להשתמש במשבצות זמן פנויות, אבל במהלך העיבוד המקדים והעיבוד שלאחר מכן, אפשר להשתמש במשבצות זמן פנויות.
מודלים של פירוק מטריצות
כדי ליצור מודל של פירוק מטריצות, צריך ליצור הזמנה שמשתמשת ב-BigQuery מהדורות Enterprise או Enterprise Plus, ואז ליצור הקצאת הזמנה שמשתמשת בסוג העבודה QUERY.
סוגים אחרים של מודלים
למודלים של BigQuery ML שהם לא מודלים חיצוניים או מודלים של פירוק מטריצות, אפשר להקצות משבצות שמורות לשאילתות באמצעות השירותים האלה על ידי יצירת הקצאת הזמנה שמשתמשת בסוג העבודה QUERY.
אם לא נמצאה הקצאת מקום שמור עם סוג העבודה QUERY, משימת השאילתה תפעל באמצעות תמחור לפי דרישה.
חיפוש הקצאות הזמנה
ההרשאות הנדרשות
כדי לחפש הקצאה של הזמנה לפרויקט, לתיקייה או לארגון מסוימים, אתם צריכים את ההרשאה הבאה בניהול הזהויות והרשאות הגישה (IAM):
-
bigquery.reservationAssignments.listבפרויקט הניהול.
כל אחד מהתפקידים הבאים שמוגדרים מראש ב-IAM כולל את ההרשאה הזו:
BigQuery AdminBigQuery Resource AdminBigQuery Resource EditorBigQuery Resource ViewerBigQuery User
מידע נוסף על תפקידי IAM ב-BigQuery זמין במאמר תפקידים והרשאות מוגדרים מראש.
חיפוש הקצאת הזמנה לפרויקט
כדי לבדוק אם הפרויקט, התיקייה או הארגון שלכם משויכים להזמנה:
המסוף
במסוף Cloud de Confiance , עוברים לדף BigQuery.
בתפריט הניווט, לוחצים על Workload management.
לוחצים על הכרטיסייה הזמנות.
בטבלת ההזמנות, מרחיבים הזמנה כדי לראות אילו משאבים הוקצו להזמנה הזו, או משתמשים בשדה Filter כדי לסנן לפי שם המשאב.
SQL
כדי לגלות לאיזו הזמנה מוקצות משימות השאילתה של הפרויקט, צריך להריץ שאילתה על התצוגה INFORMATION_SCHEMA.ASSIGNMENTS_BY_PROJECT.
במסוף Cloud de Confiance , עוברים לדף BigQuery.
מזינים את ההצהרה הבאה בעורך השאילתות:
SELECT assignment_id FROM `region-LOCATION`.INFORMATION_SCHEMA.ASSIGNMENTS_BY_PROJECT WHERE assignee_id = 'PROJECT_ID' AND job_type = 'JOB_TYPE';
מחליפים את מה שכתוב בשדות הבאים:
-
LOCATION: המיקום של ההזמנות שרוצים לראות -
ADMIN_PROJECT_ID: מזהה הפרויקט של פרויקט הניהול שבבעלותו משאב ההזמנה -
PROJECT_ID: המזהה של הפרויקט שרוצים להקצות להזמנה -
JOB_TYPE: סוג העבודה שיוקצה להזמנה הזו, למשלQUERY,CONTINUOUS,PIPELINE,BACKGROUNDאוML_EXTERNAL
-
לוחצים על הפעלה.
מידע נוסף על הרצת שאילתות זמין במאמר הרצת שאילתה אינטראקטיבית.
BQ
כדי לגלות לאיזו הזמנה משויכות משימות השאילתות של הפרויקט, משתמשים בפקודה bq show עם הדגל --reservation_assignment:
bq show \
--project_id=ADMIN_PROJECT_ID \
--location=LOCATION \
--reservation_assignment \
--job_type=JOB_TYPE \
--assignee_id=PROJECT_ID \
--assignee_type=PROJECT
כדי למצוא הקצאה ספציפית למשתמש, מוסיפים את הדגל --principal:
bq show \
--project_id=ADMIN_PROJECT_ID \
--location=LOCATION \
--reservation_assignment \
--job_type=JOB_TYPE \
--assignee_id=PROJECT_ID \
--assignee_type=PROJECT \
--principal=PRINCIPAL
מחליפים את מה שכתוב בשדות הבאים:
-
ADMIN_PROJECT_ID: המזהה של הפרויקט שבבעלותו משאב ההזמנה -
LOCATION: המיקום של ההזמנות שרוצים לראות -
JOB_TYPE: סוג העבודה שיוקצה להזמנה הזו, למשלQUERY,CONTINUOUS,PIPELINE,BACKGROUNDאוML_EXTERNAL -
PROJECT_ID: מזהה הפרויקט -
PRINCIPAL: המזהה של החשבון הראשי, לדוגמה,principal://goog/subject/EMAIL_ADDRESS
כדי לראות את כללי ההקצאה הפעילים שספציפיים למשתמש, בודקים את העמודה principal בתצוגה INFORMATION_SCHEMA.ASSIGNMENTS או מריצים את הפקודה bq ls
--reservation_assignment. בנוסף, אפשר לבדוק איזו הזמנה הפעילה עבודה ספציפית באמצעות שאילתה בתצוגה INFORMATION_SCHEMA.JOBS. כשמשתמשים בפקודה bq show --reservation_assignment, אפשר לכלול את הדגל האופציונלי --principal כדי לסנן הקצאה של משתמש ספציפי.
עדכון ההקצאות של ההזמנות
העברת הקצאה להזמנה אחרת
אתם יכולים להעביר מטלה מהזמנה אחת להזמנה אחרת.
כדי להעביר הקצאה של הזמנה, צריך את ההרשאות הבאות לניהול זהויות והרשאות גישה (IAM) בפרויקט הניהול ובמקבל ההקצאה.
bigquery.reservationAssignments.createbigquery.reservationAssignments.delete
כל אחד מתפקידי ה-IAM שמוגדרים מראש כולל את ההרשאות האלה:
BigQuery AdminBigQuery Resource AdminBigQuery Resource Editor
מידע נוסף על תפקידי IAM ב-BigQuery זמין במאמר תפקידים והרשאות מוגדרים מראש.
כדי להעביר מטלה, משתמשים בפקודה bq update:
bq update \
--project_id=ADMIN_PROJECT_ID \
--location=LOCATION \
--reservation_assignment \
--destination_reservation_id=DESTINATION_RESERVATION \
ADMIN_PROJECT_ID:LOCATION.RESERVATION_NAME.ASSIGNMENT_ID
מחליפים את מה שכתוב בשדות הבאים:
-
ADMIN_PROJECT_ID: המזהה של הפרויקט שבבעלותו משאב ההזמנה -
LOCATION: המיקום של ההזמנה החדשה RESERVATION_NAME: ההזמנה שממנה רוצים להעביר את ההקצאה-
DESTINATION_RESERVATION: ההזמנה שאליה רוצים להעביר את ההקצאה
ASSIGNMENT_ID: מזהה ההקצאהכדי לקבל את מזהה ההקצאה, אפשר לעיין במאמר בנושא הצגת רשימה של הקצאות הזמנות בפרויקט.
מחיקת הקצאות של הזמנות
כדי להסיר פרויקט מהזמנה, צריך למחוק את ההקצאה של ההזמנה. אם פרויקט לא מוקצה לאף הזמנה, הוא מקבל בירושה את כל ההקצאות בתיקיות או בארגונים ברמת ההורה, או שהוא משתמש בתמחור על פי דרישה אם אין הקצאות ברמת ההורה.
כשמוחקים הקצאה של הזמנה, העבודות שמופעלות עם משבצות מההזמנה הזו ממשיכות לפעול עד להשלמה.
ההרשאות הנדרשות
כדי למחוק הקצאה של הזמנה, אתם צריכים את ההרשאה הבאה בממשק של ניהול הזהויות והרשאות הגישה (IAM):
-
bigquery.reservationAssignments.deleteבפרויקט הניהול ובמקבל ההקצאה.
כל אחד מהתפקידים הבאים שמוגדרים מראש ב-IAM כולל את ההרשאה הזו:
BigQuery AdminBigQuery Resource AdminBigQuery Resource Editor
הסרת פרויקט מהזמנה
כדי להסיר פרויקט מהזמנה:
המסוף
במסוף Cloud de Confiance , עוברים לדף BigQuery.
בתפריט הניווט, לוחצים על Workload management.
לוחצים על הכרטיסייה הזמנות.
בטבלת ההזמנות, מרחיבים את ההזמנה כדי למצוא את הפרויקט.
מרחיבים את האפשרות Actions (פעולות).
לוחצים על Delete.
SQL
משתמשים בהצהרת DDL DROP ASSIGNMENT.
במסוף Cloud de Confiance , עוברים לדף BigQuery.
מזינים את ההצהרה הבאה בעורך השאילתות:
DROP ASSIGNMENT `ADMIN_PROJECT_ID.region-LOCATION.RESERVATION_NAME.ASSIGNMENT_ID`;
מחליפים את מה שכתוב בשדות הבאים:
-
ADMIN_PROJECT_ID: מזהה הפרויקט של פרויקט הניהול שבבעלותו משאב ההזמנה -
LOCATION: המיקום של ההזמנה -
RESERVATION_NAME: השם של ההזמנה
ASSIGNMENT_ID: מזהה ההקצאהכדי למצוא את מזהה ההקצאה, אפשר להיעזר במאמר בנושא הצגת הקצאת הזמנה של פרויקט.
-
לוחצים על הפעלה.
מידע נוסף על הרצת שאילתות זמין במאמר הרצת שאילתה אינטראקטיבית.
BQ
כדי להסיר פרויקט מהזמנה, משתמשים בפקודה bq rm עם הדגל --reservation_assignment:
bq rm \
--project_id=ADMIN_PROJECT_ID \
--location=LOCATION \
--reservation_assignment RESERVATION_NAME.ASSIGNMENT_ID
מחליפים את מה שכתוב בשדות הבאים:
-
ADMIN_PROJECT_ID: המזהה של הפרויקט שבבעלותו משאב ההזמנה -
LOCATION: המיקום של ההזמנה -
RESERVATION_NAME: השם של ההזמנה
ASSIGNMENT_ID: מזהה ההקצאהכדי לקבל את מזהה ההקצאה, אפשר להיעזר במאמר חיפוש הקצאת הזמנה לפרויקט.