Vista STREAMING_TIMELINE_BY_ORGANIZATION
A vista INFORMATION_SCHEMA.STREAMING_TIMELINE_BY_ORGANIZATION
contém estatísticas de streaming agregadas por minuto para toda a organização associada ao projeto atual.
Pode consultar as INFORMATION_SCHEMA
visualizações de streaming
para obter informações históricas e em tempo real sobre a stream de dados para o
BigQuery que usa o método tabledata.insertAll
antigo
e não a API BigQuery Storage Write. Para mais informações sobre como fazer stream de dados para o
BigQuery, consulte o artigo Fazer stream de dados para o BigQuery.
Autorização necessária
Para consultar a vista INFORMATION_SCHEMA.STREAMING_TIMELINE_BY_ORGANIZATION
, precisa da autorização de gestão de identidade e de acesso (IAM) bigquery.tables.list
para a organização.
Cada uma das seguintes funções de IAM predefinidas inclui a autorizaçã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 autorizações do BigQuery, consulte o artigo Controlo de acesso com a IAM.
Esquema
Quando consulta asINFORMATION_SCHEMA
visualizações de streaming, os resultados da consulta
contêm informações históricas e em tempo real sobre o streaming de dados para o
BigQuery. Cada linha nas vistas seguintes representa estatísticas
para streaming para uma tabela específica, agregadas num intervalo de um minuto
a partir de start_timestamp
. As estatísticas são agrupadas por código de erro, pelo que existe uma linha para cada código de erro encontrado durante o intervalo de um minuto para cada combinação de registo de data/hora e tabela. Os pedidos bem-sucedidos têm o código de erro definido como NULL
. Se não forem transmitidos dados para uma tabela durante um determinado período, não existem linhas para as datas/horas correspondentes dessa tabela.
A vista INFORMATION_SCHEMA.STREAMING_TIMELINE_BY_ORGANIZATION
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. |
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. |
error_code |
STRING |
Código de erro devolvido para os pedidos especificados por esta linha. NULL 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 streaming 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.STREAMING_TIMELINE_BY_ORGANIZATION |
Organização que contém o projeto especificado | REGION |
-
Opcional:
PROJECT_ID
: o ID do seu projeto do Google 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.STREAMING_TIMELINE_BY_ORGANIZATION
- Para consultar dados na multirregião da UE, use
`region-eu`.INFORMATION_SCHEMA.STREAMING_TIMELINE_BY_ORGANIZATION
- Para consultar dados na região asia-northeast1, use
`region-asia-northeast1`.INFORMATION_SCHEMA.STREAMING_TIMELINE_BY_ORGANIZATION
Para ver uma lista das regiões disponíveis, consulte Localizações de conjuntos de dados.
Exemplos
Exemplo 1: falhas de streaming recentes
O exemplo seguinte calcula a discriminação por minuto do total de pedidos com falhas para todas as tabelas na organização do projeto nos últimos 30 minutos, dividida 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_ORGANIZATION 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 é 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: 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 streaming com êxito e com falhas na organização 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 ('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_ORGANIZATION GROUP BY start_timestamp ORDER BY start_timestamp DESC;
O resultado é 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 tráfego mais recebido
O exemplo seguinte devolve as estatísticas de streaming das 10 tabelas na organização do projeto com o maior tráfego recebido:
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_ORGANIZATION 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 | +----------------------+------------+-------------------------------+------------+----------------+--------------+