מעקב אחרי BI Engine
BigQuery BI Engine מאיץ את BigQuery לתרחישי BI באמצעות מטמון בזיכרון וביצוע מהיר יותר. אפשר לעקוב אחרי פרטי ההאצה באמצעות INFORMATION_SCHEMA ומדדים של Cloud Monitoring.
Cloud Monitoring
אתם יכולים לעקוב אחרי BigQuery BI Engine ולהגדיר התראות לגביו באמצעות Cloud Monitoring. במאמר יצירת תרשימים מוסבר איך ליצור מרכז בקרה למדדים של BI Engine.
המדדים הבאים זמינים ל-BigQuery BI Engine:
| משאב | מדד | פרטים |
|---|---|---|
| פרויקט ב-BigQuery | נפח כולל (בייטים) בהזמנה | הקיבולת הכוללת שהוקצתה לפרויקט אחד Google Cloud |
| פרויקט ב-BigQuery | בייטים בשימוש בהזמנה | הקיבולת הכוללת שנוצלה בפרויקט אחד Google Cloud |
| פרויקט ב-BigQuery | BI Engine Top Tables Cached Bytes | שימוש במטמון לכל טבלה. במדד הזה מוצגות N הטבלאות המובילות לפי שימוש בדוח אזורי. |
נתונים סטטיסטיים של שאילתות ב-BI Engine
בקטע הזה מוסבר איך למצוא נתונים סטטיסטיים של שאילתות כדי לעזור לכם לעקוב אחרי השימוש ב-BI Engine, לאבחן בעיות ולפתור אותן.
מצבי האצה של BI Engine
כשהאצת BI Engine מופעלת, השאילתה יכולה לפעול באחד מארבעת המצבים הבאים:
BI_ENGINE_DISABLED |
BI Engine השבית את ההאצה.
biEngineReasons מציינים סיבה מפורטת יותר. השאילתה הופעלה באמצעות מנוע ההפעלה של BigQuery. |
PARTIAL_INPUT |
חלק מקלט השאילתה הואץ באמצעות BI Engine. כפי שמתואר במאמר
אופטימיזציה של שאילתות והאצת הביצוע שלהן, תוכנית שאילתה בדרך כלל מחולקת לכמה שלבי קלט. BI Engine תומך בסוגים הנפוצים של תבניות לשאילתות משנה, שמשמשות בדרך כלל ליצירת לוחות בקרה. אם השאילתה מורכבת מכמה שלבי קלט, שרק חלק מהם נכללים בתרחישי השימוש הנתמכים, BI Engine מריץ את השלבים שלא נתמכים באמצעות מנוע BigQuery הרגיל ללא האצה. במצב כזה, BI Engine מחזיר קוד האצה PARTIAL ומשתמש ב-biEngineReasons כדי לאכלס את הסיבה לאי-האצה של שלבי קלט אחרים. |
FULL_INPUT |
כל שלבי הקלט של השאילתה הואצו באמצעות BI Engine. הנתונים שנשמרו במטמון משמשים שוב בשאילתות, והחישוב שמתבצע מיד אחרי קריאת הנתונים מואץ. |
FULL_QUERY |
כל השאילתה הואצה באמצעות BI Engine. |
צפייה בנתונים סטטיסטיים של משימות ב-BigQuery API
נתונים סטטיסטיים מפורטים על BI Engine זמינים דרך BigQuery API.
כדי לאחזר את הנתונים הסטטיסטיים שמשויכים לשאילתות שההפעלה שלהן הואצה על ידי BI Engine, מריצים את הפקודה הבאה בכלי שורת הפקודה של BigQuery:
bq show --format=prettyjson -j job_id
אם הפרויקט מופעל להאצת BI Engine, הפלט כולל שדה חדש, biEngineStatistics. לפניכם דוגמה לדוח משימות:
"statistics": {
"creationTime": "1602175128902",
"endTime": "1602175130700",
"query": {
"biEngineStatistics": {
"biEngineMode": "DISABLED",
"biEngineReasons": [
{
"code": "UNSUPPORTED_SQL_TEXT",
"message": "Detected unsupported join type"
}
]
},
מידע נוסף על השדה BiEngineStatistics זמין במאמר בנושא הפניה למשרה.
סטטיסטיקות של סכימת המידע ב-BigQuery
נתוני התאוצה של BI Engine כלולים בתצוגות BigQuery INFORMATION_SCHEMA כחלק מהתצוגות INFORMATION_SCHEMA.JOBS_BY_* בעמודה bi_engine_statistics.
לדוגמה, השאילתה הזו מחזירה את הערך bi_engine_statistics של כל המשימות בפרויקטים הנוכחיים ב-24 השעות האחרונות:
SELECT
creation_time,
job_id,
bi_engine_statistics
FROM
`region-us`.INFORMATION_SCHEMA.JOBS_BY_PROJECT
WHERE
creation_time >
TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY)
AND job_type = "QUERY"
כדי לציין אזוריות עבור project-id, region ו-views בתצוגה INFORMATION_SCHEMA, צריך להשתמש בפורמט הבא:
`PROJECT_ID`.`region-REGION_NAME`.INFORMATION_SCHEMA.VIEW
עיון בפרטים של סכימת המידע ב-Data Studio
כדי לעקוב אחרי הדוחות ומקורות הנתונים של Data Studio שנעשה בהם שימוש ב-BigQuery, אפשר לעיין בתצוגה INFORMATION_SCHEMA.JOBS. כל שאילתה של Data Studio ב-BigQuery יוצרת רשומה עם התוויות report_id ו-datasource_id. המזהים האלה מופיעים בסוף כתובת ה-URL של Data Studio כשפותחים דוח או דף של מקור נתונים.
לדוגמה, בדוח עם כתובת ה-URL
https://lookerstudio.google.com/navigation/reporting/my-report-id-123, מזהה הדוח הוא "my-report-id-123".
בדוגמאות הבאות אפשר לראות איך צופים בדוחות ובמקורות נתונים:
איך מוצאים את כתובת ה-URL של הדוח ומקור הנתונים לכל משימת BigQuery ב-Data Studio
-- Standard labels used by Data Studio. DECLARE requestor_key STRING DEFAULT 'requestor'; DECLARE requestor_value STRING DEFAULT 'looker_studio'; CREATE TEMP FUNCTION GetLabel(labels ANY TYPE, label_key STRING) AS ( (SELECT l.value FROM UNNEST(labels) l WHERE l.key = label_key) ); CREATE TEMP FUNCTION GetDatasourceUrl(labels ANY TYPE) AS ( CONCAT("https://lookerstudio.google.com/datasources/", GetLabel(labels, 'looker_studio_datasource_id')) ); CREATE TEMP FUNCTION GetReportUrl(labels ANY TYPE) AS ( CONCAT("https://lookerstudio.google.com/reporting/", GetLabel(labels, 'looker_studio_report_id')) ); SELECT job_id, GetDatasourceUrl(labels) AS datasource_url, GetReportUrl(labels) AS report_url, FROM `region-us`.INFORMATION_SCHEMA.JOBS jobs WHERE creation_time > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 7 DAY) AND GetLabel(labels, requestor_key) = requestor_value LIMIT 100;
הצגת משרות שנוצרו באמצעות דוח ומקור נתונים
-- Specify report and data source id, which can be found at the end of Data Studio URLs. DECLARE user_report_id STRING DEFAULT '*report id here*'; DECLARE user_datasource_id STRING DEFAULT '*datasource id here*'; -- Data Studio labels for BigQuery. DECLARE requestor_key STRING DEFAULT 'requestor'; DECLARE requestor_value STRING DEFAULT 'looker_studio'; DECLARE datasource_key STRING DEFAULT 'looker_studio_datasource_id'; DECLARE report_key STRING DEFAULT 'looker_studio_report_id'; CREATE TEMP FUNCTION GetLabel(labels ANY TYPE, label_key STRING) AS ( (SELECT l.value FROM UNNEST(labels) l WHERE l.key = label_key) ); SELECT creation_time, job_id, FROM `region-us`.INFORMATION_SCHEMA.JOBS jobs WHERE creation_time > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 7 DAY) AND GetLabel(labels, requestor_key) = requestor_value AND GetLabel(labels, datasource_key) = user_datasource_id AND GetLabel(labels, report_key) = user_report_id ORDER BY 1 LIMIT 100;
Cloud Logging
ההאצה של BI Engine היא חלק מהעיבוד של משימות BigQuery. כדי לבדוק משימות BigQuery בפרויקט ספציפי, אפשר לעיין בדף Cloud Logging עם מטען ייעודי (payload) של protoPayload.serviceName="bigquery.googleapis.com".
המאמרים הבאים
- מידע נוסף על Cloud Monitoring
- מידע נוסף על מעקב אחרי תרשימים
- מידע נוסף על מעקב אחרי התראות
- מידע נוסף על Cloud Logging