Visualização de STREAMING_TIMELINE_BY_FOLDER
A visualização INFORMATION_SCHEMA.STREAMING_TIMELINE_BY_FOLDER contém estatísticas de streaming agregadas
por minuto para a pasta pai do projeto atual,
incluindo as subpastas.
É possível consultar as visualizações de streaming de INFORMATION_SCHEMA para recuperar informações históricas e em tempo real sobre dados de streaming no BigQuery que usa o método tabledata.insertAll legado e não a API BigQuery Storage Write. Para mais informações sobre streaming de dados para o BigQuery, consulte Como fazer streaming de dados para o BigQuery.
Permissão necessária
Para consultar a visualização INFORMATION_SCHEMA.STREAMING_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.adminroles/bigquery.userroles/bigquery.dataViewerroles/bigquery.dataEditorroles/bigquery.dataOwnerroles/bigquery.metadataViewerroles/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 de streaming deINFORMATION_SCHEMA, os resultados
da consulta contêm informações históricas e em tempo real sobre dados de streaming no
BigQuery. Cada linha nas visualizações a seguir representa estatísticas
para streaming em uma tabela específica, agregadas em um intervalo de um minuto
a partir de start_timestamp. As estatísticas são agrupadas por código de erro. Portanto, haverá
uma linha para cada código de erro encontrado 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 de
erro definido como NULL. Se nenhum dado foi transmitido para 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.STREAMING_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, 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
        STREAMING_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. | 
error_code | 
      STRING | 
      Código de erro retornado para as solicitações especificadas por essa linha. NULL 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. | 
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.STREAMING_TIMELINE_BY_FOLDER | 
  Pasta que contém o projeto especificado | REGION | 
- 
  Opcional: 
PROJECT_ID: o ID do seu projeto do Google Cloud . 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.STREAMING_TIMELINE_BY_FOLDER. - Para consultar dados na multirregião UE, utilize 
region-eu.INFORMATION_SCHEMA.STREAMING_TIMELINE_BY_FOLDER. - Para consultar dados na região asia-northeast1, use 
region-asia-northeast1.INFORMATION_SCHEMA.STREAMING_TIMELINE_BY_FOLDER. 
Para obter uma lista de regiões disponíveis, consulte locais do conjunto de dados.
Exemplos
Exemplo 1: falhas de streaming recentes
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 por código de erro:
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;
O resultado será semelhante ao seguinte:
+---------------------+------------------+---------------------+ | 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 | +---------------------+------------------+---------------------+
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 streaming 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 ('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;
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 streaming das 10 tabelas na pasta do projeto com o maior 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.STREAMING_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 | +----------------------+------------+-------------------------------+------------+----------------+--------------+