תצוגת STREAMING_TIMELINE_BY_FOLDER
התצוגה INFORMATION_SCHEMA.STREAMING_TIMELINE_BY_FOLDER מכילה נתונים סטטיסטיים מצטברים של סטרימינג לכל דקה עבור תיקיית ההורה של הפרויקט הנוכחי, כולל תיקיות המשנה שלו.
אפשר להריץ שאילתות על INFORMATION_SCHEMA תצוגות סטרימינג
כדי לאחזר מידע היסטורי ומידע בזמן אמת על נתונים שמועברים בסטרימינג ל-BigQuery באמצעות tabledata.insertAll השיטה הקודמת ולא באמצעות BigQuery Storage Write API. למידע נוסף על הזרמת נתונים ל-BigQuery, אפשר לעיין במאמר הזרמת נתונים ל-BigQuery.
ההרשאה הנדרשת
כדי לשלוח שאילתה לתצוגה INFORMATION_SCHEMA.STREAMING_TIMELINE_BY_FOLDER, צריך את ההרשאה INFORMATION_SCHEMA.STREAMING_TIMELINE_BY_FOLDER לניהול זהויות והרשאות גישה (IAM) בתיקיית האב של הפרויקט.bigquery.tables.list
כל אחד מהתפקידים הבאים שמוגדרים מראש ב-IAM כולל את ההרשאה שצוינה למעלה:
roles/bigquery.adminroles/bigquery.userroles/bigquery.dataViewerroles/bigquery.dataEditorroles/bigquery.dataOwnerroles/bigquery.metadataViewerroles/bigquery.resourceAdmin
מידע נוסף על הרשאות ב-BigQuery זמין במאמר בקרת גישה באמצעות IAM.
סכימה
כשמריצים שאילתה על תצוגות של זרם נתונים, תוצאות השאילתה מכילות מידע היסטורי ומידע בזמן אמת על זרם הנתונים ב-BigQuery.INFORMATION_SCHEMA כל שורה בתצוגות הבאות מייצגת נתונים סטטיסטיים של הזרמה לטבלה ספציפית, שנאספו במרווח של דקה אחת החל מ-start_timestamp. הנתונים הסטטיסטיים מקובצים לפי קוד שגיאה, כך שתהיה שורה אחת לכל קוד שגיאה שנתקל בו במהלך מרווח של דקה אחת לכל חותמת זמן ושילוב של טבלה. אם הבקשות מצליחות, קוד השגיאה מוגדר ל-NULL. אם לא בוצע סטרימינג של נתונים לטבלה במהלך תקופת זמן מסוימת, לא יוצגו שורות עבור חותמות הזמן התואמות של הטבלה הזו.
לתצוגה INFORMATION_SCHEMA.STREAMING_TIMELINE_BY_FOLDER יש את הסכימה הבאה:
| שם העמודה | סוג נתונים | ערך |
|---|---|---|
start_timestamp |
TIMESTAMP |
(עמודת חלוקה למחיצות) חותמת הזמן של ההתחלה של מרווח הזמן של דקה אחת לסטטיסטיקה המצטברת. |
folder_numbers |
REPEATED INTEGER |
מזהי המספרים של התיקיות שמכילות את הפרויקט, החל מהתיקייה שמכילה ישירות את הפרויקט, ואחריה התיקייה שמכילה את תיקיית הבן וכן הלאה.
לדוגמה, אם folder_numbers הוא [1, 2, 3], אז התיקייה 1 מכילה מיד את הפרויקט, התיקייה 2 מכילה את 1 והתיקייה 3 מכילה את 2. העמודה הזו מאוכלסת רק ב-STREAMING_TIMELINE_BY_FOLDER.
|
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_FOLDER |
התיקייה שמכילה את הפרויקט שצוין | REGION |
-
אופציונלי:
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . אם לא מציינים פרויקט, המערכת משתמשת בפרויקט שמוגדר כברירת מחדל. -
REGION: כל שם של אזור במערך נתונים. לדוגמה,`region-us`.
דוגמה
- כדי להריץ שאילתות על נתונים באזור רב-אזורי בארה"ב, משתמשים ב-
region-us.INFORMATION_SCHEMA.STREAMING_TIMELINE_BY_FOLDER - כדי להריץ שאילתות על נתונים באזור רב-אזורי באיחוד האירופי, צריך להשתמש ב-
region-eu.INFORMATION_SCHEMA.STREAMING_TIMELINE_BY_FOLDER - כדי להריץ שאילתות על נתונים באזור asia-northeast1, משתמשים בכתובת
region-asia-northeast1.INFORMATION_SCHEMA.STREAMING_TIMELINE_BY_FOLDER
רשימת האזורים הזמינים מופיעה במאמר מיקומי מערכי נתונים.
דוגמאות
דוגמה 1: כשלים בהזרמת נתונים מהזמן האחרון
בדוגמה הבאה מחושב פירוט לפי דקה של סך הבקשות שנכשלו עבור כל הטבלאות בתיקיית הפרויקט ב-30 הדקות האחרונות, עם פיצול לפי קוד שגיאה:
SELECT start_timestamp, error_code, SUM(total_requests) AS num_failed_requests FROM `region-us`.INFORMATION_SCHEMA.STREAMING_TIMELINE_BY_FOLDER 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_FOLDER 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 | 5 | 8 | 0 | 13 | | 2020-04-15 21:58:00 | 354603 | 354603 | 26160565341 | 0 | 0 | 0 | 0 | | 2020-04-15 21:57:00 | 298823 | 298823 | 23877821442 | 0 | 2 | 0 | 2 | +---------------------+----------------+------------+-------------------+-------------+------------+--------------+-------------+
דוגמה 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_FOLDER 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-project1 | dataset1 | table1 | 8016725532 | 73787301876979 | 8016725532 | | my-project2 | dataset1 | table2 | 26319580 | 34199853725409 | 26319580 | | my-project1 | dataset2 | table1 | 38355294 | 22879180658120 | 38355294 | | my-project3 | dataset1 | table3 | 270126906 | 17594235226765 | 270126906 | | my-project2 | dataset2 | table2 | 95511309 | 17376036299631 | 95511309 | | my-project2 | dataset2 | table3 | 46500443 | 12834920497777 | 46500443 | | my-project3 | dataset2 | table4 | 25846270 | 7487917957360 | 25846270 | | my-project4 | dataset1 | table4 | 18318404 | 5665113765882 | 18318404 | | my-project4 | dataset1 | table5 | 42829431 | 5343969665771 | 42829431 | | my-project4 | dataset1 | table6 | 8771021 | 5119004622353 | 8771021 | +----------------------+------------+-------------------------------+------------+----------------+--------------+