Visualizzazione STREAMING_TIMELINE_BY_ORGANIZATION
La visualizzazione INFORMATION_SCHEMA.STREAMING_TIMELINE_BY_ORGANIZATION
contiene statistiche di streaming aggregate al minuto per l'intera organizzazione associata al progetto corrente.
Puoi eseguire query sulle visualizzazioni di streaming INFORMATION_SCHEMA
per recuperare informazioni storiche e in tempo reale sui dati di streaming in BigQuery che utilizzano il metodo legacy tabledata.insertAll
e non l'API BigQuery Storage Write. Per ulteriori informazioni sull'inserimento di flussi di dati in BigQuery, consulta Inserimento di flussi di dati in BigQuery.
Autorizzazione obbligatoria
Per eseguire query sulla visualizzazione INFORMATION_SCHEMA.STREAMING_TIMELINE_BY_ORGANIZATION
, devi disporre
dell'autorizzazione Identity and Access Management (IAM) bigquery.tables.list
per l'organizzazione.
Ciascuno dei seguenti ruoli IAM predefiniti include l'autorizzazione richiesta:
roles/bigquery.admin
roles/bigquery.user
roles/bigquery.dataViewer
roles/bigquery.dataEditor
roles/bigquery.dataOwner
roles/bigquery.metadataViewer
roles/bigquery.resourceAdmin
Per saperne di più sulle autorizzazioni BigQuery, consulta Controllo dell'accesso con IAM.
Schema
Quando esegui una query sulle visualizzazioni di streamingINFORMATION_SCHEMA
, i risultati della query
contengono informazioni storiche e in tempo reale sui dati di streaming in
BigQuery. Ogni riga delle seguenti visualizzazioni rappresenta le statistiche
per lo streaming in una tabella specifica, aggregate in un intervallo di un minuto
a partire dalle ore start_timestamp
. Le statistiche sono raggruppate per codice di errore, quindi
ci sarà una riga per ogni codice di errore riscontrato durante l'intervallo di un minuto
per ogni combinazione di timestamp e tabella. Le richieste riuscite hanno il codice di errore impostato su NULL
. Se non sono stati trasmessi dati in streaming in una tabella durante un determinato periodo di tempo, non sono presenti righe per i timestamp corrispondenti per quella tabella.
La visualizzazione INFORMATION_SCHEMA.STREAMING_TIMELINE_BY_ORGANIZATION
ha lo schema seguente:
Nome colonna | Tipo di dati | Valore |
---|---|---|
start_timestamp |
TIMESTAMP |
(Colonna di partizionamento) Timestamp di inizio dell'intervallo di 1 minuto per le statistiche aggregate. |
project_id |
STRING |
(Colonna di clustering) ID del progetto. |
project_number |
INTEGER |
Numero del progetto. |
dataset_id |
STRING |
(Colonna di clustering) ID del set di dati. |
table_id |
STRING |
(Colonna di clustering) ID della tabella. |
error_code |
STRING |
Codice di errore restituito per le richieste specificate in questa riga. NULL per le richieste riuscite. |
total_requests |
INTEGER |
Numero totale di richieste nell'intervallo di 1 minuto. |
total_rows |
INTEGER |
Numero totale di righe di tutte le richieste nell'intervallo di 1 minuto. |
total_input_bytes |
INTEGER |
Numero totale di byte di tutte le righe nell'intervallo di 1 minuto. |
Conservazione dei dati
Questa visualizzazione contiene la cronologia dello streaming degli ultimi 180 giorni.
Ambito e sintassi
Le query su questa visualizzazione devono includere un qualificatore di regione. Se non specifichi un qualificatore regionale, i metadati vengono recuperati da tutte le regioni. La tabella seguente spiega l'ambito della regione per questa visualizzazione:
Nome vista | Ambito risorsa | Ambito regione |
---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.STREAMING_TIMELINE_BY_ORGANIZATION |
Organizzazione che contiene il progetto specificato | REGION |
-
(Facoltativo)
PROJECT_ID
: l'ID del tuo Google Cloud progetto. Se non specificato, viene utilizzato il progetto predefinito. -
REGION
: qualsiasi nome della regione del set di dati. Ad esempio:`region-us`
.
Esempio
- Per eseguire query sui dati nella multiregione US, utilizza
`region-us`.INFORMATION_SCHEMA.STREAMING_TIMELINE_BY_ORGANIZATION
- Per eseguire query sui dati nella multiregione UE, utilizza
`region-eu`.INFORMATION_SCHEMA.STREAMING_TIMELINE_BY_ORGANIZATION
- Per eseguire query sui dati nella regione asia-northeast1, utilizza
`region-asia-northeast1`.INFORMATION_SCHEMA.STREAMING_TIMELINE_BY_ORGANIZATION
Per un elenco delle regioni disponibili, consulta Posizioni dei set di dati.
Esempi
Esempio 1: errori di streaming recenti
Il seguente esempio calcola la suddivisione al minuto delle richieste non riuscite totali per tutte le tabelle dell'organizzazione del progetto negli ultimi 30 minuti, suddivise per codice di errore:
SELECT start_timestamp, error_code, SUM(total_requests) AS num_failed_requests FROM `region-us`.INFORMATION_SCHEMA.STREAMING_TIMELINE_BY_ORGANIZATION 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;
Il risultato è simile al seguente:
+---------------------+------------------+---------------------+ | 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 | +---------------------+------------------+---------------------+
Esempio 2: suddivisione al minuto di tutte le richieste con codici di errore
L'esempio seguente calcola una suddivisione al minuto delle richieste di streaming riuscite e non riuscite nell'organizzazione del progetto, suddivise in categorie di codici di errore. Questa query potrebbe essere utilizzata per compilare una dashboard.
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_ORGANIZATION GROUP BY start_timestamp ORDER BY start_timestamp DESC;
Il risultato è simile al seguente:
+---------------------+----------------+------------+-------------------+-------------+------------+--------------+-------------+ | 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 | +---------------------+----------------+------------+-------------------+-------------+------------+--------------+-------------+
Esempio 3: tabelle con il maggior traffico in entrata
L'esempio seguente restituisce le statistiche di streaming per le 10 tabelle nell'organizzazione del progetto con il maggior traffico in entrata:
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_ORGANIZATION GROUP BY project_id, dataset_id, table_id ORDER BY num_bytes DESC LIMIT 10;
Il risultato è simile al seguente:
+----------------------+------------+-------------------------------+------------+----------------+--------------+ | 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 | +----------------------+------------+-------------------------------+------------+----------------+--------------+