Visualização WRITE_API_TIMELINE_BY_FOLDER

A visualização INFORMATION_SCHEMA.WRITE_API_TIMELINE_BY_FOLDER contém estatísticas agregadas por minuto de ingestão da API BigQuery Storage Write (gRPC) para a pasta mãe do projeto atual, incluindo as subpastas.

Consulte as visualizações da API Write INFORMATION_SCHEMA para recuperar informações históricas e em tempo real sobre a ingestão de dados no BigQuery que usa a API BigQuery Storage Write (gRPC). Consulte API BigQuery Storage Write (gRPC) para mais informações.

Permissão necessária

Para consultar a visualização INFORMATION_SCHEMA.WRITE_API_TIMELINE_BY_FOLDER, você precisa da permissão bigquery.tables.list Identity and Access Management (IAM) para a pasta pai do projeto.

Cada um dos seguintes papéis predefinidos do IAM inclui as permissões anteriores:

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

Para mais informações sobre as permissões do BigQuery, consulte Controle de acesso com o IAM.

Esquema

Quando você consulta as visualizações da API BigQuery Storage Write (gRPC) INFORMATION_SCHEMA, os resultados da consulta contêm informações históricas e em tempo real sobre a ingestão de dados no BigQuery usando a API BigQuery Storage Write (gRPC). Cada linha nas visualizações a seguir representa estatísticas para ingestão em uma tabela específica, agregadas em um intervalo de um minuto a partir de start_timestamp. As estatísticas são agrupadas por tipo de stream e código de erro. Portanto, haverá uma linha para cada tipo de stream e cada um encontrou o código do erro durante o intervalo de um minuto para cada combinação de carimbo de data/hora e tabela. As solicitações bem-sucedidas têm o código do erro definido como OK. Se nenhum dado foi ingerido em uma tabela durante um determinado período, nenhuma linha estará presente para os carimbos de data/hora correspondentes dessa tabela.

A visualização INFORMATION_SCHEMA.WRITE_API_TIMELINE_BY_FOLDER tem o seguinte esquema:
Nome da coluna Tipo de dados Valor
start_timestamp TIMESTAMP (Coluna de particionamento) Carimbo de data/hora de início do intervalo de 1 minuto das estatísticas agregadas.
folder_numbers REPEATED INTEGER IDs de número das pastas que contêm o projeto, começando com a pasta que contém o projeto imediatamente contém o projeto, seguido pela pasta que contém a pasta filho e assim por diante. Por exemplo, se folder_numbers for [1, 2, 3], a pasta 1 conterá imediatamente o projeto, a pasta 2 conterá 1, e a pasta 3 conterá 2. Essa coluna é preenchida apenas em WRITE_API_TIMELINE_BY_FOLDER.
project_id STRING (Coluna de clustering) ID do projeto.
project_number INTEGER Número do projeto.
dataset_id STRING (Coluna de clustering) ID do conjunto de dados.
table_id STRING (Coluna de clustering) ID da tabela.
stream_type STRING O tipo de stream usado para a ingestão de dados com a API BigQuery Storage Write (gRPC). Deve ser "DEFAULT", "COMMITTED", "BUFFERED" ou "PENDING".
error_code STRING Código de erro retornado para as solicitações especificadas por essa linha. "OK" para solicitações bem-sucedidas.
total_requests INTEGER Número total de solicitações dentro do intervalo de 1 minuto.
total_rows INTEGER Número total de linhas de todas as solicitações dentro do intervalo de 1 minuto.
total_input_bytes INTEGER Número total de bytes de todas as linhas dentro do intervalo de um minuto.

Para estabilidade, recomendamos que você liste explicitamente as colunas nas consultas do esquema de informações em vez de usar um curinga (SELECT *). A listagem explícita de colunas impede que as consultas sejam interrompidas se o esquema subjacente mudar.

Retenção de dados

Esta visualização contém o histórico de processamento dos últimos 180 dias da API BigQuery Storage Write (gRPC).

Escopo e sintaxe

As consultas nessa visualização precisam incluir um qualificador de região. Se você não especificar um qualificador regional, os metadados serão recuperados de todas as regiões. A tabela a seguir explica o escopo da região dessa visualização:

Nome da visualização Escopo do recurso Escopo da região
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.WRITE_API_TIMELINE_BY_FOLDER Pasta que contém o projeto especificado REGION
Substitua:
  • Opcional: PROJECT_ID: o ID do seu Google Cloud projeto. Se não for especificado, o projeto padrão será usado.
  • REGION: qualquer nome da região do conjunto de dados. Por exemplo, `region-us`.

Exemplo

  • Para consultar dados na multirregião EUA, use region-us.INFORMATION_SCHEMA.WRITE_API_TIMELINE_BY_FOLDER.
  • Para consultar dados na multirregião UE, utilize region-eu.INFORMATION_SCHEMA.WRITE_API_TIMELINE_BY_FOLDER.
  • Para consultar dados na região asia-northeast1, use region-asia-northeast1.INFORMATION_SCHEMA.WRITE_API_TIMELINE_BY_FOLDER.

Para obter uma lista de regiões disponíveis, consulte locais do conjunto de dados.

Exemplos

Exemplo 1: falhas recentes na ingestão da API BigQuery Storage Write (gRPC)

O exemplo a seguir calcula o detalhamento por minuto do total de solicitações com falha de todas as tabelas na pasta do projeto nos últimos 30 minutos, dividido pelo tipo de transmissão e o código de erro:

SELECT
  start_timestamp,
  stream_type,
  error_code,
  SUM(total_requests) AS num_failed_requests
FROM
  `region-us`.INFORMATION_SCHEMA.WRITE_API_TIMELINE_BY_FOLDER
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;

O resultado será semelhante ao seguinte:

+---------------------+-------------+------------------+---------------------+
|   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 |
+---------------------+-------------+------------------+---------------------+
Exemplo 2: detalhamento por minuto de todas as solicitações com códigos de erro

O exemplo a seguir calcula o detalhamento por minuto de solicitações de adicionar ao final bem-sucedidas e com falha na pasta do projeto, divididas em categorias de código de erro. Essa consulta pode ser usada para preencher um painel.

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;

O resultado será semelhante ao seguinte:

+---------------------+----------------+------------+-------------------+------------+--------------+-------------+
|   start_timestamp   | total_requests | total_rows | total_input_bytes | user_error | server_error | total_error |
+---------------------+----------------+------------+-------------------+------------+--------------+-------------+
| 2020-04-15 22:00:00 |         441854 |     441854 |       23784853118 |          0 |           17 |          17 |
| 2020-04-15 21:59:00 |         355627 |     355627 |       26101982742 |          8 |            0 |          13 |
| 2020-04-15 21:58:00 |         354603 |     354603 |       26160565341 |          0 |            0 |           0 |
| 2020-04-15 21:57:00 |         298823 |     298823 |       23877821442 |          2 |            0 |           2 |
+---------------------+----------------+------------+-------------------+------------+--------------+-------------+
Exemplo 3: tabelas com o maior tráfego de entrada

O exemplo a seguir retorna as estatísticas de processamento da API BigQuery Storage Write (gRPC) para as 10 tabelas na pasta do projeto com mais tráfego de entrada:

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_FOLDER
GROUP BY
  project_id,
  dataset_id,
  table_id
ORDER BY
  num_bytes DESC
LIMIT 10;

O resultado será semelhante ao seguinte:

+----------------------+------------+-------------------------------+------------+----------------+--------------+
|      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 |
+----------------------+------------+-------------------------------+------------+----------------+--------------+