מעקב אחרי 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".

המאמרים הבאים