Vista JOBS_TIMELINE_BY_ORGANIZATION
A vista INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION
contém metadados do BigQuery quase em tempo real por intervalo de tempo para todas as tarefas enviadas na organização associada ao projeto atual.
Esta vista contém tarefas em execução e concluídas.
Autorizações necessárias
Para consultar a vista INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION
, precisa da autorização de gestão de identidade e de acesso (IAM) bigquery.jobs.listAll
para a organização.
Cada uma das seguintes funções de IAM predefinidas inclui a autorização necessária:
- Administrador de recursos do BigQuery ao nível da organização
- Proprietário da organização
- Administrador da organização
A tabela de esquemas JOBS_BY_ORGANIZATION
só está disponível para utilizadores com
Google Cloud organizações definidas.
Para mais informações sobre as autorizações do BigQuery, consulte o artigo Controlo de acesso com a IAM.
Esquema
Quando consulta as visualizações INFORMATION_SCHEMA.JOBS_TIMELINE_BY_*
, os resultados da consulta contêm uma linha para cada segundo de execução de cada tarefa do BigQuery. Cada período começa num intervalo de um segundo inteiro e
dura exatamente um segundo.
A vista INFORMATION_SCHEMA.JOBS_TIMELINE_BY_*
tem o seguinte esquema:
Nome da coluna | Tipo de dados | Valor |
---|---|---|
period_start |
TIMESTAMP |
Hora de início deste período. |
period_slot_ms |
INTEGER |
Milissegundos de intervalo consumidos neste período. |
project_id |
STRING |
ID do projeto (coluna de agrupamento). |
project_number |
INTEGER |
Número do projeto. |
folder_numbers |
REPEATED INTEGER |
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`. |
user_email |
STRING |
(Coluna de agrupamento) Endereço de email ou conta de serviço do utilizador que executou a tarefa. |
job_id |
STRING |
ID da tarefa. Por exemplo, bquxjob_1234 . |
job_type |
STRING |
O tipo de trabalho. Pode ser QUERY , LOAD ,
EXTRACT , COPY ou null . O tipo de tarefa null indica uma tarefa interna, como a avaliação de declarações de tarefas de scripts ou a atualização da vista materializada. |
statement_type |
STRING |
O tipo de declaração de consulta, se for válida. Por exemplo,
SELECT , INSERT , UPDATE ou
DELETE . |
priority |
STRING |
A prioridade desta tarefa. Os valores válidos incluem INTERACTIVE e
BATCH . |
parent_job_id |
STRING |
ID da tarefa principal, se existir. |
job_creation_time |
TIMESTAMP |
(Coluna de partição) Hora da criação desta tarefa. A partição baseia-se na hora UTC desta data/hora. |
job_start_time |
TIMESTAMP |
Hora de início desta tarefa. |
job_end_time |
TIMESTAMP |
Hora de fim desta tarefa. |
state |
STRING |
Estado de execução da tarefa no final deste período. Os estados válidos
incluem PENDING , RUNNING e
DONE . |
reservation_id |
STRING |
Nome da reserva principal atribuída a este trabalho no final deste período, se aplicável. |
edition |
STRING |
A edição associada à reserva atribuída a esta tarefa. Para mais informações sobre as edições, consulte o artigo Introdução às edições do BigQuery. |
total_bytes_billed |
INTEGER |
Se o projeto estiver configurado para usar preços a pedido, este campo contém o total de bytes faturados para a tarefa. Se o projeto estiver configurado para usar preços fixos, não lhe é faturado o número de bytes. Este campo não é configurável. |
total_bytes_processed |
INTEGER |
Total de bytes processados pela tarefa. |
error_result |
RECORD |
Detalhes do erro (se existir) como um
ErrorProto.
|
cache_hit |
BOOLEAN |
Se os resultados da consulta deste trabalho foram provenientes de uma cache. |
period_shuffle_ram_usage_ratio |
FLOAT |
Rácio de utilização da funcionalidade Shuffle no período selecionado. |
period_estimated_runnable_units |
INTEGER |
Unidades de trabalho que podem ser agendadas imediatamente neste período. Os slots adicionais para estas unidades de trabalho aceleram a sua consulta, desde que nenhuma outra consulta na reserva precise de slots adicionais. |
Retenção de dados
Esta vista contém tarefas em execução e o histórico de tarefas 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.JOBS_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`
.
Exemplos
Exemplo: veja a utilização total de espaços por segundo
Para executar a consulta num projeto que não seja o seu projeto predefinido, adicione o ID do projeto no seguinte formato:
`PROJECT_ID`.`region-REGION_NAME`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION
`myproject`.`region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION
.
O exemplo seguinte mostra a utilização de slots por segundo de projetos atribuídos a
YOUR_RESERVATION_ID
em todas as tarefas:
SELECT s.start_time AS period_start, SUM(jobs.period_slot_ms) / 1000 AS period_slot_seconds, ANY_VALUE(s.slots_assigned) AS estimated_slots_assigned, ANY_VALUE(s.slots_max_assigned) AS estimated_slots_max_assigned FROM `region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION jobs JOIN `region-us`.INFORMATION_SCHEMA.RESERVATIONS_TIMELINE res ON jobs.reservation_id = res.reservation_id JOIN res.per_second_details s ON jobs.period_start = s.start_time WHERE jobs.job_creation_time BETWEEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY) AND CURRENT_TIMESTAMP() AND res.period_start BETWEEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY) AND CURRENT_TIMESTAMP() AND res.reservation_id = 'YOUR_RESERVATION_ID' AND (jobs.statement_type != "SCRIPT" OR jobs.statement_type IS NULL) -- Avoid duplicate byte counting in parent and children jobs. GROUP BY period_start ORDER BY period_start DESC;
O resultado é semelhante ao seguinte:
+-----------------------+---------------------+--------------------------+------------------------------+ | period_start | period_slot_seconds | estimated_slots_assigned | estimated_slots_max_assigned | +-----------------------+---------------------+--------------------------+------------------------------+ |2021-06-08 21:33:59 UTC| 100.000 | 100 | 100 | |2021-06-08 21:33:58 UTC| 96.753 | 100 | 100 | |2021-06-08 21:33:57 UTC| 41.668 | 100 | 100 | +-----------------------+---------------------+--------------------------+------------------------------+
Exemplo: utilização de slots por reserva
O exemplo seguinte mostra a utilização de espaços por segundo para cada reserva no último dia:
SELECT s.start_time AS period_start, res.reservation_id, SUM(jobs.period_slot_ms) / 1000 AS period_slot_seconds, ANY_VALUE(res.slots_assigned) AS estimated_slots_assigned, ANY_VALUE(res.slots_max_assigned) AS estimated_slots_max_assigned, FROM `region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION jobs JOIN `region-us`.INFORMATION_SCHEMA.RESERVATIONS_TIMELINE res ON jobs.reservation_id = res.reservation_id JOIN res.per_second_details s ON jobs.period_start = s.start_time WHERE jobs.job_creation_time BETWEEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY) AND CURRENT_TIMESTAMP() AND res.period_start BETWEEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY) AND CURRENT_TIMESTAMP() AND (jobs.statement_type != "SCRIPT" OR jobs.statement_type IS NULL) -- Avoid duplicate byte counting in parent and children jobs. GROUP BY period_start, reservation_id ORDER BY period_start DESC, reservation_id;
O resultado é semelhante ao seguinte:
+-----------------------+----------------+---------------------+--------------------------+------------------------------+ | period_start | reservation_id | period_slot_seconds | estimated_slots_assigned | estimated_slots_max_assigned | +-----------------------+----------------+---------------------+--------------------------+------------------------------+ |2021-06-08 21:33:59 UTC| prod01 | 100.000 | 100 | 100 | |2021-06-08 21:33:58 UTC| prod02 | 177.201 | 200 | 500 | |2021-06-08 21:32:57 UTC| prod01 | 96.753 | 100 | 100 | |2021-06-08 21:32:56 UTC| prod02 | 182.329 | 200 | 500 | +-----------------------+----------------+---------------------+--------------------------+------------------------------+