התצוגה WRITE_API_TIMELINE
התצוגה INFORMATION_SCHEMA.WRITE_API_TIMELINE מכילה נתונים סטטיסטיים מצטברים של הטמעה (gRPC) של BigQuery Storage Write API לפי דקה עבור הפרויקט הנוכחי.
אתם יכולים להריץ שאילתות על INFORMATION_SCHEMA תצוגות של Write API
כדי לאחזר מידע היסטורי ומידע בזמן אמת על הטמעת נתונים ב-BigQuery באמצעות BigQuery Storage Write API (gRPC). מידע נוסף זמין במאמר BigQuery Storage Write API (gRPC).
ההרשאה הנדרשת
כדי לשלוח שאילתה לתצוגה INFORMATION_SCHEMA.WRITE_API_TIMELINE, צריך הרשאה לניהול זהויות והרשאות גישה (IAM) bigquery.tables.list בפרויקט.
כל אחד מהתפקידים הבאים שמוגדרים מראש ב-IAM כולל את ההרשאה הנדרשת:
roles/bigquery.userroles/bigquery.dataViewerroles/bigquery.dataEditorroles/bigquery.dataOwnerroles/bigquery.metadataViewerroles/bigquery.resourceAdminroles/bigquery.admin
מידע נוסף על הרשאות ב-BigQuery זמין במאמר בקרת גישה באמצעות IAM.
סכימה
כשמריצים שאילתות על התצוגות שלINFORMATION_SCHEMA BigQuery Storage Write API (gRPC), תוצאות השאילתה מכילות מידע היסטורי ומידע בזמן אמת על הטמעת נתונים ב-BigQuery באמצעות BigQuery Storage Write API (gRPC). כל שורה בתצוגות הבאות מייצגת נתונים סטטיסטיים של הטמעה בטבלה ספציפית, שנאספו במרווח של דקה אחת החל מ-start_timestamp. הנתונים הסטטיסטיים מקובצים לפי סוג הסטרימינג וקוד השגיאה, כך שתהיה שורה אחת לכל סוג סטרימינג ולכל קוד שגיאה שנתקל בו במהלך מרווח של דקה אחת לכל חותמת זמן ושילוב טבלה. אם הבקשה מצליחה, קוד השגיאה מוגדר ל-OK. אם לא בוצעה קליטה של נתונים לטבלה במהלך תקופה מסוימת, לא יוצגו שורות עבור חותמות הזמן התואמות של הטבלה הזו.
לתצוגה INFORMATION_SCHEMA.WRITE_API_TIMELINE יש את הסכימה הבאה:
| שם עמודה | סוג נתונים | ערך |
|---|---|---|
start_timestamp |
TIMESTAMP |
(עמודת חלוקה) חותמת הזמן של תחילת מרווח הזמן של דקה אחת לסטטיסטיקה המצטברת. |
project_id |
STRING |
(Clustering column) מזהה הפרויקט. |
project_number |
INTEGER |
מספר הפרויקט. |
dataset_id |
STRING |
(עמודת אשכולות) מזהה מערך הנתונים. |
table_id |
STRING |
(Clustering column) מזהה הטבלה. |
stream_type |
STRING |
סוג הסטרימינג שמשמש להטמעת הנתונים באמצעות BigQuery Storage Write API (gRPC). הערך אמור להיות אחד מהערכים הבאים: DEFAULT, COMMITTED, BUFFERED או PENDING. |
error_code |
STRING |
קוד השגיאה שהוחזר לבקשות שצוינו בשורה הזו. OK לבקשות מוצלחות. |
total_requests |
INTEGER |
המספר הכולל של הבקשות במרווח של דקה. |
total_rows |
INTEGER |
המספר הכולל של שורות מכל הבקשות במרווח של דקה אחת. |
total_input_bytes |
INTEGER |
המספר הכולל של בייטים מכל השורות במרווח של דקה אחת. |
כדי לשמור על יציבות, מומלץ לציין במפורש את העמודות בשאילתות של סכימת המידע, במקום להשתמש בתו כל כללי (SELECT *). ציון מפורש של העמודות מונע את השבירה של השאילתות אם הסכימה הבסיסית משתנה.
שמירת נתונים
התצוגה הזו מכילה את היסטוריית ההטמעה של BigQuery Storage Write API (gRPC) מ-180 הימים האחרונים.
היקף ותחביר
שאילתות שמופעלות על התצוגה הזו חייבות לכלול מסנן אזור. אם לא מציינים מסנן אזורי, המטא-נתונים מאוחזרים מכל האזורים. בטבלה הבאה מוסבר מהו היקף האזור בתצוגה הזו:
| שם התצוגה | היקף המשאבים | היקף האזור |
|---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.WRITE_API_TIMELINE[_BY_PROJECT] |
ברמת הפרויקט | REGION |
-
אופציונלי:
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . אם לא מציינים פרויקט, המערכת משתמשת בפרויקט שמוגדר כברירת מחדל. -
REGION: כל שם של אזור במערך נתונים. לדוגמה,`region-us`.
דוגמה
- כדי להריץ שאילתות על נתונים באזור רב-אזורי בארה"ב, משתמשים ב-
`region-us`.INFORMATION_SCHEMA.WRITE_API_TIMELINE_BY_PROJECT - כדי להריץ שאילתות על נתונים באזור הגיאוגרפי של האיחוד האירופי, צריך להשתמש ב-
`region-eu`.INFORMATION_SCHEMA.WRITE_API_TIMELINE_BY_PROJECT - כדי להריץ שאילתות על נתונים באזור asia-northeast1, משתמשים בכתובת
`region-asia-northeast1`.INFORMATION_SCHEMA.WRITE_API_TIMELINE_BY_PROJECT
רשימת האזורים הזמינים מופיעה במאמר מיקומי מערכי נתונים.
דוגמאות
דוגמה 1: כשלים בהטמעה של BigQuery Storage Write API (gRPC) מהזמן האחרון
בדוגמה הבאה מחושב הפירוט לפי דקה של המספר הכולל של הבקשות שנכשלו עבור כל הטבלאות בפרויקט ב-30 הדקות האחרונות, עם פיצול לפי סוג הזרם וקוד השגיאה:
SELECT start_timestamp, stream_type, error_code, SUM(total_requests) AS num_failed_requests FROM `region-us`.INFORMATION_SCHEMA.WRITE_API_TIMELINE WHERE error_code != 'OK' AND start_timestamp > TIMESTAMP_SUB(CURRENT_TIMESTAMP, INTERVAL 30 MINUTE) GROUP BY start_timestamp, stream_type, error_code ORDER BY start_timestamp DESC;
התוצאה אמורה להיראות כך:
+---------------------+-------------+------------------+---------------------+ | start_timestamp | stream_type | error_code | num_failed_requests | +---------------------+-------------+------------------+---------------------+ | 2023-02-24 00:25:00 | PENDING | NOT_FOUND | 5 | | 2023-02-24 00:25:00 | DEFAULT | INVALID_ARGUMENT | 1 | | 2023-02-24 00:25:00 | DEFAULT | DEADLINE_EXCEEDED| 4 | | 2023-02-24 00:24:00 | PENDING | INTERNAL | 3 | | 2023-02-24 00:24:00 | DEFAULT | INVALID_ARGUMENT | 1 | | 2023-02-24 00:24:00 | DEFAULT | DEADLINE_EXCEEDED| 2 | +---------------------+-------------+------------------+---------------------+
דוגמה 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 ( 'INVALID_ARGUMENT', 'NOT_FOUND', 'CANCELLED', 'RESOURCE_EXHAUSTED', 'ALREADY_EXISTS', 'PERMISSION_DENIED', 'UNAUTHENTICATED', 'FAILED_PRECONDITION', 'OUT_OF_RANGE'), total_requests, 0)) AS user_error, SUM( IF( error_code IN ( 'DEADLINE_EXCEEDED','ABORTED', 'INTERNAL', 'UNAVAILABLE', 'DATA_LOSS', 'UNKNOWN'), total_requests, 0)) AS server_error, SUM(IF(error_code = 'OK', 0, total_requests)) AS total_error, FROM `region-us`.INFORMATION_SCHEMA.WRITE_API_TIMELINE GROUP BY start_timestamp ORDER BY start_timestamp DESC;
התוצאה אמורה להיראות כך:
+---------------------+----------------+------------+-------------------+------------+--------------+-------------+ | start_timestamp | total_requests | total_rows | total_input_bytes | user_error | server_error | total_error | +---------------------+----------------+------------+-------------------+------------+--------------+-------------+ | 2020-04-15 22:00:00 | 441854 | 441854 | 23784853118 | 0 | 17 | 17 | | 2020-04-15 21:59:00 | 355627 | 355627 | 26101982742 | 8 | 0 | 13 | | 2020-04-15 21:58:00 | 354603 | 354603 | 26160565341 | 0 | 0 | 0 | | 2020-04-15 21:57:00 | 298823 | 298823 | 23877821442 | 2 | 0 | 2 | +---------------------+----------------+------------+-------------------+------------+--------------+-------------+
דוגמה 3: טבלאות עם התנועה הנכנסת הגבוהה ביותר
בדוגמה הבאה מוצגים נתונים סטטיסטיים של הטמעת נתונים ב-BigQuery Storage Write API (gRPC) עבור 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.WRITE_API_TIMELINE_BY_PROJECT GROUP BY project_id, dataset_id, table_id ORDER BY num_bytes DESC LIMIT 10;
התוצאה אמורה להיראות כך:
+----------------------+------------+-------------------------------+------------+----------------+--------------+ | 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: יחס השגיאות בהטמעה של BigQuery Storage Write API (gRPC) בטבלה
בדוגמה הבאה מחושב פירוט של השגיאות לפי יום בטבלה ספציפית, עם חלוקה לפי קוד שגיאה:
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.WRITE_API_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;
התוצאה אמורה להיראות כך:
+---------------------+-------------+------------+----------+----------------+----------+-----------+--------------+ | 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 | OK | 41 | 252893 | 41 | | 2020-04-20 00:00:00 | my_project | my_dataset | my_table | OK | 2798 | 10688286 | 2798 | | 2020-04-19 00:00:00 | my_project | my_dataset | my_table | OK | 2005 | 7979495 | 2005 | | 2020-04-18 00:00:00 | my_project | my_dataset | my_table | OK | 2054 | 7972378 | 2054 | | 2020-04-17 00:00:00 | my_project | my_dataset | my_table | OK | 2056 | 6978079 | 2056 | | 2020-04-17 00:00:00 | my_project | my_dataset | my_table | INTERNAL | 4 | 10825 | 4 | +---------------------+-------------+------------+----------+----------------+----------+-----------+--------------+