מבוא להזמנות בגרסה הקודמת
הזמנות ב-BigQuery מאפשרות לעבור מתמחור לפי דרישה לתמחור לפי קיבולת. בתמחור לפי קיבולת, אתם משלמים על קיבולת ייעודית או על קיבולת עם שינוי גודל אוטומטי לעיבוד שאילתות, במקום לשלם על כל שאילתה בנפרד.
הזמנות מאפשרות להקצות קיבולת של שאילתות, שנמדדת במשבצות זמן, לעומסי עבודה שונים או לחלקים שונים בארגון.
כשעובדים עם הזמנות שמבוססות על מהדורות BigQuery, אפשר ליצור התחייבות לקיבולת, אבל זה לא חובה. עם זאת, אם אתם מריצים עומסי עבודה קבועים, כדאי ליצור התחייבות כזו כדי לחסוך בעלויות.
סקירה כללית
ב-BigQuery יש שני מודלים לתמחור של מחשוב (ניתוח):
תמחור על פי דרישה: אתם משלמים על הנתונים שנסרקו על ידי השאילתות. יש לכם קיבולת קבועה לעיבוד שאילתות לכל פרויקט, והעלות מבוססת על מספר הבייטים שעובדו על ידי כל שאילתה.
תמחור לפי קיבולת: אתם משלמים על קיבולת ייעודית או על קיבולת עם שינוי גודל אוטומטי לעיבוד שאילתות, שנמדדת במשבצות זמן, לאורך תקופה מסוימת. כמה שאילתות חולקות את אותה קיבולת של משבצות.
כברירת מחדל, אתם מחויבים לפי מודל התמחור על פי דרישה. באמצעות הזמנות, אתם יכולים לעבור לתמחור לפי קיבולת ולהשתמש בהתאמה אוטומטית לעומס של משבצות ולרכוש התחייבויות לקיבולת בהנחה. אין חיוב על בייטים שעברו עיבוד כשמשתמשים במודל מבוסס-קיבולת.
אפשר לשלב בין שני מודלים לחיוב. לדוגמה, אתם יכולים להריץ עומסי עבודה מסוימים עם תמחור לפי דרישה ועומסי עבודה אחרים עם תמחור לפי קיבולת. מכיוון שמודל החיוב מוגדר לכל פרויקט, תצטרכו להשתמש בכמה פרויקטים כדי להריץ את עבודות השאילתות.
היתרונות של הזמנות
היתרונות של שימוש בהזמנות ב-BigQuery כוללים:
יכולת חיזוי. תמחור לפי קיבולת מאפשר ליהנות מעלויות צפויות ועקביות. אתם מגדירים מראש את התקציב המקסימלי של העלות, ויכולים גם לנצל את היתרונות של התחייבויות לשימוש במשבצות, שמציעות קיבולת ייעודית מתמשכת בתעריף מוזל.
גמישות. אתם בוחרים כמה קיבולת ייעודית להקצות לעומס עבודה, או מאפשרים ל-BigQuery לשנות את הקיבולת באופן אוטומטי בהתאם לדרישות של עומס העבודה. החיוב מתבצע לפי משבצות הזמן שנוצלו, בתוספת של לפחות שנייה אחת.
ניהול עומסי עבודה לכל עומס עבודה יש מאגר מוגדר של משאבי מחשוב ב-BigQuery שזמינים לשימוש. במקביל, אם עומס עבודה לא משתמש בכל המשבצות הייעודיות שלו, כל המשבצות שלא בשימוש משותפות אוטומטית בין עומסי העבודה האחרים.
רכישה מרכזית: אתם יכולים לרכוש ולהקצות משבצות לכל הארגון. לא צריך לרכוש משבצות לכל פרויקט שמשתמש ב-BigQuery.
הזמנות
הקיבולת של BigQuery נמדדת ביחידות קיבולת (Slot), שמייצגות מעבדים וירטואליים שמשמשים שאילתות. באופן כללי, אם מקצים יותר משבצות, אפשר להריץ יותר שאילתות בו-זמנית, ושאילתות מורכבות יכולות לרוץ מהר יותר.
יחידות הקיבולת (Slot) מוקצות במאגרים שנקראים הזמנות. הזמנות מאפשרות להקצות את המשבצות בדרכים שמתאימות לארגון שלכם.
לדוגמה, אפשר ליצור הזמנה בשם prod לעומסי עבודה של ייצור, והזמנה נפרדת בשם test לבדיקות. כך משימות הבדיקה לא מתחרות על משאבים שדרושים לעומסי העבודה של הייצור. או שתיצרו הזמנות למחלקות שונות בארגון.
הזמנות יכולות לכלול משבצות בסיסיות, שתמיד מוקצות, וגם משבצות עם שינוי גודל אוטומטי, שנוספות או מוסרות באופן דינמי בהתאם לדרישות של עומס העבודה.
אם קונים התחייבויות למשבצות זמן לפני שיוצרים הזמנה, נוצרת אוטומטית הזמנה בשם default. אין חשיבות מיוחדת להזמנה default והיא קיימת רק כדי להתחיל בעבודה בקלות. אתם יכולים להחליט אם אתם צריכים הזמנות נוספות או שאתם יכולים להשתמש בהזמנה שמוגדרת כברירת מחדל.
כדי להשתמש במשבצות שהקציתם, אתם צריכים להקצות פרויקט אחד או יותר להזמנה, כמו שמתואר בקטע הבא.
הזמנה היא הרמה הנמוכה ביותר שבה אפשר לציין הקצאת משבצות. הקצאת יחידות קיבולת במסגרת הזמנה מתבצעת על ידי מתזמן BigQuery.
משימות
כדי להשתמש במשבצות שהקציתם, אתם צריכים להקצות להזמנה פרויקט, תיקייה או ארגון אחד או יותר. כל רמה בהיררכיית המשאבים יורשת את ההקצאה מהרמה שמעליה. במילים אחרות, אם לא מוקצה פרויקט או תיקייה, הפרויקט או התיקייה האלה מקבלים בירושה את ההקצאה של תיקיית ההורה או הארגון שלהם, אם יש כאלה. מידע נוסף על היררכיית המשאבים זמין במאמר ארגון משאבי BigQuery.
כשמפעילים משימה מפרויקט שמוקצה להזמנה, המשימה משתמשת במשבצות של ההזמנה הזו. אם פרויקט לא משויך להזמנה (ישירות או בירושה מהתיקייה או מהארגון ברמת ההורה), העבודות בפרויקט הזה יחויבו לפי תמחור על פי דרישה.
מטלות None מייצגות היעדר מטלה. פרויקטים שהוקצו ל-None משתמשים בתמחור לפי דרישה. תרחיש השימוש הנפוץ להקצאות של None הוא הקצאת ארגון להזמנה, והחרגת פרויקטים או תיקיות מסוימים מההזמנה הזו על ידי הקצאתם ל-None. מידע נוסף זמין במאמר הקצאת פרויקט לערך None.
כשיוצרים מטלה, מציינים את סוג העבודה של המטלה:
QUERY: משתמשים בהזמנה הזו למשימות של שאילתות, כולל שאילתות SQL, DDL, DML ו-BigQuery ML.
PIPELINE: אפשר להשתמש בהזמנה הזו לעבודות טעינה וחילוץ.כברירת מחדל, עבודות טעינה וחילוץ הן בחינם ומשתמשות במאגר משותף של משבצות זמן. BigQuery לא מספק ערבויות לגבי הקיבולת הזמינה של המאגר המשותף הזה או לגבי קצב העברת הנתונים שאתם רואים. אם אתם טוענים כמויות גדולות של נתונים, יכול להיות שהעבודה שלכם תמתין עד שמשבצות יהפכו לזמינות. במקרה כזה, כדאי לרכוש משבצות זמן ייעודיות ולהקצות להן משימות של צינורות. מומלץ ליצור הזמנה ייעודית נוספת שבה השיתוף של משבצות זמן פנויות מושבת.
כשמשימות טעינה מוקצות להזמנה, הן מאבדות את הגישה למאגר החינמי. עוקבים אחרי הביצועים כדי לוודא שיש מספיק קיבולת לעבודות. אחרת, יכול להיות שהביצועים יהיו גרועים יותר מאשר בשימוש במאגר החינמי.
BACKGROUND: משתמשים בהקצאת המקום הזו כשבוחרים להשתמש בהקצאת מקום משלכם כדי להריץ משימות ניהול של אינדקסים של BigQuery Search או משימות רקע של העברת נתונים (CDC) ב-BigQuery. אפשר גם להשתמש בהזמנה הזו כשמשכפלים מסדי נתונים של מקור ל-BigQuery באמצעות פעולות ההחלה ברקע של Datastream. אי אפשר להזמין חשיפות ב-BACKGROUNDבמהדורה הרגילה.
ML_EXTERNAL: השתמשו בהזמנה הזו לשאילתות BigQuery ML שמשתמשות בשירותים חיצוניים ל-BigQuery. מידע נוסף מופיע במאמר בנושא הקצאת משבצות לעומסי עבודה של BigQuery ML. אי אפשר להזמין חשיפות ב-ML_EXTERNALבמהדורה הרגילה.
אי אפשר להקצות משבצות להקצאות ספציפיות. מתזמן BigQuery מטפל בהקצאת יחידות קיבולת למשימות בהזמנה.
התחייבויות
מחויבות קיבולת היא רכישה של כמות קבועה של קיבולת חישוב ב-BigQuery למשך תקופת זמן מינימלית. התחייבויות לקיבולת הן אופציונליות בהזמנות שנוצרו באמצעות מהדורה, אבל הן יכולות לחסוך בעלויות של עומסי עבודה במצב יציב.
BigQuery מציע כמה תוכניות התחייבות לבחירה. ההבדלים ביניהם הם בעיקר בעלות ובמשך ההתחייבות המינימלי. למידע על המחירים העדכניים, אפשר לעיין במחירון של התחייבות לקיבולת.
התחייבות שנתית. אתם רוכשים התחייבות ל-365 ימים. אחרי 365 ימים, תוכלו לבחור אם לחדש את התוכנית או לעבור לתוכנית מחויבות מסוג אחר.
התחייבות חודשית. אתם רוכשים התחייבות ל-30 יום לפחות. אחרי 30 ימים, אפשר למחוק את התוכנית בכל שלב.
יחידות קיבולת גמישות. אתם רוכשים התחייבות ל-60 שניות. אפשר למחוק אותו בכל שלב אחרי 60 שניות. משבצות Flex הן דרך טובה לבדוק את הביצועים של עומסי העבודה עם חיוב לפי תעריף קבוע, לפני שרוכשים התחייבות לטווח ארוך יותר. הן שימושיות גם לטיפול בביקוש מחזורי או עונתי, או לאירועים עם עומס גבוה כמו עונת המס.
לא משנה איזו תוכנית תבחרו, היתרות שלכם לא יפוגו בסוף תקופת ההתחייבות. המשבצות נשארות שלכם ותחויבו עליהן עד שתמחקו אותן. אפשר גם לשנות את סוג התוכנית אחרי התקופה המינימלית.
הזמינות של יחידות הקיבולת (Slots) תלויה בקיבולת הזמינה. כשמנסים לרכוש התחייבויות לשימוש במשבצות זמן, אין ערובה לכך שהרכישה תצליח. עם זאת, אחרי שרכישת ההתחייבות תסתיים בהצלחה, הקיבולת תהיה מובטחת עד שתמחקו את ההתחייבות.
פרטים נוספים על התוכניות האלה זמינים במאמר בנושא תוכניות התחייבות.
הקצאת יחידות קיבולת (Slot) בהזמנות
BigQuery מקצה קיבולת של יחידות קיבולת בהזמנה אחת באמצעות אלגוריתם שנקרא תזמון הוגן.
מתזמן העבודות של BigQuery אוכף שיתוף שווה של משבצות בין פרויקטים עם שאילתות פעילות בהזמנה, ולאחר מכן בין משימות של פרויקט נתון. המתזמן מספק הוגנות בסופו של דבר. יכול להיות שיהיו תקופות קצרות שבהן חלק מהמשימות יקבלו חלק לא פרופורציונלי מהמשבצות, אבל מתזמן המשימות יתקן את זה בסופו של דבר. המטרה של המתזמן היא למצוא איזון בין גישה אגרסיבית מדי לפינוי משימות שפועלות (שמובילה לבזבוז של זמן המשבצת) לבין גישה מקלה מדי (שמובילה לכך שמשימות עם משימות ארוכות מקבלות חלק לא פרופורציונלי מזמן המשבצת).
אם משימה חשובה צריכה באופן עקבי יותר משבצות ממה שהיא מקבלת מהמתזמן, כדאי ליצור הזמנה נוספת עם מספר מובטח של משבצות ולהקצות את המשימה להזמנה הזו. מידע נוסף זמין במאמר בנושא ניהול עומסי עבודה.
משבצות זמן בלי פעילות
בכל זמן נתון, יכול להיות שחלק מהמשבצות יהיו בלי פעילות. למשל:
- התחייבויות ליחידות קיבולת שלא הוקצו להזמנה כלשהי.
- משבצות שמוקצות לבסיס של הזמנה אבל לא נמצאות בשימוש כרגע.
כברירת מחדל, שאילתות שמופעלות בהזמנה משתמשות אוטומטית במשבצות פנויות מהזמנות אחרות באותו פרויקט ניהול. כלומר, אפשר להריץ תמיד עבודה כל עוד יש קיבולת. אפשר להפסיק את השימוש בקיבולת הפנויה באופן מיידי ולהחזיר אותה להקצאה המקורית של המקום השמור לפי הצורך, בלי קשר לעדיפות של השאילתה שזקוקה למשאבים. הפעולה הזו מתבצעת באופן אוטומטי בזמן אמת.
כדי להשבית את הפונקציונליות הזו ולחייב שימוש בהזמנה רק במשבצות שהוקצו לה, צריך להגדיר את ignore_idle_slots לערך true. הזמנות עם ignore_idle_slots שמוגדר ל-true לא מקבלות משבצות זמן בלי פעילות.
אי אפשר לשתף משבצות זמן פנויות בין הזמנות של מהדורות שונות. אפשר לשתף רק את משבצות הבסיס או את המשבצות שהוקצו. משבצות שניתנות להרחבה אוטומטית יכולות להיות זמינות באופן זמני, אבל אי אפשר לשתף אותן כי יכול להיות שהן יצטמצמו.
כל עוד הערך של ignore_idle_slots הוא False, אפשר להגדיר במקום שמור מספר משבצות של 0 ועדיין תהיה גישה למשבצות שלא נעשה בהן שימוש. אם אתם משתמשים רק ב-default
reservation, מומלץ להגדיר אותו כך. אחר כך תוכלו להקצות פרויקט או תיקייה להזמנה הזו, והיא תשתמש רק במשבצות פנויות.
הקצאות מסוג ML_EXTERNAL הן חריג להתנהגות שתוארה קודם. אי אפשר להפסיק את השימוש במשבצות (slots) שמשמשות למשימות של יצירת מודלים חיצוניים של BigQuery ML; כלומר, המשבצות בהזמנה עם סוגי ההקצאה ml_external ו-query זמינות למשימות אחרות של שאילתות רק כשהמשבצות לא תפוסות על ידי משימות ML_EXTERNAL.
בנוסף, המשימות האלה לא משתמשות במשבצות פנויות מהזמנות אחרות.
מגבלות
- אי אפשר לשתף הזמנות שקונים עם ארגונים אחרים.
- צריך ליצור הזמנה נפרדת ופרויקט ניהול נפרד לכל ארגון.
- בכל ארגון יכולים להיות עד 10 פרויקטים לניהול עם התחייבויות פעילות במיקום יחיד.
- אי אפשר לשתף קיבולת פנויה בין ארגונים או בין פרויקטים שונים לניהול באותו ארגון.
- התחייבויות הן משאב אזורי. אי אפשר להשתמש בהתחייבויות שנרכשו באזור אחד או במספר אזורים באזורים אחרים או במספר אזורים אחרים. אי אפשר להעביר התחייבויות בין אזורים או בין אזורים לאזורים מרובים.
- אי אפשר להעביר התחייבויות שנרכשו בפרויקט ניהול אחד לפרויקט ניהול אחר.
- אי אפשר להשתמש בהתחייבויות שנרכשו עם מהדורה אחת עם הזמנות של מהדורה אחרת.
- משבצות זמן פנויות לא משותפות בין הזמנות של מהדורות שונות.
- אי אפשר לשתף משבצות שגודלן משתנה באופן אוטומטי כי הן יוקטנו כשכבר לא יהיה בהן צורך.
מכסות
מכסת המשבצות היא המספר המקסימלי של משבצות שאפשר לרכוש במיקום מסוים. אתם לא מחויבים על מכסות, אלא רק על הזמנות ועל התחייבויות. מידע נוסף זמין במאמר מכסות ומגבלות של הזמנות. למידע על הגדלת מכסת המשבצות, ראו בקשה להגדלת מכסה.
תמחור
למידע על תמחור של הזמנות, ראו תמחור לפי תעריף קבוע.
המאמרים הבאים
כדי להתחיל להשתמש בהזמנות ב-BigQuery, אפשר לעיין במאמר תחילת העבודה עם הזמנות.
למידע על חיוב על פי דרישה על הזמנות, אפשר לעיין במאמר שילוב של הזמנות עם חיוב על פי דרישה.