Gerencie vagas
Este documento descreve como gerenciar jobs no BigQuery, incluindo como acessar detalhes do job, listar jobs, cancelar um job, repetir um job e excluir metadados do job.
Sobre os jobs do BigQuery
Toda vez que você carrega, exporta, consulta ou copia dados, o BigQuery cria, programa e executa automaticamente um job que rastreia o progresso da tarefa.
Como os jobs podem levar um longo tempo para serem concluídos, eles são executados de maneira assíncrona e podem ser pesquisados por status. As ações mais curtas, como listar recursos ou receber metadados, não são gerenciadas como jobs.
Quando um job é enviado, ele pode estar em um dos seguintes estados:
PENDING
: o job está programado e aguardando para ser executado.RUNNING
: o job está em andamento.DONE
: o job foi concluído. Se o job for concluído sem erros, o BigQuery vai informar esse estado comoSUCCESS
. Se o job for concluído com erros, o BigQuery informará esse estado comoFAILURE
.
Cotas
Para informações sobre cotas de jobs, consulte a documentação do tipo de job na página Cotas e limites:
Preços
Todo job é associado a determinado projeto que você especifica. A conta de faturamento anexada ao projeto associado é cobrada por qualquer uso incorrido pelo job. Se você compartilhar o acesso a um projeto, todos os jobs executados serão cobrados na conta de faturamento.
Por exemplo, ao executar um job de consulta,
o custo é faturado para o projeto que executa o job. Assim, quando você visualiza o
ID de um job de consulta com o formato <project_id>:<region>.<job_id>
,
project_id
é o ID do projeto faturado para a consulta.
Para mais informações, consulte Preços.
Antes de começar
Atribua papéis do Identity and Access Management (IAM) que concedam aos usuários as permissões necessárias para realizar cada tarefa deste documento.
Funções exigidas
Para receber as permissões necessárias para executar e gerenciar jobs, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto:
-
Executar ou repetir um job, listar seus jobs, conferir detalhes deles e cancelá-los:
Usuário de jobs do BigQuery (
roles/bigquery.jobUser
) ou Usuário do BigQuery (roles/bigquery.user
) -
Listar todos os jobs em um projeto:
Administrador do BigQuery (
roles/bigquery.admin
) ou administrador de recursos do BigQuery (roles/bigquery.resourceAdmin
) -
Acessar detalhes de todos os jobs em um projeto, cancelar qualquer job no projeto e excluir metadados do job:
Administrador do BigQuery (
roles/bigquery.admin
)
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Esses papéis predefinidos contêm as permissões necessárias para executar e gerenciar jobs. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:
Permissões necessárias
As seguintes permissões são necessárias para executar e gerenciar jobs:
-
Execute ou repita um job e liste seus jobs:
bigquery.jobs.create
-
Confira os detalhes dos seus jobs:
bigquery.jobs.get
-
Cancelar seus jobs:
bigquery.jobs.update
-
Confira os detalhes de todos os jobs em um projeto:
-
bigquery.jobs.get
-
bigquery.jobs.listAll
-
-
Listar todos os jobs em um projeto:
bigquery.jobs.listAll
-
Cancele qualquer job no projeto:
-
bigquery.jobs.update
-
bigquery.jobs.listAll
-
-
Excluir metadados do job:
-
bigquery.jobs.delete
-
bigquery.jobs.listAll
-
Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.
Para mais informações sobre os papéis e as permissões do IAM no BigQuery, consulte Papéis e permissões predefinidos.
Mais detalhes do job
Para ver os detalhes do job, use o console do Google Cloud, a ferramenta de linha de comando bq, a API ou as bibliotecas de cliente. Os detalhes incluem dados e metadados, como o tipo, o estado e o usuário que criou o job.
Para conferir os detalhes do job, siga estas etapas:
Console
Acessar a página do BigQuery.
Abra o painel Histórico de jobs.
Selecione o tipo de histórico de jobs que você quer ver:
- Para exibir informações dos jobs recentes, clique em Histórico pessoal.
- Para exibir informações de jobs recentes no projeto, clique em Histórico do projeto.
Para ver os detalhes de um job, clique nele.
bq
Emita o comando bq show
com a sinalização --job=true
e um ID de job.
Quando você fornece o ID do job, é possível usar o ID totalmente qualificado ou a forma abreviada. Por exemplo, os IDs de jobs listados no console do Google Cloud são totalmente qualificados, ou seja, incluem o projeto e o local:
my-project-1234:US.bquijob_123x456_123y123z123c
Os IDs dos jobs na ferramenta de linha de comando são listados usando a forma abreviada e não incluem o ID e o local do projeto:
bquijob_123x456_123y123z123c
Para especificar o local do job, forneça a sinalização --location
e defina o valor
do local. Essa sinalização é opcional,
caso seja usado o ID do job totalmente qualificado. Se você incluir a sinalização --location
e estiver usando o ID do job totalmente qualificado, a sinalização --location
será
ignorada.
O comando a seguir solicita informações sobre um job:
bq --location=LOCATION show --job=true JOB_ID
Substitua:
LOCATION
: o nome do local em que o job é executado. Por exemplo, se você estiver usando o BigQuery na região de Tóquio, defina o valor da sinalização comoasia-northeast1
. É possível definir um valor padrão para o local usando o arquivo.bigqueryrc
. Se o local não for especificado como parte do ID do job ou por meio da sinalização--location
, será usado o local padrão.JOB_ID
: o ID do job
Exemplos
O comando a seguir recebe informações resumidas sobre o job
US.bquijob_123x456_123y123z123c
em execução em myproject
.
bq show --job=true myproject:US.bquijob_123x456_123y123z123c
O resultado será assim:
Job Type State Start Time Duration User Email Bytes Processed Bytes Billed Billing Tier Labels ---------- --------- ----------------- ---------- ------------------- ----------------- -------------- -------------- -------- extract SUCCESS 06 Jul 11:32:10 0:01:41 user@example.com
Para ver detalhes completos do job, digite o seguinte:
bq show --format=prettyjson --job=true myproject:US.bquijob_123x456_789y123z456c
O resultado será assim:
{ "configuration": { "extract": { "compression": "NONE", "destinationUri": "[URI removed]", "destinationUris": [ "[URI removed]" ], "sourceTable": { "datasetId": "github_repos", "projectId": "bigquery-public-data", "tableId": "commits" } } }, "etag": "\"[etag removed]\"", "id": "myproject:bquijob_123x456_789y123z456c", "jobReference": { "jobId": "bquijob_123x456_789y123z456c", "projectId": "[Project ID removed]" }, "kind": "bigquery#job", "selfLink": "https://bigquery.googleapis.com/bigquery/v2/projects/federated-testing/jobs/bquijob_123x456_789y123z456c", "statistics": { "creationTime": "1499365894527", "endTime": "1499365894702", "startTime": "1499365894702" }, "status": { "errorResult": { "debugInfo": "[Information removed for readability]", "message": "Operation cannot be performed on a nested schema. Field: author", "reason": "invalid" }, "errors": [ { "message": "Operation cannot be performed on a nested schema. Field: author", "reason": "invalid" } ], "state": "DONE" }, "user_email": "user@example.com" }
API
Chame jobs.get e forneça os parâmetros jobId
e projectId
. (Opcional) Insira o parâmetro location
e defina o valor do local
em que o job é executado. Esse parâmetro é opcional, caso esteja usando o
código do job totalmente qualificado, que inclui o local, por exemplo,
my-project-1234:US.bquijob_123x456_123y123z123c
.
Go
Antes de testar esta amostra, siga as instruções de configuração do Go no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Go.
Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
Java
Antes de testar esta amostra, siga as instruções de configuração do Java no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Java.
Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
Node.js
Antes de testar esta amostra, siga as instruções de configuração do Node.js no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Node.js.
Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
Python
Antes de testar esta amostra, siga as instruções de configuração do Python no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Python.
Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
Se você precisar de mais informações para resolver problemas de um job, consulte as visualizações INFORMATION_SCHEMA.JOBS*
e Registros.
Listar jobs
O BigQuery salva um histórico de jobs de seis meses
para todos os jobs de um projeto, em todos os locais. O histórico de jobs inclui aqueles
que estão no estado RUNNING
e que estão como
DONE
, um campo que aparece quando o estado é informado como SUCCESS
ou FAILURE
.
Para listar jobs em um projeto, siga estas etapas:
Console
Acessar a página do BigQuery.
Abra o painel Histórico de jobs.
Para listar todos os jobs de um projeto, clique em Histórico do projeto. Se você não for o proprietário do projeto, talvez não tenha permissão para visualizar todos os jobs desse projeto. Os jobs mais recentes são listados primeiro.
Para listar seus jobs, clique em Histórico pessoal.
bq
Emita o comando bq ls
com uma das seguintes sinalizações:
--jobs=true
ou-j
: identifica jobs como o tipo de recurso a ser listado.--all=true
ou-a
: lista os jobs de todos os usuários. Para ver os detalhes completos (não editados) de todos os jobs, você precisa ter permissõesbigquery.jobs.listAll
.--min_creation_time
: lista os jobs após um valor de carimbo de data/hora ser fornecido. Esse valor é representado como um carimbo de data/hora da época Unix em milissegundos.--max_creation_time
: lista os jobs antes de um valor de carimbo de data/hora ser fornecido. Esse valor é representado como um carimbo de data/hora da época Unix em milissegundos.--max_results
ou-n
limita os resultados. O padrão é 50 resultados.
bq ls --jobs=true --all=true \ --min_creation_time=MIN_TIME \ --max_creation_time=MAX_TIME \ --max_results=MAX_RESULTS \ PROJECT_ID
Substitua:
MIN_TIME
: um número inteiro que representa um carimbo de data/hora da época Unix em milissegundos.MAX_TIME
: um número inteiro que representa um carimbo de data/hora da época Unix em milissegundos.MAX_RESULTS
: um número inteiro que indica o número de jobs retornados.PROJECT_ID
: o ID do projeto que contém os jobs que você está listando. Se você definir um projeto padrão, não será necessário fornecer o parâmetroPROJECT_ID
.
Exemplos
O comando a seguir lista todos os jobs do usuário atual. A execução deste comando requer permissões bigquery.jobs.list
.
bq ls --jobs=true myproject
O comando a seguir lista todos os jobs de todos os usuários. A execução deste comando requer permissões bigquery.jobs.listAll
.
bq ls --jobs=true --all=true myproject
O comando a seguir lista os 10 jobs mais recentes em myproject
:
bq ls --jobs=true --all=true --max_results=10 myproject
O comando a seguir lista todos os jobs enviados antes de 3 de março de 2032 às 4:04:00. Esse carimbo de data/hora (em milissegundos) é equivalente ao seguinte valor inteiro: 1961899440000
.
bq ls --jobs=true --max_creation_time=1961899440000
API
Chame jobs.list e forneça o parâmetro projectId
. Para listar jobs para todos os usuários, configure o parâmetro allUsers
como true
. Configurar allUsers
como true
requer permissões bigquery.jobs.listAll
.
Go
Antes de testar esta amostra, siga as instruções de configuração do Go no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Go.
Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
Java
Antes de testar esta amostra, siga as instruções de configuração do Java no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Java.
Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
Node.js
Antes de testar esta amostra, siga as instruções de configuração do Node.js no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Node.js.
Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
Python
Antes de testar esta amostra, siga as instruções de configuração do Python no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Python.
Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
Cancelar um job
É possível cancelar um job RUNNING
ou PENDING
.
Geralmente, leva menos de um minuto para concluir um cancelamento de job.
Mesmo que o job possa ser cancelado, o sucesso não é garantido. O job pode ter sido concluído no momento em que a solicitação de cancelamento foi enviada ou estar em uma etapa em que não pode ser cancelado.
Para cancelar um job, siga estas etapas:
Console
Acessar a página do BigQuery.
Clique em Escrever nova consulta e faça a consulta.
Para executar a consulta, clique em Executar.
Para cancelar um job, clique em Cancelar.
SQL
Use o procedimento de sistema BQ.JOBS.CANCEL
:
CALL BQ.JOBS.CANCEL('JOB_ID');
Substitua JOB_ID pelo ID do job que você está cancelando.
Se você estiver em um projeto diferente, mas na mesma região do job que quer cancelar, inclua também o ID do projeto:
CALL BQ.JOBS.CANCEL('PROJECT_ID.JOB_ID');
Substitua:
PROJECT_ID
: o ID do projeto que contém o job que você está cancelandoJOB_ID
é o código do job que você está cancelando.
O procedimento retorna imediatamente, e o BigQuery cancela o job logo depois. Se o job já foi concluído ou falhou, o procedimento não tem efeito.
bq
Emita o comando bq cancel
com o argumento JOB_ID
. É possível solicitar
o cancelamento e retornar imediatamente usando a sinalização --nosync=true
. Por
padrão, as solicitações de cancelamento aguardam a conclusão.
Quando você fornece o argumento JOB_ID
,
é possível usar o ID totalmente qualificado ou a forma
abreviada. Por exemplo, os IDs de jobs listados no console do Google Cloud são totalmente
qualificados, ou seja, incluem o projeto e o local:
my-project-1234:US.bquijob_123x456_123y123z123c
Os IDs dos jobs na ferramenta de linha de comando bq são listados usando a forma abreviada e não incluem o ID e o local do projeto:
bquijob_123x456_123y123z123c
Para especificar o local do job, forneça a sinalização --location
e defina o valor
do local. Essa sinalização é opcional,
caso seja usado o ID do job totalmente qualificado. Se você incluir a sinalização --location
e estiver usando o ID do job totalmente qualificado, a sinalização --location
será
ignorada.
Com o comando a seguir, você solicita o cancelamento do job e aguarda a conclusão: Se
o ID do job totalmente qualificado for fornecido, a sinalização --location
será ignorada:
bq --location=LOCATION cancel JOB_ID
O cancelamento do job é solicitado com o comando a seguir, com retorno imediato. Se
o ID do job totalmente qualificado for fornecido, a sinalização --location
será ignorada:
bq --location=LOCATION --nosync cancel JOB_ID
Substitua:
LOCATION
(opcional): o nome do local em que o job é executado. Por exemplo, se você estiver usando o BigQuery na região de Tóquio, defina o valor da sinalização comoasia-northeast1
. É possível definir um valor padrão para o local usando o arquivo.bigqueryrc
.JOB_ID
é o código do job que você está cancelando. Se você copiar o ID do job do console do Google Cloud, o ID e o local do projeto serão incluídos nele. Por exemplo,my-project-1234:US.bquijob_123x456_123y123z123c
.
Exemplos
O comando a seguir cancela o job
my-project-1234:US.bquijob_123x456_123y123z123c
em execução na
multirregião US
no projeto my-project-1234
e aguarda
a conclusão. Como o ID do job que está sendo usado é totalmente qualificado, a sinalização de local
não é fornecida.
bq cancel my-project-1234:US.bquijob_123x456_123y123z123c
O comando a seguir cancela o job bquijob_123x456_123y123z123c
em execução na
localização multirregional US
no projeto my-project-1234
e
aguarda a conclusão. Como a forma do ID do job que está sendo usada é abreviada, a sinalização --location
é fornecida.
bq --location=US cancel bquijob_123x456_123y123z123c
O comando a seguir cancela o job bquijob_123x456_123y123z123c
em execução
na multirregião US
no projeto my-project-1234
e retorna imediatamente.
Como o código do job que está sendo usado é totalmente qualificado, a sinalização --location
não é fornecida.
bq --nosync cancel my-project-1234:US.bquijob_123x456_123y123z123c
API
Chame jobs.cancel e forneça os parâmetros jobId
e projectId
. Insira o parâmetro location
e defina o valor do local em que o job é executado.
Go
Antes de testar esta amostra, siga as instruções de configuração do Go no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Go.
Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
Java
Antes de testar esta amostra, siga as instruções de configuração do Java no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Java.
Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
Node.js
Antes de testar esta amostra, siga as instruções de configuração do Node.js no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Node.js.
Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
Python
Antes de testar esta amostra, siga as instruções de configuração do Python no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Python.
Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
Excluir metadados do job
É possível excluir os metadados de um job específico usando a ferramenta de linha de comando bq e a biblioteca de cliente do Python. O BigQuery preserva um histórico de jobs executados nos últimos seis meses. Use esse método para remover informações confidenciais que podem estar presentes nas instruções de consulta. Os metadados do job só podem ser excluídos após a conclusão. Se um job tiver criado jobs filho, eles também serão excluídos. Não é permitida a exclusão de jobs filhos. Somente jobs pai ou de nível superior podem ser excluídos.
Para excluir metadados de jobs, siga estas etapas:
bq
Emita o comando bq rm
com a sinalização -j
e um ID de job.
Quando você fornece o ID do job, é possível usar o ID totalmente qualificado ou a forma abreviada. Por exemplo, os IDs de jobs listados no console do Google Cloud são totalmente qualificados, ou seja, incluem o projeto e o local:
my-project-1234:US.bquijob_123x456_123y123z123c
Os IDs dos jobs na ferramenta de linha de comando bq são listados usando a forma abreviada e não incluem o ID e o local do projeto.
bquijob_123x456_123y123z123c
Para especificar o local do job, forneça a sinalização --location
e defina o valor
do local. Essa sinalização é opcional,
caso seja usado o ID do job totalmente qualificado. Se você incluir a sinalização --location
e estiver usando o ID do job totalmente qualificado, a sinalização --location
será
ignorada.
O comando a seguir exclui um job:
bq --location=location \ --project_id=project_id \ rm -j job_id
Python
Antes de testar esta amostra, siga as instruções de configuração do Python no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Python.
Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
Repetir jobs
Não é possível repetir um job usando o mesmo ID. Em vez disso, crie um novo job com a mesma configuração. Quando você envia o novo job no console do Google Cloud ou na ferramenta de linha de comando bq, um novo ID do job é atribuído. Quando você envia o job usando a API ou bibliotecas de cliente, é necessário gerar um novo código de job.
Para repetir um job, siga estas etapas:
Console
Para repetir um job de consulta, siga estas etapas:
Acessar a página do BigQuery.
Abra o painel Histórico de jobs.
Para listar seus jobs, clique em Histórico pessoal. Para listar todos os jobs de um projeto, clique em Histórico do projeto.
Clique em um job de consulta para abrir os detalhes dele.
Para repetir uma consulta, clique em Abrir como nova consulta.
Clique em Executar.
Para repetir um job de carregamento, faça o seguinte:
Acessar a página do BigQuery.
Abra o painel Histórico de jobs.
Para listar seus jobs, clique em Histórico pessoal. Para listar todos os jobs de um projeto, clique em Histórico do projeto.
Clique em um job de carregamento para abrir os detalhes dele.
Para repetir um job, clique em Repetir job de carregamento.
bq
Emita o comando novamente, e o BigQuery gera automaticamente um job com um novo ID.
API
Não há um método de chamada única para repetir um job. Para fazer isso:
Chame
jobs.get
para recuperar o recurso e executar o job novamente.Remova os campos id, status e statistics. Altere o campo jobId para um novo valor gerado pelo código de cliente. Altere outros campos, conforme necessário;
Para iniciar o novo job, chame
jobs.insert
com o recurso modificado e o novo ID do job.
A seguir
- Saiba como executar jobs de maneira programática.