WRITE_API_TIMELINE 檢視畫面
INFORMATION_SCHEMA.WRITE_API_TIMELINE
檢視畫面會顯示目前專案每分鐘的 BigQuery Storage Write API 攝入統計資料。
您可以查詢 INFORMATION_SCHEMA
Write API 檢視畫面,擷取使用 BigQuery Storage Write API 將資料擷取至 BigQuery 的歷來和即時資訊。詳情請參閱 BigQuery Storage Write API。
必要權限
如要查詢 INFORMATION_SCHEMA.WRITE_API_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 權限,請參閱「使用身分與存取權管理功能控管存取權」。
結構定義
查詢 INFORMATION_SCHEMA
BigQuery Storage Write API 檢視畫面時,查詢結果會包含使用 BigQuery Storage Write API 將資料擷取至 BigQuery 的歷史資料和即時資訊。下列檢視畫面中的每個資料列都代表匯入特定資料表的統計資料,這些資料會以 start_timestamp
為起點,以一分鐘為間隔進行匯總。統計資料會依串流類型和錯誤代碼分組,因此每個時間戳記和資料表組合中,每個串流類型和遇到的錯誤代碼都會有一列資料。成功的要求會將錯誤代碼設為 OK
。如果在特定時間範圍內,沒有任何資料擷取至資料表,則該資料表的對應時間戳記就不會顯示任何資料列。
INFORMATION_SCHEMA.WRITE_API_TIMELINE_BY_*
檢視畫面具有下列結構定義:
資料欄名稱 | 資料類型 | 值 |
---|---|---|
start_timestamp |
TIMESTAMP |
(分區欄) 匯總統計資料的 1 分鐘間隔開始時間戳記。 |
project_id |
STRING |
(叢集欄) 專案 ID。 |
project_number |
INTEGER |
專案編號。 |
dataset_id |
STRING |
(叢集資料欄) 資料集 ID。 |
table_id |
STRING |
表格 ID(叢集欄)。 |
stream_type |
STRING |
使用 BigQuery Storage Write API 擷取資料時使用的串流類型。這個值應為「DEFAULT」、「COMMITTED」、「BUFFERED」或「PENDING」其中之一。 |
error_code |
STRING |
此列指定要求傳回的錯誤代碼。成功要求的回應為「OK」。 |
total_requests |
INTEGER |
1 分鐘間隔內的要求總數。 |
total_rows |
INTEGER |
1 分鐘內所有要求的總列數。 |
total_input_bytes |
INTEGER |
1 分鐘間隔內所有資料列的位元組總數。 |
資料保留
這個檢視畫面包含過去 180 天內的 BigQuery Storage Write API 擷取記錄。
範圍和語法
對這個檢視表執行的查詢必須包含區域限定詞。如果未指定區域限定詞,系統會從所有區域擷取中繼資料。下表說明此檢視區域範圍:
檢視表名稱 | 資源範圍 | 區域範圍 |
---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.WRITE_API_TIMELINE[_BY_PROJECT] |
專案層級 | REGION |
-
選用:
PROJECT_ID
: Google Cloud 專案的 ID。如果未指定,系統會使用預設專案。 -
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 擷取失敗
以下範例會計算專案中所有資料表在過去 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:有最多入站流量的資料表
以下範例會針對有最多入站流量的 10 個資料表,傳回 BigQuery Storage Write API 攝入統計資料:
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 擷取資料表的錯誤比率
以下範例會計算特定資料表的每日錯誤細目,並按錯誤代碼區分:
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 | +---------------------+-------------+------------+----------+----------------+----------+-----------+--------------+