התצוגה WRITE_API_TIMELINE_BY_FOLDER

התצוגה INFORMATION_SCHEMA.WRITE_API_TIMELINE_BY_FOLDER מכילה נתונים סטטיסטיים מצטברים של הטמעת נתונים באמצעות BigQuery Storage Write API, לפי דקה, עבור תיקיית האב של הפרויקט הנוכחי, כולל תיקיות המשנה שלו.

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

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

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

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

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

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

סכימה

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

לתצוגה INFORMATION_SCHEMA.WRITE_API_TIMELINE_BY_FOLDER יש את הסכימה הבאה:
שם העמודה סוג נתונים ערך
start_timestamp TIMESTAMP (עמודת חלוקה למחיצות) חותמת הזמן של ההתחלה של מרווח הזמן של דקה אחת לסטטיסטיקה המצטברת.
folder_numbers REPEATED INTEGER מזהי המספרים של התיקיות שמכילות את הפרויקט, החל מהתיקייה שמכילה ישירות את הפרויקט, ואחריה התיקייה שמכילה את תיקיית הבן וכן הלאה. לדוגמה, אם folder_numbers הוא [1, 2, 3], אז התיקייה 1 מכילה מיד את הפרויקט, התיקייה 2 מכילה את 1 והתיקייה 3 מכילה את 2. העמודה הזו מאוכלסת רק ב-WRITE_API_TIMELINE_BY_FOLDER.
project_id STRING (Clustering column) מזהה הפרויקט.
project_number INTEGER מספר הפרויקט.
dataset_id STRING (עמודת אשכולות) מזהה מערך הנתונים.
table_id STRING (Clustering column) מזהה הטבלה.
stream_type STRING סוג הזרם שמשמש להטמעת הנתונים באמצעות BigQuery Storage Write API. הערך צריך להיות אחד מהערכים הבאים: DEFAULT,‏ COMMITTED,‏ BUFFERED או PENDING.
error_code STRING קוד השגיאה שהוחזר לבקשות שצוינו בשורה הזו. ‫OK לבקשות מוצלחות.
total_requests INTEGER המספר הכולל של הבקשות במרווח של דקה.
total_rows INTEGER המספר הכולל של שורות מכל הבקשות במרווח של דקה אחת.
total_input_bytes INTEGER המספר הכולל של בייטים מכל השורות במרווח של דקה אחת.

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

שמירת נתונים

בתצוגה הזו מופיעה היסטוריית ההטמעה של BigQuery Storage Write API מ-180 הימים האחרונים.

היקף ותחביר

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

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

דוגמה

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

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

דוגמאות

דוגמה 1: כשלים בהטמעה של BigQuery Storage Write API מהזמן האחרון

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

SELECT
  start_timestamp,
  stream_type,
  error_code,
  SUM(total_requests) AS num_failed_requests
FROM
  `region-us`.INFORMATION_SCHEMA.WRITE_API_TIMELINE_BY_FOLDER
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;
INFORMATION_SCHEMA

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

+---------------------+-------------+------------------+---------------------+
|   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_BY_FOLDER
GROUP BY
  start_timestamp
ORDER BY
  start_timestamp DESC;
INFORMATION_SCHEMA

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

+---------------------+----------------+------------+-------------------+------------+--------------+-------------+
|   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 עבור 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_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 |
+----------------------+------------+-------------------------------+------------+----------------+--------------+