Visualização WRITE_API_TIMELINE_BY_ORGANIZATION

A visualização INFORMATION_SCHEMA.WRITE_API_TIMELINE_BY_ORGANIZATION contém estatísticas de streaming agregadas por minuto de toda a organização associada ao projeto atual.

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_ORGANIZATION, você precisa da permissão bigquery.tables.list do Identity and Access Management (IAM) para a organização.

Cada um dos seguintes papéis predefinidos do IAM inclui a permissão necessária:

  • 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_ORGANIZATION 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.
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 caractere curinga (SELECT *). A listagem explícita de colunas impede que as consultas sejam interrompidas se o esquema subjacente mudar.

Retenção de dados

Essa visualização contém o histórico de streaming dos últimos 180 dias.

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_ORGANIZATION Organização 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_ORGANIZATION.
  • Para consultar dados na multirregião UE, utilize `region-eu`.INFORMATION_SCHEMA.WRITE_API_TIMELINE_BY_ORGANIZATION.
  • Para consultar dados na região asia-northeast1, use `region-asia-northeast1`.INFORMATION_SCHEMA.WRITE_API_TIMELINE_BY_ORGANIZATION.

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 organização do projeto nos últimos 30 minutos, dividido por 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_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;

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 para adicionar ao final bem-sucedidas e com falha na organização 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 | 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 |
+---------------------+----------------+------------+-------------------+-------------+------------+--------------+-------------+
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 organização 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_ORGANIZATION
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 |
+----------------------+------------+-------------------------------+------------+----------------+--------------+