Como executar jobs de maneira programática
Para executar um job do BigQuery com programação usando a API REST ou as bibliotecas de cliente, faça o seguinte:
- Chame o método
jobs.insert
. - Solicite periodicamente o recurso do job e examine a property do status para saber se o job foi concluído.
- Verifique se o job foi concluído com sucesso.
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.
Permissões necessárias
Para executar um job do BigQuery, você precisa da permissão do IAM bigquery.jobs.create
.
Cada um dos papéis predefinidos do IAM a seguir inclui as permissões necessárias para executar um job:
roles/bigquery.user
roles/bigquery.jobUser
roles/bigquery.admin
Além disso, ao criar um job, você recebe automaticamente as seguintes permissões para ele:
bigquery.jobs.get
bigquery.jobs.update
Para mais informações sobre papéis e permissões do IAM no BigQuery, consulte Papéis e permissões predefinidos.
Como executar jobs
Para executar um job de maneira programática:
Inicie o job chamando o método
jobs.insert
. Ao chamar o métodojobs.insert
, inclua uma representação de recurso de job.Na seção
configuration
do recurso do job, inclua uma property filha que especifique o tipo de job: —load
,query
,extract
, oucopy
.Depois de chamar o método
jobs.insert
, verifique o status do job chamandojobs.get
com o ID e o local do job. Depois, verifique o valorstatus.state
para saber o status do job. Quandostatus.state
forDONE
, a execução do job estará parada. No entanto, um statusDONE
não significa que o job foi concluído com êxito, apenas que ele não está mais em execução.Verifique o êxito do job. Se o job tiver uma property
errorResult
, ele falhou. A propertystatus.errorResult
contém informações que descrevem o que deu errado em um job que falhou. Se não houverstatus.errorResult
, o job foi concluído com êxito, embora talvez tenha havido alguns erros não fatais, como problemas na importação de algumas linhas em um job de carregamento. Erros não fatais são retornados na listastatus.errors
do job.
Como executar jobs usando bibliotecas de cliente
Para criar e executar um job usando as bibliotecas de cliente do Cloud para BigQuery:
C#
Antes de testar esta amostra, siga as instruções de configuração do C# 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 C#.
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.
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.
Como adicionar rótulos a jobs
Rótulos podem ser adicionados aos jobs de consulta pela linha de comando com a
sinalização --label
da ferramenta de linha de comando bq. A ferramenta bq permite a adição
de rótulos apenas aos jobs de consulta.
Quando um job é enviado pela API, é possível adicionar um rótulo a ele ao especificar
a property labels
na configuração do job quando você chamar o
método jobs.insert
. A API pode ser usada para adicionar rótulos a qualquer tipo de job.
Não é possível adicionar ou atualizar rótulos em jobs pendentes, em execução ou concluídos.
Ao adicionar um rótulo a um job, o rótulo é incluído nos seus dados de faturamento.
Para mais informações, consulte Como adicionar rótulos de job.
A seguir
- Consulte Como executar consultas para um exemplo de código que inicie e pesquise um job de consulta.
- Para mais informações sobre como criar uma representação de recurso do job, consulte a página Visão geral dos jobs na referência da API.