Ansicht WRITE_API_TIMELINE_BY_ORGANIZATION
Die Ansicht INFORMATION_SCHEMA.STREAMING_TIMELINE_BY_ORGANIZATION
enthält pro Minute aggregierte Streamingstatistiken für die gesamte Organisation, die dem aktuellen Projekt zugeordnet ist.
Sie können die INFORMATION_SCHEMA
Write API-Ansichten abfragen, um Verlaufsdaten und Echtzeitinformationen über die Datenaufnahme in BigQuery abzurufen, die die BigQuery Storage Write API verwendet. Weitere Informationen finden Sie unter BigQuery Storage Write API.
Erforderliche Berechtigung
Zum Abfragen der INFORMATION_SCHEMA.WRITE_API_TIMELINE_BY_ORGANIZATION
-Ansicht benötigen Sie die IAM-Berechtigung (Identity and Access Management) bigquery.tables.list
für die Organisation.
Jede der folgenden vordefinierten IAM-Rollen enthält die erforderliche Berechtigung:
roles/bigquery.admin
roles/bigquery.user
roles/bigquery.dataViewer
roles/bigquery.dataEditor
roles/bigquery.dataOwner
roles/bigquery.metadataViewer
roles/bigquery.resourceAdmin
Weitere Informationen zu BigQuery-Berechtigungen finden Sie unter Zugriffssteuerung mit IAM.
Schema
Wenn Sie die Ansichten der BigQuery Storage Write API INFORMATION_SCHEMA
abfragen, enthalten die Abfrageergebnisse Verlaufsdaten und Echtzeitinformationen zur Datenaufnahme in BigQuery mithilfe der BigQuery Storage Write API. Jede Zeile in den folgenden Ansichten stellt Statistiken für die Aufnahme in einer bestimmten Tabelle dar, die über ein 1-Minuten-Intervall ab start_timestamp
aggregiert werden. Die Statistiken sind nach Streamtyp und Fehlercode gruppiert. Daher gibt es eine Zeile für jeden Streamtyp und jeden erkannten Fehlercode während des 1-Minuten-Intervalls für jede Zeitstempel- und Tabellenkombination. Bei erfolgreichen Anfragen ist der Fehlercode auf OK
gesetzt. Wenn während eines bestimmten Zeitraums keine Daten in eine Tabelle aufgenommen wurden, sind für die entsprechenden Zeitstempel dieser Tabelle keine Zeilen vorhanden.
Die INFORMATION_SCHEMA.WRITE_API_TIMELINE_BY_*
-Ansichten haben das folgende Schema:
Spaltenname | Datentyp | Wert |
---|---|---|
start_timestamp |
TIMESTAMP |
(Partitionsspalten) Startzeitstempel des 1-Minuten-Intervalls für die aggregierten Statistiken. |
project_id |
STRING |
(Clustering-Spalte) ID des Projekts |
project_number |
INTEGER |
Nummer des Projekts. |
dataset_id |
STRING |
(Clustering-Spalte) ID des Datasets. |
table_id |
STRING |
(Clustering-Spalte) ID der Tabelle. |
stream_type |
STRING |
Der Streamtyp, der für die Datenaufnahme mit der BigQuery Storage Write API verwendet wird. Mögliche Werte sind „DEFAULT“, „COMMITTED“, „BUFFERED“ oder „PENDING“. |
error_code |
STRING |
Für die in dieser Zeile angegebenen Anfragen wird ein Fehlercode zurückgegeben. "OK" für erfolgreiche Anfragen. |
total_requests |
INTEGER |
Gesamtzahl der Anfragen im 1-Minuten-Intervall. |
total_rows |
INTEGER |
Gesamtzahl der Zeilen aus allen Anfragen innerhalb des 1-Minuten-Intervalls. |
total_input_bytes |
INTEGER |
Gesamtzahl der Byte aus allen Zeilen im 1-Minuten-Intervall. |
Datenaufbewahrung
Diese Ansicht enthält den Streamingverlauf der letzten 180 Tage.
Bereich und Syntax
Für Abfragen dieser Ansicht muss ein Regions-Qualifier verwendet werden. Wenn Sie keinen regionalen Qualifier angeben, werden Metadaten aus allen Regionen abgerufen. In der folgenden Tabelle wird der Regionsbereich für diese Ansicht erläutert:
Ansichtsname | Ressourcenbereich | Regionsbereich |
---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.WRITE_API_TIMELINE_BY_ORGANIZATION |
Organisation, die das angegebene Projekt enthält | REGION |
- Optional:
PROJECT_ID
: die ID Ihres Google Cloud-Projekts. Wenn keine Angabe erfolgt, wird das Standardprojekt verwendet. REGION
: ist ein beliebiger Dataset-Regionsname. Beispiel:region-us
Beispiel
- Verwenden Sie
`region-us`.INFORMATION_SCHEMA.WRITE_API_TIMELINE_BY_ORGANIZATION
, um Daten in der Multiregion US abzufragen. - Verwenden Sie
`region-eu`.INFORMATION_SCHEMA.WRITE_API_TIMELINE_BY_ORGANIZATION
, um Daten in der Multiregion EU abzufragen. - Verwenden Sie
`region-asia-northeast1`.INFORMATION_SCHEMA.WRITE_API_TIMELINE_BY_ORGANIZATION
, um Daten in der Region asia-northeast1 abzufragen.
Eine Liste der verfügbaren Regionen finden Sie unter Dataset-Standorte.
Beispiele
Beispiel 1: Aktuelle Aufnahmefehler der BigQuery Storage Write API
Im folgenden Beispiel wird die Aufschlüsselung pro Minute der Gesamtzahl fehlgeschlagener Anfragen für alle Tabellen im Projekt in den letzten 30 Minuten nach Fehlercode berechnet:
SELECT start_timestamp, stream_type, error_code, SUM(total_requests) AS num_failed_requests FROM `region-us`.INFORMATION_SCHEMA.WRITE_API_TIMELINE_BY_ORGANIZATION 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;
Das Ergebnis sieht etwa so aus:
+---------------------+-------------+------------------+---------------------+ | 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 | +---------------------+-------------+------------------+---------------------+
Beispiel 2: Aufschlüsselung pro Minuten für alle Anfragen mit Fehlercodes
Im folgenden Beispiel wird eine Aufschlüsselung pro Minute nach erfolgreichen und fehlgeschlagenen Anhängeanfragen in der Organisation des Projekts berechnet, unterteilt in Fehlercodekategorien. Mit dieser Abfrage kann ein Dashboard ausgefüllt werden.
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;
Das Ergebnis sieht etwa so aus:
+---------------------+----------------+------------+-------------------+-------------+------------+--------------+-------------+ | 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 | +---------------------+----------------+------------+-------------------+-------------+------------+--------------+-------------+
Beispiel 3: Tabellen mit dem meisten eingehenden Traffic
Im folgenden Beispiel werden die Aufnahmestatistiken der BigQuery Storage Write API für die zehn Tabellen mit dem höchsten eingehenden Traffic innerhalb der Organisation des Projekts zurückgegeben:
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_ORGANIZATION GROUP BY project_id, dataset_id, table_id ORDER BY num_bytes DESC LIMIT 10;
Das Ergebnis sieht etwa so aus:
+----------------------+------------+-------------------------------+------------+----------------+--------------+ | 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 | +----------------------+------------+-------------------------------+------------+----------------+--------------+