Visualização JOBS_BY_ORGANIZATION
A visualização INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION contém os metadados quase em tempo real sobre todos os jobs enviados na organização associados ao projeto atual.
Papel necessário
Para receber a permissão necessária para consultar a visualização INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION, peça ao administrador para conceder a você o papel do IAM de Leitor de recursos do BigQuery (roles/bigquery.resourceViewer) na organização.
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Esse papel predefinido contém a
permissão
bigquery.jobs.listAll
, que é
necessária para consultar a visualização INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION.
Também é possível receber essa permissão com papéis personalizados ou outros papéis predefinidos.
A tabela de esquema está disponível apenas para usuários de organizações definidas do Cloud de Confiance by S3NS.
Para mais informações sobre as permissões do BigQuery, consulte Controle de acesso com o IAM.
Esquema
Os dados subjacentes são particionados pela coluna creation_time e
agrupados por project_id e user_email. A coluna query_info contém mais informações sobre os jobs de consulta.
A visualização INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION tem o seguinte esquema:
| Nome da coluna | Tipo de dado | Valor |
|---|---|---|
bi_engine_statistics |
RECORD |
Se o projeto estiver configurado para usar o BI
Engine, este campo conterá BiEngineStatistics.
Se esse não for seu caso, NULL.
|
cache_hit |
BOOLEAN |
Se os resultados da consulta deste job eram de um cache.
Se você tiver um job de instrução de várias consultas, o cache_hit da consulta mãe será NULL.
|
creation_time |
TIMESTAMP |
(Coluna de particionamento) horário da criação do job. O particionamento é baseado no horário UTC desse carimbo de data/hora. |
destination_table |
RECORD |
Tabela de destino dos resultados (se houver). |
end_time |
TIMESTAMP |
O horário de término do job, em milissegundos, desde o período. Esse campo representa o
momento em que o job entra no estado DONE. |
error_result |
RECORD |
Detalhes dos erros como objetos ErrorProto. |
global_query_info |
RECORD |
Informações sobre uma consulta global.
Contém os seguintes campos:
|
job_creation_reason.code |
STRING |
Especifica o motivo geral de criação de um job. Os valores possíveis são:
|
job_id |
STRING |
O ID do job, caso ele tenha sido criado. Caso contrário, o ID da consulta usando o modo de criação de job opcional. Por exemplo, bquxjob_1234 |
job_stages |
RECORD REPEATED |
Estágios de consulta
do job.
Observação: os valores desta coluna estão vazios para consultas lidas em tabelas com políticas de acesso no nível da linha. Para mais informações, consulte práticas recomendadas para segurança no nível da linha no BigQuery. |
job_type |
STRING |
O tipo de job. Pode ser QUERY, LOAD, EXTRACT,
COPY ou NULL. Um valor NULL indica um job em segundo plano.
|
labels |
RECORD |
Matriz de identificadores aplicados ao job como pares de chave-valor. |
object_storage_stats |
RECORD REPEATED |
Estatísticas de uso de repositório de objetos e cache para um job de consulta.
O valor é um registro repetido com os seguintes campos:
|
parent_job_id |
STRING |
ID do job pai (se houver). |
priority |
STRING |
A prioridade deste job. Os valores válidos incluem INTERACTIVE
e BATCH. |
project_id |
STRING |
(Coluna de clustering) é o ID do projeto. |
project_number |
INTEGER |
O número do projeto. |
referenced_tables |
RECORD |
Matriz de valores STRUCT
que contêm os seguintes campos STRING para cada tabela referenciada pela consulta:
project_id, dataset_id e table_id. Preenchido apenas para jobs de consulta que não são ocorrências em cache.
|
referenced_logical_views |
RECORD |
Matriz de valores STRUCT
que contêm os seguintes campos STRING para cada visualização
lógica referenciada pela consulta: project_id,
dataset_id e table_id. Preenchido apenas para jobs de consulta que não são ocorrências em cache.
|
reservation_id |
STRING |
Nome da reserva principal atribuída a este job,
no formato
RESERVATION_ADMIN_PROJECT:RESERVATION_LOCATION.RESERVATION_NAME.Nesta saída:
|
reservation_group_path |
ARRAY<STRING> |
O grupo de reservas ao qual a reserva está vinculada.
Por exemplo, se a reserva estiver vinculada ao grupo my-group,
o campo reservation_group_path vai conter uma lista como: [my-group]. |
edition |
STRING |
A edição associada à reserva atribuída a este job. Para mais informações sobre edições, consulte Introdução às edições do BigQuery. |
session_info |
RECORD |
Detalhes sobre a sessão em que este job foi executado, se houver. |
start_time |
TIMESTAMP |
Horário de início do job, em milissegundos, desde o período. Esse campo representa o
momento em que o job faz a transição do estado PENDING para
RUNNING ou DONE. |
state |
STRING |
Estado em execução do job. Os estados válidos incluem PENDING, RUNNING e
DONE.
|
statement_type |
STRING |
O tipo de instrução de consulta. Por exemplo, DELETE, INSERT,
SCRIPT, SELECT ou UPDATE. Consulte QueryStatementType
para acessar uma lista de valores válidos.
|
timeline |
RECORD |
Cronograma de consulta do job. Contém snapshots de execução de consulta. |
total_bytes_billed |
INTEGER |
Se o projeto estiver configurado para usar preços sob
demanda, então esse campo conterá o total de bytes cobrados pelo
job. Se o projeto estiver configurado para usar
preços fixos,
então você não será cobrado por bytes, e esse campo será apenas informativo.
Observação: os valores desta coluna estão vazios para consultas lidas em tabelas com políticas de acesso no nível da linha. Para mais informações, consulte práticas recomendadas para segurança no nível da linha no BigQuery. |
total_bytes_processed |
INTEGER |
Total de bytes processados pelo job. Observação: os valores desta coluna estão vazios para consultas lidas em tabelas com políticas de acesso no nível da linha. Para mais informações, consulte práticas recomendadas para segurança no nível da linha no BigQuery. |
total_modified_partitions |
INTEGER |
Número total de partições do job modificado. Esse campo é
preenchido para jobs LOAD e QUERY.
|
total_slot_ms |
INTEGER |
Milissegundos de slot para o job durante toda a duração no estado RUNNING,
incluindo novas tentativas. |
total_services_sku_slot_ms |
INTEGER |
Total de milissegundos de slot para o job executado em serviços externos e faturado na SKU de serviços. Esse campo é preenchido apenas para jobs que têm custos de serviço externo e é
o total do uso para custos cujo tipo de faturamento é "SERVICES_SKU". |
transaction_id |
STRING |
ID da transação em que este job foi executado, se houver. |
user_email |
STRING |
(Coluna de clustering) endereço de e-mail ou conta de serviço do usuário que executou o job. |
principal_subject |
STRING |
Uma representação de string da identidade do principal que executou o job. |
query_info.resource_warning |
STRING |
A mensagem de aviso que aparece quando o uso de recursos durante o processamento da consulta está acima do limite interno do sistema. Um job de consulta bem-sucedido pode ter o campo resource_warning preenchido. Com o resource_warning, você ganha mais pontos de dados para otimizar suas consultas e configurar o monitoramento das tendências de desempenho de um conjunto equivalente de consultas usando query_hashes.
|
query_info.query_hashes.normalized_literals |
STRING |
Contém o valor de hash da consulta. normalized_literals é um hash
STRING hexadecimal que ignora comentários, valores de parâmetros, UDFs e literais.
O valor de hash será diferente quando as visualizações subjacentes mudarem ou se a consulta fizer referência implícita
a colunas, como SELECT *, e o esquema da tabela mudar.
Esse campo aparece para consultas bem-sucedidas do GoogleSQL que não são ocorrências em cache. |
query_info.performance_insights |
RECORD |
Insights de desempenho para o job. |
transferred_bytes |
INTEGER |
Total de bytes transferidos para consultas do BigQuery Omni, como jobs de transferência do BigQuery Omni. |
materialized_view_statistics |
RECORD |
Estatísticas de visualizações materializadas consideradas em um job de consulta. (Prévia) |
metadata_cache_statistics |
RECORD |
Estatísticas de uso do índice de colunas de metadados para tabelas referenciadas em um job de consulta. |
search_statistics |
RECORD |
Estatísticas de uma consulta de pesquisa. |
query_dialect |
STRING |
Esse campo vai estar disponível em maio de 2025.
O dialeto de consulta usado para o job. Os valores válidos incluem:
Para jobs enviados por usuários, esse campo é preenchido apenas para jobs de consulta. A seleção padrão do dialeto de consulta pode ser controlada pelas definições de configuração. Para jobs em segundo plano, o valor desse campo não é controlado pelas definições de configuração do dialeto de consulta padrão e não afeta os jobs enviados pelos usuários. Para alguns jobs em segundo plano, o valor é omitido. |
continuous |
BOOLEAN |
Se o job é uma consulta contínua. |
continuous_query_info.output_watermark |
TIMESTAMP |
Representa o ponto até o qual a consulta contínua processou os dados. |
vector_search_statistics |
RECORD |
Estatísticas de uma consulta de pesquisa vetorial. |
external_service_costs |
RECORD |
Uma matriz de informações sobre os custos de serviço externo de um job de consulta. |
ml_statistics.model_type |
STRING |
Se o job for uma consulta de criação de modelo do BigQuery ML, esse
campo especificará o tipo de modelo
que está sendo criado. Para todos os outros jobs, o valor é NULL.
|
Para garantir a estabilidade, recomendamos que você liste explicitamente as colunas nas consultas do esquema de informações em vez de usar um caractere curinga (SELECT *). Listar explicitamente as colunas evita que as consultas sejam interrompidas se o esquema subjacente mudar.
Retenção de dados
Essa visualização mostra os jobs em execução e o histórico dos últimos 180 dias.
Se um projeto for migrado para uma organização (seja de uma organização diferente ou de nenhuma), as informações de jobs anteriores à data de migração não estarão acessíveis na visualização INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION, já que ela só retém dados a partir da data de migração.
Escopo e sintaxe
As consultas nessa visualização precisam incluir um qualificador de região. 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.JOBS_BY_ORGANIZATION |
Organização que contém o projeto especificado | REGION |
-
Opcional:
PROJECT_ID: o ID do seu projeto do Cloud de Confiance . 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`.
Limitações
A visualização INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION inclui jobs executados por
projetos que pertencem à organização atual. Os jobs executados por projetos de
outras organizações não estão disponíveis nessa visualização, mesmo quando esses jobs
acessam recursos na organização atual, como conjuntos de dados compartilhados. Por
exemplo, se você compartilhar um conjunto de dados com um projeto de outra organização,
os jobs que o projeto executar para acessar dados no conjunto de dados não serão incluídos
nessa visualização.
Exemplos
Para executar a consulta em um projeto diferente do projeto padrão, adicione o ID do projeto no seguinte formato:
`PROJECT_ID`.`region-REGION_NAME`.INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION
PROJECT_ID: o ID do projetoREGION_NAME: a região do projeto;
Por exemplo, `myproject`.`region-us`.INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION
Encontrar os cinco principais jobs que verificaram o maior número de bytes hoje
No exemplo a seguir, demonstramos como encontrar os cinco jobs que verificaram a
maioria dos bytes em uma organização no dia atual. É possível filtrar mais em
statement_type para consultar outras informações, como cargas, exportações
e consultas.
SELECT job_id, user_email, total_bytes_billed FROM `region-REGION_NAME`.INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION WHERE EXTRACT(DATE FROM creation_time) = current_date() ORDER BY total_bytes_billed DESC LIMIT 5;
O resultado será semelhante ao seguinte:
+--------------+--------------+---------------------------+ | job_id | user_email | total_bytes_billed | +--------------+--------------+---------------------------+ | bquxjob_1 | abc@xyz.com | 999999 | | bquxjob_2 | def@xyz.com | 888888 | | bquxjob_3 | ghi@xyz.com | 777777 | +--------------+--------------+---------------------------+
Agregue o uso das páginas conectadas por usuário no nível da organização
A consulta a seguir fornece um resumo dos principais usuários das páginas conectadas na sua organização nos últimos 30 dias, classificados pelo total de dados faturados. A consulta agrega o número total de consultas, o total de bytes cobrados e o total de milissegundos de slot para cada usuário. Essas informações são úteis para entender a adoção e identificar os principais consumidores de recursos.
SELECT
user_email,
COUNT(*) AS total_queries,
SUM(total_bytes_billed) AS total_bytes_billed,
SUM(total_slot_ms) AS total_slot_ms
FROM
`region-REGION_NAME.INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION`
WHERE
-- Filter for jobs created in the last 30 days
creation_time >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 30 DAY)
-- Filter for jobs originating from Connected Sheets
AND job_id LIKE 'sheets_dataconnector%'
-- Filter for completed jobs
AND state = 'DONE'
AND (statement_type IS NULL OR statement_type <> 'SCRIPT')
GROUP BY
1
ORDER BY
total_bytes_billed DESC;
Substitua REGION_NAME pela região do projeto.
Por exemplo, region-us.
O resultado será semelhante a este:
+---------------------+---------------+--------------------+-----------------+ | user_email | total_queries | total_bytes_billed | total_slot_ms | +---------------------+---------------+--------------------+-----------------+ | alice@example.com | 152 | 12000000000 | 3500000 | | bob@example.com | 45 | 8500000000 | 2100000 | | charles@example.com | 210 | 1100000000 | 1800000 | +---------------------+---------------+--------------------+-----------------+
Encontrar registros de jobs de consultas das páginas conectadas no nível da organização
A consulta a seguir fornece um registro detalhado de cada job individual executado pelas Páginas Conectadas. Essas informações são úteis para auditar e identificar consultas específicas de alto custo.
SELECT
job_id,
creation_time,
user_email,
project_id,
total_bytes_billed,
total_slot_ms
FROM
`region-REGION_NAME.INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION`
WHERE
creation_time >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 30 DAY)
AND job_id LIKE 'sheets_dataconnector%'
AND state = 'DONE'
AND (statement_type IS NULL OR statement_type <> 'SCRIPT')
ORDER BY
creation_time DESC;
Substitua REGION_NAME pela região do projeto.
Por exemplo, region-us.
O resultado será semelhante a este:
+---------------------------------+---------------------------------+-----------------+------------+--------------------+---------------+ | job_id | creation_time | user_email | project_id | total_bytes_billed | total_slot_ms | +---------------------------------+---------------------------------+-----------------+------------+--------------------+---------------+ | sheets_dataconnector_bquxjob_1 | 2025-11-06 00:26:53.077000 UTC | abc@example.com | my_project | 12000000000 | 3500000 | | sheets_dataconnector_bquxjob_2 | 2025-11-06 00:24:04.294000 UTC | xyz@example.com | my_project | 8500000000 | 2100000 | | sheets_dataconnector_bquxjob_3 | 2025-11-03 23:17:25.975000 UTC | bob@example.com | my_project | 1100000000 | 1800000 | +---------------------------------+---------------------------------+-----------------+------------+--------------------+---------------+