תצוגת STREAMING_TIMELINE

בתצוגה INFORMATION_SCHEMA.STREAMING_TIMELINE מוצגים נתונים סטטיסטיים מצטברים של הסטרימינג לפי דקה עבור הפרויקט הנוכחי.

אפשר להריץ שאילתות על INFORMATION_SCHEMA תצוגות סטרימינג כדי לאחזר מידע היסטורי ומידע בזמן אמת על נתונים שמועברים בסטרימינג ל-BigQuery באמצעות tabledata.insertAll השיטה הקודמת ולא באמצעות BigQuery Storage Write API. למידע נוסף על הזרמת נתונים ל-BigQuery, אפשר לעיין במאמר הזרמת נתונים ל-BigQuery.

ההרשאה הנדרשת

כדי לשלוח שאילתה לתצוגה INFORMATION_SCHEMA.STREAMING_TIMELINE, צריך את ההרשאה bigquery.tables.list לניהול זהויות והרשאות גישה (IAM) בפרויקט.

כל אחד מהתפקידים הבאים שמוגדרים מראש ב-IAM כולל את ההרשאה הנדרשת:

  • roles/bigquery.user
  • roles/bigquery.dataViewer
  • roles/bigquery.dataEditor
  • roles/bigquery.dataOwner
  • roles/bigquery.metadataViewer
  • roles/bigquery.resourceAdmin
  • roles/bigquery.admin

מידע נוסף על הרשאות ב-BigQuery זמין במאמר בקרת גישה באמצעות IAM.

סכימה

כשמריצים שאילתה על תצוגות של זרם נתונים, תוצאות השאילתה מכילות מידע היסטורי ומידע בזמן אמת על זרם הנתונים ב-BigQuery.INFORMATION_SCHEMA כל שורה בתצוגות הבאות מייצגת נתונים סטטיסטיים של הזרמה לטבלה ספציפית, שנאספו במרווח של דקה אחת החל מ-start_timestamp. הנתונים הסטטיסטיים מקובצים לפי קוד שגיאה, כך שתהיה שורה אחת לכל קוד שגיאה שנתקל בו במהלך מרווח של דקה אחת לכל חותמת זמן ושילוב של טבלה. אם הבקשות מצליחות, קוד השגיאה מוגדר ל-NULL. אם לא בוצע סטרימינג של נתונים לטבלה במהלך תקופת זמן מסוימת, לא יוצגו שורות עבור חותמות הזמן התואמות של הטבלה הזו.

לתצוגה INFORMATION_SCHEMA.STREAMING_TIMELINE יש את הסכימה הבאה:
שם העמודה סוג נתונים ערך
start_timestamp TIMESTAMP (עמודת חלוקה למחיצות) חותמת הזמן של ההתחלה של מרווח הזמן של דקה אחת לסטטיסטיקה המצטברת.
project_id STRING (Clustering column) מזהה הפרויקט.
project_number INTEGER מספר הפרויקט.
dataset_id STRING (עמודת אשכולות) מזהה מערך הנתונים.
table_id STRING (Clustering column) מזהה הטבלה.
error_code STRING קוד השגיאה שהוחזר לבקשות שצוינו בשורה הזו. ‫NULL לבקשות שהסתיימו בהצלחה.
total_requests INTEGER המספר הכולל של הבקשות במרווח של דקה.
total_rows INTEGER המספר הכולל של שורות מכל הבקשות במרווח של דקה אחת.
total_input_bytes INTEGER המספר הכולל של בייטים מכל השורות במרווח של דקה אחת.

כדי לשמור על יציבות, מומלץ לציין במפורש את העמודות בשאילתות של סכימת המידע, במקום להשתמש בתו כל כללי (SELECT *). ציון מפורש של העמודות מונע את השבירה של השאילתות אם הסכימה הבסיסית משתנה.

שמירת נתונים

בתצוגה הזו מופיעה היסטוריית הצפייה בסטרימינג מ-180 הימים האחרונים.

היקף ותחביר

שאילתות שמופעלות על התצוגה הזו חייבות לכלול מסנן אזור. אם לא מציינים מסנן אזורי, המטא-נתונים מאוחזרים מכל האזורים. בטבלה הבאה מוסבר היקף האזור בתצוגה הזו:

שם התצוגה היקף המשאבים היקף האזור
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.STREAMING_TIMELINE[_BY_PROJECT] ברמת הפרויקט REGION
מחליפים את מה שכתוב בשדות הבאים:
  • אופציונלי: PROJECT_ID: מזהה הפרויקט ב- Google Cloud . אם לא מציינים פרויקט, המערכת משתמשת בפרויקט שמוגדר כברירת מחדל.
  • REGION: כל שם של אזור במערך נתונים. לדוגמה, `region-us`.

דוגמה

  • כדי להריץ שאילתות על נתונים באזור רב-אזורי בארה"ב, משתמשים ב-`region-us`.INFORMATION_SCHEMA.STREAMING_TIMELINE_BY_PROJECT
  • כדי להריץ שאילתות על נתונים באזור רב-אזורי באיחוד האירופי, צריך להשתמש ב-`region-eu`.INFORMATION_SCHEMA.STREAMING_TIMELINE_BY_PROJECT
  • כדי להריץ שאילתות על נתונים באזור asia-northeast1, משתמשים בכתובת `region-asia-northeast1`.INFORMATION_SCHEMA.STREAMING_TIMELINE_BY_PROJECT

רשימת האזורים הזמינים מופיעה במאמר מיקומי מערכי נתונים.

דוגמאות

דוגמה 1: כשלים בהזרמת נתונים מהזמן האחרון

בדוגמה הבאה מחושב הפירוט לפי דקה של סך הבקשות שנכשלו לכל הטבלאות בפרויקט ב-30 הדקות האחרונות, עם פיצול לפי קוד שגיאה:

SELECT
  start_timestamp,
  error_code,
  SUM(total_requests) AS num_failed_requests
FROM
  `region-us`.INFORMATION_SCHEMA.STREAMING_TIMELINE_BY_PROJECT
WHERE
  error_code IS NOT NULL
  AND start_timestamp > TIMESTAMP_SUB(CURRENT_TIMESTAMP, INTERVAL 30 MINUTE)
GROUP BY
  start_timestamp,
  error_code
ORDER BY
  start_timestamp DESC;
INFORMATION_SCHEMA

התוצאה אמורה להיראות כך:

+---------------------+------------------+---------------------+
|   start_timestamp   |    error_code    | num_failed_requests |
+---------------------+------------------+---------------------+
| 2020-04-15 20:55:00 | INTERNAL_ERROR   |                  41 |
| 2020-04-15 20:41:00 | CONNECTION_ERROR |                   5 |
| 2020-04-15 20:30:00 | INTERNAL_ERROR   |                 115 |
+---------------------+------------------+---------------------+
דוגמה 2: פירוט לפי דקה של כל הבקשות עם קודי שגיאה

בדוגמה הבאה מחושב פירוט לפי דקה של בקשות סטרימינג מוצלחות ושל בקשות סטרימינג שנכשלו, שמחולקות לקטגוריות של קודי שגיאה. אפשר להשתמש בשאילתה הזו כדי לאכלס לוח בקרה.

SELECT
  start_timestamp,
  SUM(total_requests) AS total_requests,
  SUM(total_rows) AS total_rows,
  SUM(total_input_bytes) AS total_input_bytes,
  SUM(
    IF(
      error_code IN ('QUOTA_EXCEEDED', 'RATE_LIMIT_EXCEEDED'),
      total_requests,
      0)) AS quota_error,
  SUM(
    IF(
      error_code IN (
        'INVALID_VALUE', 'NOT_FOUND', 'SCHEMA_INCOMPATIBLE',
        'BILLING_NOT_ENABLED', 'ACCESS_DENIED', 'UNAUTHENTICATED'),
      total_requests,
      0)) AS user_error,
  SUM(
    IF(
      error_code IN ('CONNECTION_ERROR','INTERNAL_ERROR'),
      total_requests,
      0)) AS server_error,
  SUM(IF(error_code IS NULL, 0, total_requests)) AS total_error,
FROM
  `region-us`.INFORMATION_SCHEMA.STREAMING_TIMELINE_BY_PROJECT
GROUP BY
  start_timestamp
ORDER BY
  start_timestamp DESC;
INFORMATION_SCHEMA

התוצאה אמורה להיראות כך:

+---------------------+----------------+------------+-------------------+-------------+------------+--------------+-------------+
|   start_timestamp   | total_requests | total_rows | total_input_bytes | quota_error | user_error | server_error | total_error |
+---------------------+----------------+------------+-------------------+-------------+------------+--------------+-------------+
| 2020-04-15 22:00:00 |         441854 |     441854 |       23784853118 |           0 |          0 |           17 |          17 |
| 2020-04-15 21:59:00 |         355627 |     355627 |       26101982742 |           0 |          0 |            0 |           0 |
| 2020-04-15 21:58:00 |         354603 |     354603 |       26160565341 |           0 |          0 |            0 |           0 |
| 2020-04-15 21:57:00 |         298823 |     298823 |       23877821442 |           0 |          0 |            0 |           0 |
+---------------------+----------------+------------+-------------------+-------------+------------+--------------+-------------+
דוגמה 3: טבלאות עם הכי הרבה תנועה נכנסת

בדוגמה הבאה מוחזרים נתונים סטטיסטיים של סטרימינג עבור 10 הטבלאות עם התנועה הנכנסת הגבוהה ביותר:

SELECT
  project_id,
  dataset_id,
  table_id,
  SUM(total_rows) AS num_rows,
  SUM(total_input_bytes) AS num_bytes,
  SUM(total_requests) AS num_requests
FROM
  `region-us`.INFORMATION_SCHEMA.STREAMING_TIMELINE_BY_PROJECT
GROUP BY
  project_id,
  dataset_id,
  table_id
ORDER BY
  num_bytes DESC
LIMIT 10;
INFORMATION_SCHEMA

התוצאה אמורה להיראות כך:

+----------------------+------------+-------------------------------+------------+----------------+--------------+
|      project_id      | dataset_id |           table_id            |  num_rows  |   num_bytes    | num_requests |
+----------------------+------------+-------------------------------+------------+----------------+--------------+
| my-project           | dataset1   | table1                        | 8016725532 | 73787301876979 |   8016725532 |
| my-project           | dataset1   | table2                        |   26319580 | 34199853725409 |     26319580 |
| my-project           | dataset2   | table1                        |   38355294 | 22879180658120 |     38355294 |
| my-project           | dataset1   | table3                        |  270126906 | 17594235226765 |    270126906 |
| my-project           | dataset2   | table2                        |   95511309 | 17376036299631 |     95511309 |
| my-project           | dataset2   | table3                        |   46500443 | 12834920497777 |     46500443 |
| my-project           | dataset2   | table4                        |   25846270 |  7487917957360 |     25846270 |
| my-project           | dataset1   | table4                        |   18318404 |  5665113765882 |     18318404 |
| my-project           | dataset1   | table5                        |   42829431 |  5343969665771 |     42829431 |
| my-project           | dataset1   | table6                        |    8771021 |  5119004622353 |      8771021 |
+----------------------+------------+-------------------------------+------------+----------------+--------------+
דוגמה 4: יחס השגיאות בשידור בטבלה

בדוגמה הבאה מחושב פירוט של השגיאות לפי יום בטבלה ספציפית, עם חלוקה לפי קוד שגיאה:

SELECT
  TIMESTAMP_TRUNC(start_timestamp, DAY) as day,
  project_id,
  dataset_id,
  table_id,
  error_code,
  SUM(total_rows) AS num_rows,
  SUM(total_input_bytes) AS num_bytes,
  SUM(total_requests) AS num_requests
FROM
  `region-us`.INFORMATION_SCHEMA.STREAMING_TIMELINE_BY_PROJECT
WHERE
  table_id LIKE 'my_table'
GROUP BY
  project_id, dataset_id, table_id, error_code, day
ORDER BY
  day, project_id, dataset_id DESC;
INFORMATION_SCHEMA

התוצאה אמורה להיראות כך:

+---------------------+-------------+------------+----------+----------------+----------+-----------+--------------+
|         day         |  project_id | dataset_id | table_id |   error_code   | num_rows | num_bytes | num_requests |
+---------------------+-------------+------------+----------+----------------+----------+-----------+--------------+
| 2020-04-21 00:00:00 | my_project  | my_dataset | my_table | NULL           |       41 |    252893 |           41 |
| 2020-04-20 00:00:00 | my_project  | my_dataset | my_table | NULL           |     2798 |  10688286 |         2798 |
| 2020-04-19 00:00:00 | my_project  | my_dataset | my_table | NULL           |     2005 |   7979495 |         2005 |
| 2020-04-18 00:00:00 | my_project  | my_dataset | my_table | NULL           |     2054 |   7972378 |         2054 |
| 2020-04-17 00:00:00 | my_project  | my_dataset | my_table | NULL           |     2056 |   6978079 |         2056 |
| 2020-04-17 00:00:00 | my_project  | my_dataset | my_table | INTERNAL_ERROR |        4 |     10825 |            4 |
+---------------------+-------------+------------+----------+----------------+----------+-----------+--------------+