פתרון בעיות באמצעות סכימת מידע
כאדמינים של BigQuery או כמנתחי נתונים, ניהול עומסי עבודה ארגוניים מחייב דרך אמינה וניתנת להרחבה לאבחון צווארי בקבוק בביצועים, כשלים בשאילתות, מגבלות קיבולת וגידול באחסון. תצוגות סכימת המידע של BigQuery משמשות כבסיס לניטור, ומספקות מטא-נתונים היסטוריים וכמעט בזמן אמת שאפשר לגשת אליהם באמצעות שאילתות GoogleSQL רגילות.
במאמר הזה מפורטים העקרונות הבסיסיים לפתרון בעיות ב-BigQuery באמצעות סכימת מידע, מוצגת סקירה כללית מובנית של ארגז הכלים לפתרון בעיות אדמיניסטרטיביות, ומפנים אתכם לתצוגות ספציפיות בספריית BigQuery.
פתרון בעיות בסכימת מידע לפי משימה
בטבלה הבאה מופיע סיכום של תצוגות שימושיות של סכימת מידע, שמסווגות לפי משימה ותרחיש לדוגמה של אבחון:
| משימה | תרחישים לדוגמה | תצוגות של סכימת מידע |
|---|---|---|
| ביצועי שאילתות ושגיאות |
|
|
| קיבולת עומס עבודה ועימות |
|
|
| עלויות אחסון וארכיטקטורת נתונים |
|
|
| בקרת גישה ומשילות |
|
|
| פייפליינים להעברת נתונים |
|
|
| למידת מכונה וחיפוש וקטורי |
|
|
| תובנות לגבי אופטימיזציה של עומסי עבודה |
|
עקרונות לפתרון בעיות באמצעות סכימת מידע
כשמאבחנים בעיות בעומס עבודה או בסביבה ב-BigQuery, חשוב להקפיד על העקרונות הבאים:
היקף לפי אזור, מערך נתונים ופרויקט. ניהול עומסי עבודה ומשאבי מחשוב ב-BigQuery מתבצעים בגבולות אזוריים. כמה נקודות שכדאי לחשוב עליהן:
תמיד מציינים את המוקדמות האזוריות הנכונות (לדוגמה,
region-REGION.INFORMATION_SCHEMA.JOBS_BY_PROJECT) או את המוקדמות של מערך הנתונים.בוחרים את רמת ההיררכיה המתאימה (
BY_PROJECT,BY_USER,BY_FOLDERאוBY_ORGANIZATION) בהתאם לסוג הבעיה שאתם בודקים: בעיה שקשורה למשתמש יחיד, עומס עבודה שספציפי לפרויקט או בעיה שמשפיעה על כל הדייר.
התאמה בין הביקוש למשאבי מחשוב לבין הקיבולת. לרוב, ביצועי שאילתות איטיים הם תוצאה של תחרות על משבצות ולא רק של SQL לא יעיל. משווים בין בקשות למשאבי משרה (
period_estimated_runnable_units) לבין משבצות זמן שהוקצו להזמנות (period_slot_ms) בחלונות זמן זהים, כדי להבחין בין הזדמנויות לשיפור השאילתה לבין בעיות שנובעות מקיבולת לא מספקת.צריך להביא בחשבון את רמת הפירוט של הטלמטריה ואת מגבלות השמירה. תצוגות שונות של סכימת המידע פועלות במרווחי רענון שונים ובחלונות שונים של שמירת נתונים. מטא-נתונים של משימות בתצוגה
JOBSזמינים למשך 180 ימים, ואילו מדדי ציר זמן ברזולוציה גבוהה בתצוגותJOBS_TIMELINEו-RESERVATIONS_TIMELINEנשמרים לתקופות קצרות יותר (בדרך כלל 14 עד 30 ימים). לצורך ביקורת לטווח ארוך וניתוח מגמות, כדאי לייצא את נתוני הטלמטריה לטבלאות מחולקות.הימנעות מעיוות מדדים בשאילתות עם כמה הצהרות. סקריפטים עם כמה הצהרות (SQL פרוצדורלי שמכיל
DECLARE,IFאוWHILE) יוצרים משימת אב עםstatement_type = 'SCRIPT'ומשימות צאצא נפרדות לכל הצהרה. כשמצטברים מדדים כמוtotal_slot_msאוtotal_bytes_billed, צריך לסנן אתstatement_type = 'SCRIPT'כדי למנוע ספירה כפולה.סינון לפי עמודות של מחיצות. כדי לצמצם את זמן הביצוע של השאילתה ולמנוע עלויות מיותרות של סריקה בניתוח על פי דרישה, תמיד כדאי לכלול מסנני זמן מגבילים בעמודות של מחיצות, כמו
creation_time, job_start_timeאוperiod_start.
המאמרים הבאים
- מידע נוסף על התחביר של סכימת המידע ורשימה של התצוגות הזמינות מופיע במאמר מבוא ל-INFORMATION_SCHEMA.
- כאן מוסבר איך לראות את פרטי המשימות, להציג רשימה של משימות פעילות ולבטל משימות שפועלות.