Visualizzazione STREAMING_TIMELINE_BY_FOLDER

La visualizzazione INFORMATION_SCHEMA.STREAMING_TIMELINE_BY_FOLDER contiene statistiche di streaming aggregate al minuto per la cartella principale del progetto attuale, incluse le relative sottocartelle.

Puoi eseguire query sulle visualizzazioni di streaming INFORMATION_SCHEMA per recuperare informazioni storiche e in tempo reale sullo streaming di dati in BigQuery che utilizza l'API BigQuery Storage Write (REST). Per ulteriori informazioni sullo streaming di dati in BigQuery, consulta Streaming di dati in BigQuery.

Autorizzazione obbligatoria

Per eseguire query sulla visualizzazione INFORMATION_SCHEMA.STREAMING_TIMELINE_BY_FOLDER, devi disporre dell'autorizzazione IAM (Identity and Access Management) bigquery.tables.list per la cartella principale del progetto.

Ognuno dei seguenti ruoli IAM predefiniti include l'autorizzazione precedente:

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

Per ulteriori informazioni sulle autorizzazioni di BigQuery, consulta Controllo dell'accesso con IAM.

Schema

Quando esegui query sulle visualizzazioni di streaming INFORMATION_SCHEMA, i risultati della query contengono informazioni storiche e in tempo reale sullo streaming di dati 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 da start_timestamp. Le statistiche sono raggruppate per codice di errore, quindi sarà presente una riga per ogni codice di errore riscontrato durante l'intervallo di un minuto per ogni combinazione di timestamp e tabella. Per le richieste riuscite, 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_FOLDER 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.
folder_numbers REPEATED INTEGER ID numerici delle cartelle che contengono il progetto, a partire dalla cartella che contiene immediatamente contiene il progetto, seguita dalla cartella che contiene la cartella secondaria e così via. Ad esempio, se folder_numbers è [1, 2, 3], la cartella 1 contiene immediatamente il progetto, la cartella 2 contiene 1 e la cartella 3 contiene 2. Questa colonna viene compilata solo popolata in STREAMING_TIMELINE_BY_FOLDER.
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.

Per garantire la stabilità, ti consigliamo di elencare esplicitamente le colonne nelle query dello schema informativo anziché utilizzare un carattere jolly (SELECT *). L'elenco esplicito delle colonne impedisce l'interruzione delle query se lo schema sottostante cambia.

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 visualizzazione Ambito risorsa Ambito regione
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.STREAMING_TIMELINE_BY_FOLDER Cartella che contiene il progetto specificato REGION
Sostituisci quanto segue:
  • (Facoltativo) PROJECT_ID: l'ID del tuo Google Cloud progetto. Se non specificato, viene utilizzato il progetto predefinito.
  • REGION: qualsiasi nome di regione del set di dati. Ad esempio, `region-us`.

Esempio

  • Per eseguire query sui dati nella multiregione Stati Uniti, utilizza region-us.INFORMATION_SCHEMA.STREAMING_TIMELINE_BY_FOLDER
  • Per eseguire query sui dati nella multiregione UE, utilizza region-eu.INFORMATION_SCHEMA.STREAMING_TIMELINE_BY_FOLDER
  • Per eseguire query sui dati nella regione asia-northeast1, utilizza region-asia-northeast1.INFORMATION_SCHEMA.STREAMING_TIMELINE_BY_FOLDER

Per un elenco delle regioni disponibili, consulta Località dei set di dati.

Esempi

Esempio 1: errori di streaming recenti

L'esempio seguente calcola la suddivisione al minuto del numero totale di richieste non riuscite per tutte le tabelle nella cartella 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_FOLDER
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 per tutte le richieste con codici di errore

L'esempio seguente calcola una suddivisione al minuto delle richieste di streaming riuscite e non riuscite nella cartella del progetto, suddivise in categorie di codici di errore. Questa query può essere utilizzata per popolare 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_FOLDER
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 nella cartella 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_FOLDER
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 |
+----------------------+------------+-------------------------------+------------+----------------+--------------+