visualizzazione WRITE_API_TIMELINE_BY_organization

La vista INFORMATION_SCHEMA.STREAMING_TIMELINE_BY_ORGANIZATION contiene statistiche sui flussi di dati aggregate al minuto per l'intera organizzazione associata al progetto attuale.

Puoi eseguire query sulle viste INFORMATION_SCHEMA dell'API Write per recuperare informazioni storiche e in tempo reale sull'importazione dati in BigQuery che utilizza l'API BigQuery Storage Write. Per saperne di più, consulta API BigQuery Storage Write.

Autorizzazione obbligatoria

Per eseguire una query sulla vista INFORMATION_SCHEMA.WRITE_API_TIMELINE_BY_ORGANIZATION, devi disporre dell'autorizzazione Identity and Access Management (IAM) di 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 maggiori informazioni sulle autorizzazioni BigQuery, consulta Controllo dell'accesso con IAM.

Schema

Quando esegui una query sulle viste dell'API BigQuery Storage Write INFORMATION_SCHEMA, i risultati delle query contengono informazioni storiche e in tempo reale sull'importazione dati in BigQuery mediante l'API BigQuery Storage Write. Ogni riga nelle seguenti visualizzazioni rappresenta le statistiche per l'importazione in una tabella specifica, aggregate in un intervallo di un minuto a partire da start_timestamp. Le statistiche sono raggruppate per tipo di flusso e codice di errore, quindi sarà presente una riga per ogni tipo di flusso e ogni codice di errore riscontrato durante l'intervallo di un minuto per ogni combinazione di timestamp e tabella. Per le richieste andate a buon fine, il codice di errore è impostato su OK. Se non sono stati importati dati in una tabella durante un determinato periodo di tempo, non sono presenti righe per i timestamp corrispondenti per quella tabella.

Le viste INFORMATION_SCHEMA.WRITE_API_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 (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.
stream_type STRING Il tipo di flusso utilizzato per l'importazione dati con l'API BigQuery Storage Write. Dovrebbe essere uno dei seguenti stati: "DEFAULT", "COMMITTED", "BUFFERED" o "PENDING".
error_code STRING Codice di errore restituito per le richieste specificate da questa riga. "OK" per le richieste andate a buon fine.
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 da 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 in questa vista 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.WRITE_API_TIMELINE_BY_ORGANIZATION Organizzazione contenente il progetto specificato REGION
Sostituisci quanto segue:

  • (Facoltativo) PROJECT_ID: l'ID del tuo progetto Google Cloud. 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 località multiregionale degli Stati Uniti, utilizza `region-us`.INFORMATION_SCHEMA.WRITE_API_TIMELINE_BY_ORGANIZATION
  • Per eseguire query sui dati nella località multiregionale dell'UE, utilizza `region-eu`.INFORMATION_SCHEMA.WRITE_API_TIMELINE_BY_ORGANIZATION
  • Per eseguire query sui dati nella regione asia-northeast1, utilizza `region-asia-northeast1`.INFORMATION_SCHEMA.WRITE_API_TIMELINE_BY_ORGANIZATION

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

Esempi

Esempio 1: errori recenti di importazione dell'API BigQuery Storage Write

L'esempio seguente calcola la suddivisione al minuto del totale delle richieste non riuscite per tutte le tabelle nell'organizzazione del progetto negli ultimi 30 minuti, suddivise per codice di errore:

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;

Il risultato è simile al seguente:

+---------------------+-------------+------------------+---------------------+
|   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 |
+---------------------+-------------+------------------+---------------------+
Esempio 2: suddivisione al minuto per tutte le richieste con codici di errore

L'esempio seguente calcola un'analisi al minuto delle richieste di aggiunta riuscite e non riuscite nell'organizzazione del progetto, suddivise in categorie di codici di errore. Questa query potrebbe essere utilizzata per completare 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 (
        '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;

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 importazione dell'API BigQuery Storage Write per le 10 tabelle dell'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.WRITE_API_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 |
+----------------------+------------+-------------------------------+------------+----------------+--------------+