WRITE_API_TIMELINE_BY_FOLDER view

A vista INFORMATION_SCHEMA.WRITE_API_TIMELINE_BY_FOLDER contém estatísticas de carregamento da API Storage Write do BigQuery agregadas por minuto para a pasta principal do projeto atual, incluindo as respetivas subpastas.

Pode consultar as INFORMATION_SCHEMAvistas da API Write para obter informações históricas e em tempo real sobre o carregamento de dados no BigQuery que usa a API BigQuery Storage Write. Consulte o artigo API BigQuery Storage Write para mais informações.

Autorização necessária

Para consultar a vista INFORMATION_SCHEMA.WRITE_API_TIMELINE_BY_FOLDER, precisa da autorização de gestão de identidade e de acesso (IAM) para a pasta principal do projeto.bigquery.tables.list

Cada uma das seguintes funções de IAM predefinidas inclui a autorização anterior:

  • 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 autorizações do BigQuery, consulte o artigo Controlo de acesso com a IAM.

Esquema

Quando consulta as vistas da INFORMATION_SCHEMA API BigQuery Storage Write, os resultados da consulta contêm informações históricas e em tempo real sobre o carregamento de dados no BigQuery através da API BigQuery Storage Write. Cada linha nas vistas seguintes representa estatísticas de carregamento para uma tabela específica, agregadas num intervalo de um minuto a partir das start_timestamp. As estatísticas são agrupadas por tipo de stream e código de erro, pelo que existe uma linha para cada tipo de stream e cada código de erro encontrado durante o intervalo de um minuto para cada data/hora e combinação de tabelas. Os pedidos bem-sucedidos têm o código de erro definido como OK. Se não forem carregados dados numa tabela durante um determinado período, não são apresentadas linhas para as datas/horas correspondentes dessa tabela.

A vista INFORMATION_SCHEMA.WRITE_API_TIMELINE_BY_FOLDER tem o seguinte esquema:
Nome da coluna Tipo de dados Valor
start_timestamp TIMESTAMP (Coluna de partição) Indicação de tempo de início do intervalo de 1 minuto para as estatísticas agregadas.
folder_numbers REPEATED INTEGER Os IDs numéricos das pastas que contêm o projeto, começando pela pasta que contém imediatamente o projeto, seguida da pasta que contém a pasta secundária e assim sucessivamente. Por exemplo, se folder_numbers for [1, 2, 3], a pasta 1 contém imediatamente o projeto, a pasta 2 contém 1 e a pasta 3 contém 2. Esta coluna só é preenchida em WRITE_API_TIMELINE_BY_FOLDER.
project_id STRING ID do projeto (coluna de agrupamento).
project_number INTEGER Número do projeto.
dataset_id STRING (Coluna de agrupamento) ID do conjunto de dados.
table_id STRING (Coluna de agrupamento) ID da tabela.
stream_type STRING O tipo de stream usado para o carregamento de dados com a API Storage Write do BigQuery. Deve ser "DEFAULT", "COMMITTED", "BUFFERED" ou "PENDING".
error_code STRING Código de erro devolvido para os pedidos especificados por esta linha. "OK" para pedidos bem-sucedidos.
total_requests INTEGER Número total de pedidos no intervalo de 1 minuto.
total_rows INTEGER Número total de linhas de todos os pedidos no intervalo de 1 minuto.
total_input_bytes INTEGER Número total de bytes de todas as linhas no intervalo de 1 minuto.

Retenção de dados

Esta vista contém o histórico de carregamento da API BigQuery Storage Write dos últimos 180 dias.

Âmbito e sintaxe

As consultas nesta vista têm de incluir um qualificador de região. Se não especificar um qualificador regional, os metadados são obtidos de todas as regiões. A tabela seguinte explica o âmbito da região para esta vista:

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

Exemplo

  • Para consultar dados na multirregião dos EUA, use region-us.INFORMATION_SCHEMA.WRITE_API_TIMELINE_BY_FOLDER
  • Para consultar dados na multirregião da UE, use 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 ver uma lista das regiões disponíveis, consulte Localizações de conjuntos de dados.

Exemplos

Exemplo 1: falhas de carregamento recentes da API BigQuery Storage Write

O exemplo seguinte calcula a discriminação por minuto do total de pedidos com falhas para todas as tabelas na pasta do projeto nos últimos 30 minutos, dividida por tipo de stream e 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 é 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: discriminação por minuto de todos os pedidos com códigos de erro

O exemplo seguinte calcula uma análise detalhada por minuto dos pedidos de anexação com êxito e com falhas na pasta do projeto, divididos em categorias de códigos de erro. Esta consulta pode ser usada para preencher um painel de controlo.

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 é 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 tráfego mais recebido

O exemplo seguinte devolve as estatísticas de carregamento da API Storage Write do BigQuery para as 10 tabelas na pasta do projeto com o tráfego de entrada mais elevado:

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