מבוא למעקב ב-BigQuery
המעקב אחרי BigQuery מאפשר לכם לעקוב אחרי השימוש במשאבים, ביצוע המשימות והתקינות התפעולית של עומסי העבודה, כדי לזהות צווארי בקבוק ולשמור על האמינות.
מעקב ורישום ביומן הם חיוניים להפעלת אפליקציות אמינות בענן. עומסי העבודה ב-BigQuery לא שונים, במיוחד אם עומס העבודה הוא בנפח גבוה או שהוא קריטי למשימה.
מקורות המעקב משתנים בהתאם לתדירות הדגימה ולרמת הצבירה. לדוגמה, תצוגות של סכימת מידע מספקות לעיתים קרובות פירוט רב יותר מאשר מדדים של Cloud Monitoring. כתוצאה מכך, יכול להיות שתרשימי המדדים יהיו שונים באופן זמני מהנתונים בסכימת המידע, עד שההבדלים יצטמצמו בעקבות הצבירה. כשאתם מתכננים אסטרטגיית מעקב, חשוב לבדוק את זמן האחזור, הדיוק והנכונות בהתאם לדרישות שלכם.
מדדים
מדדים הם ערכים מספריים שנאספים במרווחי זמן קבועים וזמינים לניתוח. אתם יכולים להשתמש במדדים כדי:
- ליצור תרשימים ומרכזי בקרה.
- הפעלת התראות על תנאים או מצבים שדורשים התערבות אנושית.
- לנתח את היסטוריית הביצועים.
ב-BigQuery, המדדים הזמינים כוללים את מספר המשימות שפועלות, מספר הבייטים שנסרקו במהלך שאילתה והתפלגות זמני השאילתות. המדדים של שאילתה זמינים רק אחרי שהשאילתה מצליחה, ויכול להיות שיעברו עד שבע דקות עד שהם ידווחו. מדדים של שאילתות שנכשלו לא מדווחים. רשימה מלאה של המדדים הזמינים, כולל תדירות הדגימה, החשיפה והמגבלות שלהם, מופיעה בקטע Cloud de Confiance metrics במאמר bigquery.
להשתמש ב-Cloud Monitoring כדי להציג את המדדים של BigQuery וליצור תרשימים והתראות. לכל מדד יש סוג משאב (bigquery_dataset, bigquery_project או global) וקבוצת תוויות. אפשר לקבץ או לסנן כל מדד באמצעות התוויות.
לדוגמה, כדי להציג בתרשים את מספר השאילתות האינטראקטיביות שבתהליך, משתמשים בהצהרת PromQL הבאה, שמסננת לפי priority ששווה ל-interactive:
{"bigquery.googleapis.com/query/count", monitored_resource="global", priority="interactive"}
בדוגמה הבאה מוצג מספר משימות הטעינה שבתהליך, מקובצות במרווחים של 10 דקות:
avg_over_time({"bigquery.googleapis.com/job/num_in_flight",
monitored_resource="bigquery_project",
job_type="load"
}[10m])
למידע נוסף, קראו את המאמר יצירת תרשימים והתראות ל-BigQuery.
יומנים
יומנים הם רשומות טקסט שנוצרות בתגובה לאירועים או לפעולות מסוימים. BigQuery יוצר רשומות ביומן לפעולות כמו יצירה או מחיקה של טבלה, רכישת משבצות או הרצה של משימת טעינה. למידע נוסף על התחברות Cloud de Confiance, ראו Cloud Logging.
יומן הוא אוסף של רשומות ביומן שאפשר רק להוסיף אליו. לדוגמה, אתם יכולים לכתוב רשומות ביומן משלכם ליומן בשם projects/PROJECT_ID/logs/my-test-log. בשירותים רבים שלCloud de Confiance , כולל BigQuery, נוצר סוג של יומן שנקרא יומני ביקורת. היומנים האלה מתעדים:
- פעילות ניהולית, כמו יצירה או שינוי של משאבים.
- גישה לנתונים, כמו קריאת נתונים שסופקו על ידי משתמשים ממשאב.
- אירועי מערכת שנוצרים על ידי מערכות Google, ולא על ידי פעולות של משתמשים.
יומני הביקורת נכתבים בפורמט JSON מובנה. סוג הנתונים הבסיסי של רשומות ביומן הוא המבנה LogEntry.Cloud de Confiance המבנה הזה מכיל את שם היומן, המשאב שיצר את הרשומה ביומן, חותמת הזמן (UTC) ומידע בסיסי אחר.
פרטי האירוע שנרשם ביומן נמצאים בשדה משנה שנקרא payload. ביומני ביקורת, השדה של המטען הייעודי נקרא protoPayload. הערך של השדה הזה הוא מבנה AuditLog, שמצוין על ידי הערך של השדה protoPayload.@type, שמוגדר כ-type.googleapis.com/google.cloud.audit.AuditLog.
בפעולות על מערכי נתונים, טבלאות ומשימות, BigQuery כותב יומני ביקורת בשני פורמטים שונים, אבל שניהם חולקים את סוג הבסיס AuditLog.
בפורמט הישן:
- השדה
resource.typeהואbigquery_resource. - פרטים על הפעולה נכתבים בשדה
protoPayload.serviceData. הערך של השדה הזה הוא מבנה שלAuditData.
בפורמט החדש יותר:
- השדה
resource.typeהואbigquery_projectאוbigquery_dataset. המשאבbigquery_projectמכיל רשומות ביומן שקשורות למשימות, והמשאבbigquery_datasetמכיל רשומות ביומן שקשורות לאחסון. - פרטים על הפעולה נכתבים בשדה
protoPayload.metadata. הערך של השדה הזה הוא מבנה שלBigQueryAuditMetadata.
מומלץ לצרוך יומנים בפורמט החדש יותר. מידע נוסף זמין במדריך להעברת יומני ביקורת.
דוגמה מקוצרת לרשומה ביומן שמציגה פעולה שנכשלה:
{
"protoPayload": {
"@type": "type.googleapis.com/google.cloud.audit.AuditLog",
"status": {
"code": 5,
"message": "Not found: Dataset my-project:my-dataset was not found in location US"
},
"authenticationInfo": { ... },
"requestMetadata": { ... },
"serviceName": "bigquery.googleapis.com",
"methodName": "google.cloud.bigquery.v2.JobService.InsertJob",
"metadata": {
},
"resource": {
"type": "bigquery_project",
"labels": { .. },
},
"severity": "ERROR",
"logName": "projects/my-project/logs/cloudaudit.googleapis.com%2Fdata_access",
...
}
לפעולות ב-BigQuery Reservations, הערך של protoPayload הוא מבנה של AuditLog, והשדות protoPayload.request ו-protoPayload.response מכילים מידע נוסף. הגדרות השדות מפורטות במאמר BigQuery Reservation API. למידע נוסף, קראו את המאמר מעקב אחרי BigQuery Reservations.
תצוגות של סכימת מידע ב-BigQuery
תצוגות של סכימת מידע הן מקור נוסף לתובנות ב-BigQuery, שאפשר להשתמש בו בשילוב עם מדדים ויומנים.
התצוגות האלה מכילות מטא-נתונים על משימות, מערכי נתונים, טבלאות וישויות אחרות ב-BigQuery. לדוגמה, אתם יכולים לקבל מטא-נתונים בזמן אמת על משימות BigQuery שרצו בתקופה מסוימת, ואז לקבץ או לסנן את התוצאות לפי פרויקט, משתמש, טבלאות שאליהן בוצעה הפניה ומאפיינים אחרים.
אתם יכולים להשתמש במידע הזה כדי לבצע ניתוח מפורט יותר של עומסי העבודה ב-BigQuery, ולענות על שאלות כמו:
- מהו הניצול הממוצע של משבצות לכל השאילתות ב-7 הימים האחרונים בפרויקט נתון?
- אילו משתמשים שלחו משימת טעינה באצווה לפרויקט מסוים?
- אילו שגיאות סטרימינג התרחשו ב-30 הדקות האחרונות, מקובצות לפי קוד שגיאה?
כדי לקבל תובנות על הביצועים של עומסי העבודה ב-BigQuery, כדאי לבדוק במיוחד את המטא-נתונים של המשימות, המטא-נתונים של הסטרימינג והמטא-נתונים של ההזמנות.
ב-GitHub תוכלו למצוא שאילתות לדוגמה של סכימת מידע, שמציגות את ניצול ה-slots וההזמנות של הארגון, את ביצוע המשימות ואת השגיאות במשימות. לדוגמה, השאילתה הבאה מספקת רשימה של שאילתות בהמתנה או פועלות. השאילתות האלה מסודרות לפי משך הזמן שחלף מאז שהן נוצרו באזור us:
SELECT
creation_time,
project_id,
user_email,
job_id,
job_type,
priority,
state,
TIMESTAMP_DIFF(CURRENT_TIMESTAMP(), start_time,second) as running_time_sec
FROM
`region-us`.INFORMATION_SCHEMA.JOBS_BY_PROJECT
WHERE
creation_time BETWEEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY) AND CURRENT_TIMESTAMP()
AND state != "DONE"
ORDER BY
running_time_sec DESC
למידע נוסף, קראו את המאמר פתרון בעיות בביצועים של BigQuery באמצעות מרכזי הבקרה האלה.
בנוסף לכתיבת שאילתות משלכם, אתם יכולים להשתמש בכלי המעקב של BigQuery במסוף Cloud de Confiance :
- מעקב אחרי התקינות, ניצול המשאבים והמשימות. צפייה במרכזי בקרה של תקינות תפעולית ובתרשימי משאבים של BigQuery Admin, שמאפשרים לעקוב אחרי השימוש ב-slots, אחרי מספר המשימות שפועלות בו-זמנית ואחרי זמן הריצה של המשימות בארגון ובמכסות שהוקצו.
- מעקב אחרי משימות. לחפש, לסנן ולקבץ הרצות של שאילתות ספציפיות בכל הארגון כדי לבדוק תרשימי הרצה של שאילתות, לזהות את צרכני ה-slots המובילים ולפתור בעיות במשימות בעייתיות.
מפת טלמטריה
בטבלה הבאה מפורטים המאפיינים והמשאבים של BigQuery, ולידם נתוני הטלמטריה של המעקב התפעולי, השירותים והמשאבים של ה-API שנבדקו ומאמרי העזרה של יומני הביקורת. אתם יכולים להשתמש בו כדי למצוא את נתוני הטלמטריה שאתם צריכים כדי לפתור בעיות, לבצע אופטימיזציה של הביצועים, לשלוט בעלויות, לבדוק את השימוש ולשמור על תאימות.
בניגוד להרבה שירותי Cloud de Confiance by S3NS שכותבים יומני משימות תפעוליות ב-Cloud Logging, ב-BigQuery נכתבים נתוני טלמטריה של משימות תפעוליות בתצוגות של סכימת מידע כמו INFORMATION_SCHEMA.JOBS. התצוגות האלה מתעדות את שלבי הביצוע של השאילתות, את השימוש ב-slots, את הבייטים שחויבו ואת כל המשימות שנשלחו, כולל משימות שנכשלו ומשימות שעדיין לא הסתיימו.
ב-BigQuery משתמשים ב-Logging בעיקר כדי להפיק יומני ביקורת של Cloud, שבהם מתועדות פעילויות אדמין ופעילויות של גישה לנתונים. כשבודקים את הפעילות הזו, אפשר לראות מי ניגש למשאבים או לנתונים, איפה ומתי.
יומני ביקורת לא נוצרים בכל שיבוש או כשל במשימה. לדוגמה, משימות שנכשלו לא יוצרות אירועים מסוג TableDataRead או TableDataChange, והאירוע jobCompletedEvent מתעד רק משימות שהושלמו בהצלחה. במאמר סקירה כללית על יומני הביקורת של BigQuery, בקטע גישה לנתונים, מפורטים תרחישים שבהם לא נוצרים יומני ביקורת.
בטבלה הבאה, כוכבית (*) בשם של תצוגת INFORMATION_SCHEMA מציינת וריאציות של תצוגות ספציפיות להיקף, כמו _BY_PROJECT, _BY_USER, _BY_FOLDER ו-_BY_ORGANIZATION.
| תכונה או משאב | מעקב תפעולי | יומני ביקורת של Cloud |
|---|---|---|
| שאילתות ומשימות |
תצוגות של סכימת מידע:
Console:
thought
מדדים: מדדי Cloud Monitoring, כמו |
שירות API:
המשאבים שנבדקים: משימות ב- יומני ביקורת: יומני גישה לנתונים באמצעות |
| טבלאות ותצוגות |
תצוגות של סכימת מידע:
מדדים: מדדי מעקב, כמו |
שירותי API: המשאבים שנבדקים: טבלאות, תצוגות ותצוגות מהותיות ב- יומני ביקורת: יומני גישה לנתונים באמצעות |
| מערכי נתונים |
תצוגות של סכימת מידע:
|
שירות API:
משאבים שנבדקים: מערכי נתונים, כללי מדיניות IAM של מערכי נתונים ורשימות ACL של מערכי נתונים ב- יומני ביקורת: יומני Admin Activity ו-Data Access באמצעות |
| משבצות והזמנות |
תצוגות של סכימת מידע:
Console:
מדדים: מדדי מעקב, כמו |
שירות API: המשאבים שנבדקים: מקומות שמורים, התחייבויות לקיבולת והקצאות של מקומות שמורים ב- יומני ביקורת: יומני פעילות אדמין ויומני גישה לנתונים, שנועדו ליצור, לשנות, למחוק ולפרט הזמנות, התחייבויות למכסת נפח והקצאות של פרויקטים או תיקיות. יומני ביקורת של BigQuery Reservation API |
| אבטחה ברמת העמודה ואנונימיזציה של נתונים |
תצוגות של סכימת מידע:
|
שירותי API:
משאבים שנבדקים: טקסונומיות ותגי מדיניות ב- יומני ביקורת: יומני Admin Activity ו-Data Access לניהול טקסונומיה ותגי מדיניות ולשינויים במדיניות IAM (תגי מדיניות ביקורת), ניהול מדיניות נתונים ועדכונים של מקבלי מענקים (רישום ביומן ביקורת של מדיניות נתונים ב-BigQuery) ויומני |
| פונקציות, כולל פונקציות UDF ותהליכים מאוחסנים |
תצוגות של סכימת מידע:
|
שירות API:
משאבים שעוברים ביקורת: פונקציות בהגדרת המשתמש (UDF), פונקציות של טבלאות ופרוצדורות מאוחסנות ב- יומני ביקורת: יומני Admin Activity ו-Data Access באמצעות |
| חיבורים חיצוניים |
תצוגות של סכימת מידע:
|
שירות API:
משאבים שנבדקים: חיבורים ומדיניות IAM של חיבורים ב- יומני ביקורת: יומני Admin Activity ו-Data Access ליצירת חיבורים, עדכוני פרטי כניסה, מחיקה, הצגה ברשימה ושינויים במדיניות IAM. יומני ביקורת של BigQuery Connection API |
| BigQuery sharing |
תצוגות של סכימת מידע:
מרכז בקרה: שיתוף מרכז הבקרה של מדדי השימוש. |
שירות API:
משאבים שנבדקים: חילופי נתונים, כרטיסי מוצר, מינויים וכללי מדיניות IAM של חילופי נתונים או כרטיסי מוצר ב- יומני ביקורת: יומני פעילות אדמין ויומני גישה לנתונים של החלפת נתונים ויצירת רישומים, עדכונים, מחיקה, שינויים במדיניות IAM ופעולות של מנויים. שיתוף של רישום ביומן ביקורת |
| שירות העברת נתונים ל-BigQuery |
מדדים ויומנים:
|
שירות API:
משאבים מבוקרים: הגדרות העברה, הפעלות של העברות ומקורות נתונים ב- יומני ביקורת: יומני פעילות אדמין ויומני גישה לנתונים שקשורים ליצירה, לעדכון, למחיקה, להצגה ברשימה ולהפעלה של הגדרות העברה והרצות של העברות. יומני ביקורת של שירות העברת הנתונים ל-BigQuery |
| קטלוגים וטבלאות של BigLake |
תצוגות של סכימת מידע: |
שירותי API: משאבים מבוקרים: קטלוגים של מטא-סטורים, מסדי נתונים, טבלאות ומחיצות ב- יומני ביקורת: יומני Admin Activity ו-Data Access לפעולות של מדיניות IAM בקטלוג, במסד הנתונים, במרחב השמות, בטבלה, במחיצה ובקטלוג. רישום ביומן ביקורת של BigLake |
| BigQuery Migration Service |
סטטוס ודוחות:
|
שירות API:
משאבים מבוקרים: תהליכי עבודה של העברה, משימות משנה של העברה ובקשות לתרגום SQL ב- יומני ביקורת: יומני Data Access ליצירה, להפעלה, להצגה, למחיקה ולצפייה ברשימה של תהליכי עבודה ומשימות משנה של העברה, ולתרגום של שאילתות SQL. רישום ביומן הביקורת של BigQuery Migration Service |