Visualizzazione STREAMING_TIMELINE_BY_FOLDER

La visualizzazione INFORMATION_SCHEMA.STREAMING_TIMELINE_BY_FOLDER contiene al minuto statistiche aggregate sui flussi di dati per la cartella padre del progetto corrente incluse le relative sottocartelle.

Puoi eseguire query sulle viste flussi di INFORMATION_SCHEMA per recuperare informazioni storiche e in tempo reale sui flussi di dati in BigQuery che utilizza il metodo tabledata.insertAll legacy e non l'API BigQuery Storage Scrivi. Per ulteriori informazioni sui flussi di dati in BigQuery, vedi Flusso di dati in BigQuery.

Autorizzazione obbligatoria

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

Ciascuno dei seguenti ruoli IAM predefiniti include autorizzazione:

  • 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 BigQuery, consulta Controllo dell'accesso con IAM.

Schema

Quando esegui query sulle viste di streaming INFORMATION_SCHEMA, i risultati della query contengono informazioni storiche e in tempo reale sui dati in streaming in BigQuery. Ogni riga nelle visualizzazioni seguenti rappresenta le statistiche per l'inserimento di flussi in una tabella specifica, aggregati in un intervallo di un minuto a partire da start_timestamp. Le statistiche sono raggruppate per codice di errore, quindi ci sarà una riga per ogni codice di errore rilevato durante l'intervallo di un minuto per ogni combinazione di timestamp e tabella. Le richieste andate a buon fine presentano l'errore codice impostato su NULL. Se nessun dato è stato trasmesso in flusso in una tabella durante un determinato periodo di tempo non ci sono righe per i timestamp corrispondenti tabella.

Le visualizzazioni INFORMATION_SCHEMA.STREAMING_TIMELINE_BY_* hanno il seguente schema:

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 ID (colonna clustering) del progetto.
project_number INTEGER Numero del progetto.
dataset_id STRING ID (colonna clustering) del set di dati.
table_id STRING ID (colonna clustering) della tabella.
error_code STRING Codice di errore restituito per le richieste specificate da questa riga. NULL per 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 di streaming degli ultimi 180 giorni.

Ambito e sintassi

Le query su questa visualizzazione devono includere un qualificatore 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_FOLDER Cartella che contiene il progetto specificato REGION
Sostituisci quanto segue:

  • (Facoltativo) PROJECT_ID: l'ID del tuo progetto Google Cloud. Se non viene specificato, viene utilizzato il progetto predefinito.

Esempio

  • Per eseguire query sui dati nell'area multiregionale degli Stati Uniti, utilizza region-us.INFORMATION_SCHEMA.STREAMING_TIMELINE_BY_FOLDER
  • Per eseguire query sui dati nella regione multipla dell'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, vedi Località dei set di dati.

Esempi

Esempio 1: errori recenti di flussi di dati

L'esempio seguente calcola l'analisi al minuto del totale degli errori richieste 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 per 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 nella cartella 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_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 traffico più elevato

L'esempio seguente restituisce le statistiche di streaming per le 10 tabelle della directory 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 |
+----------------------+------------+-------------------------------+------------+----------------+--------------+