Executar uma consulta
Neste documento, mostramos como executar uma consulta no BigQuery e entender quantos dados a consulta processará antes da execução por meio de uma simulação.
Tipos de consultas
Você pode consultar dados do BigQuery usando um dos seguintes tipos de job de consulta:
Jobs de consulta interativos. Por padrão, o BigQuery executa consultas como jobs de consulta interativa, que devem começar a ser executados o mais rápido possível.
Jobs de consulta em lote. As consultas em lote têm prioridade menor do que as consultas interativas. Quando um projeto ou reserva está usando todos os recursos de computação disponíveis, é mais provável que as consultas em lote sejam colocadas na fila e permaneçam nela. Depois que uma consulta em lote começa a ser executada, ela é executada da mesma forma que uma consulta interativa. Para mais informações, consulte filas de consulta.
Jobs de consulta contínua (Prévia). Com esses jobs, a consulta é executada continuamente, para que você analise os dados de entrada no BigQuery em tempo real e gravar resultados para uma tabela do BigQuery ou exportar os resultados para Bigtable ou Pub/Sub. Use esse recurso para realizar tarefas urgentes, como criar e agir imediatamente insights, aplicando inferências de machine learning (ML) em tempo real e criar pipelines de dados orientados por eventos.
É possível executar jobs de consulta usando os seguintes métodos:
- Escreva e execute uma consulta no console doGoogle Cloud .
- Execute o comando
bq query
na ferramenta de linha de comando bq. - Chame o método
jobs.query
oujobs.insert
de maneira programática na API REST do BigQuery. - Use as bibliotecas de cliente do BigQuery.
O BigQuery salva os resultados da consulta em uma tabela temporária (padrão) ou permanente. Ao especificar uma tabela permanente como de destino para os resultados, você pode escolher adicionar ao final ou substituir uma tabela existente ou criar uma nova tabela com um nome exclusivo.
Funções exigidas
Para receber as permissões necessárias para executar um job de consulta, peça ao administrador para conceder a você os seguintes papéis do IAM:
-
Usuário de jobs do BigQuery (
roles/bigquery.jobUser
) no projeto. -
Leitor de dados do BigQuery (
roles/bigquery.dataViewer
) em todas as tabelas e visualizações referenciadas pela sua consulta. Para consultar visualizações, você também precisa desse papel em todas as tabelas e visualizações subjacentes. Se você estiver usando visualizações autorizadas ou conjuntos de dados autorizados, não será necessário ter acesso aos dados de origem subjacentes.
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 um job de consulta. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:
Permissões necessárias
As permissões a seguir são necessárias para executar um job de consulta:
-
bigquery.jobs.create
no projeto em que a consulta está sendo executada, independentemente de onde os dados são armazenados. -
bigquery.tables.getData
em todas as tabelas e visualizações referenciadas pela sua consulta. Para consultar visualizações, você também precisa dessa permissão em todas as tabelas e visualizações subjacentes. Se você estiver usando visualizações autorizadas ou conjuntos de dados autorizados, não será necessário ter acesso aos dados de origem subjacentes.
Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.
Solução de problemas
Access Denied: Project [project_id]: User does not have bigquery.jobs.create
permission in project [project_id].
Esse erro ocorre quando um titular não tem permissão para criar jobs de consulta no projeto.
Solução: um administrador precisa conceder a permissão bigquery.jobs.create
no projeto que você está consultando. Essa permissão é necessária além de quaisquer permissões necessárias para acessar os dados consultados.
Para mais informações sobre as permissões do BigQuery, consulte Controle de acesso com o IAM.
Executar uma consulta interativa
Para executar uma consulta interativa, selecione uma das seguintes opções:
Console
Acessar a página do BigQuery.
Clique em
Consulta SQL.No editor de consultas, insira uma consulta válida do GoogleSQL.
Por exemplo, consulte o conjunto de dados públicos do BigQuery
usa_names
para determinar os nomes mais comuns nos Estados Unidos entre os anos de 1910 e 2013:SELECT name, gender, SUM(number) AS total FROM `bigquery-public-data.usa_names.usa_1910_2013` GROUP BY name, gender ORDER BY total DESC LIMIT 10;
Opcional: para selecionar outras configurações de consulta, clique em Mais e, em seguida, em Configurações de consulta.
Clique em
Executar.Se você não especificar uma tabela de destino, o job de consulta gravará a saída em uma tabela temporária (cache).
Agora é possível conferir os resultados da consulta na guia Resultados do painel Resultados da consulta.
Opcional: para classificar os resultados por coluna, clique em
Abrir menu de classificação ao lado do nome da coluna e selecione uma ordem de classificação. Se o número estimado de bytes processados para a classificação for maior do que zero, o número de bytes será exibido na parte de cima do menu.Opcional: para acessar a visualização dos resultados da consulta, acesse a guia Gráfico (visualização). É possível aumentar ou diminuir o zoom do gráfico, fazer o download dele como um arquivo PNG ou alternar a visibilidade da legenda.
No painel Configuração do gráfico, você pode mudar o tipo de gráfico (linha ou barra) e configurar as medidas e dimensões dele. Os campos nesse painel são preenchidos automaticamente com a configuração inicial inferida do esquema da tabela de destino da consulta. A configuração é preservada entre as seguintes execuções de consulta no mesmo editor de consultas. As dimensões oferecem suporte a
INT64
,FLOAT64
,NUMERIC
,BIGNUMERIC
,TIMESTAMP
,DATE
,DATETIME
,TIME
e tipos de dadosSTRING
, enquanto as medidas oferecem suporte aINT64
,FLOAT64
,NUMERIC
eBIGNUMERIC
.Opcional: na guia JSON, é possível analisar os resultados da consulta no formato JSON, em que a chave é o nome da coluna e o valor é o resultado dessa coluna.
bq
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Use o comando
bq query
. No exemplo a seguir, a sinalização--use_legacy_sql=false
permite usar a sintaxe do GoogleSQL.bq query \ --use_legacy_sql=false \ 'QUERY'
Substitua QUERY por uma consulta válida do GoogleSQL. Por exemplo, consulte o conjunto de dados públicos do BigQuery
usa_names
para determinar os nomes mais comuns nos Estados Unidos entre os anos de 1910 e 2013:bq query \ --use_legacy_sql=false \ 'SELECT name, gender, SUM(number) AS total FROM `bigquery-public-data.usa_names.usa_1910_2013` GROUP BY name, gender ORDER BY total DESC LIMIT 10;'
O job de consulta grava a saída em uma tabela temporária (cache).
Também é possível especificar a tabela de destino e o local para os resultados da consulta. Para gravar os resultados em uma tabela existente, inclua a sinalização apropriada para adicionar ao final (
--append_table=true
) ou substituir (--replace=true
) a tabela.bq query \ --location=LOCATION \ --destination_table=TABLE \ --use_legacy_sql=false \ 'QUERY'
Substitua:
LOCATION: a região ou a multirregião da tabela de destino, por exemplo,
US
Neste exemplo, o conjunto de dados
usa_names
é armazenado no local multirregional EUA. Se você especificar uma tabela de destino para essa consulta, o conjunto de dados que contém a tabela de destino também precisará estar na multirregião dos EUA. Não é possível consultar um conjunto de dados em um local e gravar os resultados em uma tabela de destino em outro local.É possível definir um valor padrão para o local usando o arquivo .bigqueryrc;
TABLE: um nome para a tabela de destino, por exemplo,
myDataset.myTable
Se a tabela de destino for uma nova tabela, o BigQuery a criará ao executar a consulta. No entanto, é necessário especificar um conjunto de dados atual.
Se a tabela não estiver no projeto atual, adicione o ID do projetoGoogle Cloud usando o formato
PROJECT_ID:DATASET.TABLE
. Por exemplo,myProject:myDataset.myTable
. Se--destination_table
não for especificado, será gerado um job de consulta que grava a saída em uma tabela temporária.
API
Para executar uma consulta usando a API, insira um novo job e preencha a propriedade de configuração do job query
. (Opcional) Especifique o local na propriedade location
na seção jobReference
do recurso do job.
Pesquise os resultados chamando getQueryResults
.
Pesquisar até jobComplete
igual a true
. Verifique se há erros e avisos na lista errors
.
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.
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.
Para executar uma consulta com um proxy, consulte Como configurar um proxy.
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.
PHP
Antes de testar esta amostra, siga as instruções de configuração do PHP 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 PHP.
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.
Ruby
Antes de testar esta amostra, siga as instruções de configuração do Ruby 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 Ruby.
Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
Executar uma consulta em lote
Para executar uma consulta em lote, selecione uma das seguintes opções:
Console
Acessar a página do BigQuery.
Clique em
Consulta SQL.No editor de consultas, insira uma consulta válida do GoogleSQL.
Por exemplo, consulte o conjunto de dados públicos do BigQuery
usa_names
para determinar os nomes mais comuns nos Estados Unidos entre os anos de 1910 e 2013:SELECT name, gender, SUM(number) AS total FROM `bigquery-public-data.usa_names.usa_1910_2013` GROUP BY name, gender ORDER BY total DESC LIMIT 10;
Clique em
Mais e, depois, em Configurações de consulta.Na seção Gerenciamento de recursos, selecione Batch.
Opcional: ajuste as configurações da consulta.
Clique em Salvar.
Clique em
Executar.Se você não especificar uma tabela de destino, o job de consulta gravará a saída em uma tabela temporária (cache).
bq
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Use o comando
bq query
e especifique a sinalização--batch
. No exemplo a seguir, a sinalização--use_legacy_sql=false
permite usar a sintaxe GoogleSQL.bq query \ --batch \ --use_legacy_sql=false \ 'QUERY'
Substitua QUERY por uma consulta válida do GoogleSQL. Por exemplo, consulte o conjunto de dados públicos do BigQuery
usa_names
para determinar os nomes mais comuns nos Estados Unidos entre os anos de 1910 e 2013:bq query \ --batch \ --use_legacy_sql=false \ 'SELECT name, gender, SUM(number) AS total FROM `bigquery-public-data.usa_names.usa_1910_2013` GROUP BY name, gender ORDER BY total DESC LIMIT 10;'
O job de consulta grava a saída em uma tabela temporária (cache).
Também é possível especificar a tabela de destino e o local para os resultados da consulta. Para gravar os resultados em uma tabela existente, inclua a sinalização apropriada para adicionar ao final (
--append_table=true
) ou substituir (--replace=true
) a tabela.bq query \ --batch \ --location=LOCATION \ --destination_table=TABLE \ --use_legacy_sql=false \ 'QUERY'
Substitua:
LOCATION: a região ou a multirregião da tabela de destino, por exemplo,
US
Neste exemplo, o conjunto de dados
usa_names
é armazenado no local multirregional EUA. Se você especificar uma tabela de destino para essa consulta, o conjunto de dados que contém a tabela de destino também precisará estar na multirregião dos EUA. Não é possível consultar um conjunto de dados em um local e gravar os resultados em uma tabela de destino em outro local.É possível definir um valor padrão para o local usando o arquivo .bigqueryrc;
TABLE: um nome para a tabela de destino, por exemplo,
myDataset.myTable
Se a tabela de destino for uma nova tabela, o BigQuery a criará ao executar a consulta. No entanto, é necessário especificar um conjunto de dados atual.
Se a tabela não estiver no projeto atual, adicione o ID do projetoGoogle Cloud usando o formato
PROJECT_ID:DATASET.TABLE
. Por exemplo,myProject:myDataset.myTable
. Se--destination_table
não for especificado, será gerado um job de consulta que grava a saída em uma tabela temporária.
API
Para executar uma consulta usando a API, insira um novo job e preencha a propriedade de configuração do job query
. (Opcional) Especifique o local na propriedade location
na seção jobReference
do recurso do job.
Ao preencher as propriedades do job de consulta, inclua a
propriedade configuration.query.priority
e defina o valor como BATCH
.
Pesquise os resultados chamando getQueryResults
.
Pesquisar até jobComplete
igual a true
. Verifique se há erros e avisos na lista errors
.
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
Para executar uma consulta em lote, defina a prioridade de consulta como QueryJobConfiguration.Priority.BATCH ao criar uma QueryJobConfiguration.
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.
Executar uma consulta contínua
A execução de um job de consulta contínua requer uma configuração extra. Para mais informações, consulte Criar consultas contínuas.
Configurações de consulta
Ao executar uma consulta, você pode especificar as seguintes configurações:
Uma tabela de destino para os resultados da consulta.
A prioridade do job.
Se é necessário usar resultados de consulta armazenados em cache.
Tempo limite do job em milissegundos.
Indica se o modo de sessão será usado.
O tipo de criptografia a ser usado.
O número máximo de bytes faturados para a consulta.
O dialeto do SQL a ser usado.
O local em que a consulta será executada. A consulta precisa ser executada no mesmo local que as tabelas referenciadas.
A reserva para executar sua consulta em (Visualização).
Modo opcional de criação de jobs
O modo opcional de criação de jobs (antigo modo otimizado para consultas curtas) pode melhorar a
latência geral de consultas executadas por um curto período, como as de
painéis ou cargas de trabalho de análise de dados. Esse modo executa a consulta e
retorna os resultados inline para instruções SELECT
sem exigir o uso de
jobs.getQueryResults
para buscar os resultados. As consultas que usam o modo opcional de criação de jobs não criam um job quando são executadas, a menos que o BigQuery determine que a criação de um job é necessária para concluir a consulta.
Para ativar o modo opcional de criação de jobs, defina o campo jobCreationMode
da instância
QueryRequest
como JOB_CREATION_OPTIONAL
no corpo da solicitação
jobs.query
.
Quando o valor desse campo é definido como JOB_CREATION_OPTIONAL
,
o BigQuery determina se a consulta pode usar o modo opcional de criação de jobs. Nesse caso, o BigQuery executa a consulta e retorna
todos os resultados no campo rows
da resposta. Como nenhum job foi criado para
essa consulta, o BigQuery não retorna um jobReference
no
corpo da resposta. Em vez disso, ele retorna um campo queryId
, que pode ser usado para receber
insights sobre a consulta usando a visualização
INFORMATION_SCHEMA.JOBS
. Como nenhum job é criado, não há jobReference
que possa ser transmitido para as APIs jobs.get
e jobs.getQueryResults
para pesquisar essas consultas.
Se o BigQuery determinar que um job é necessário para concluir a consulta, um jobReference
será retornado. É possível inspecionar o campo job_creation_reason
na visualização
INFORMATION_SCHEMA.JOBS
para determinar
o motivo da criação de um job para a consulta. Nesse caso, use
jobs.getQueryResults
para buscar os resultados quando a consulta for concluída.
Quando você usa o valor JOB_CREATION_OPTIONAL
, o campo jobReference
pode
não estar presente na resposta. Verifique se o campo existe antes de acessá-lo.
Quando JOB_CREATION_OPTIONAL
é especificado para consultas de várias instruções (scripts),
o BigQuery pode otimizar o processo de execução. Como parte dessa
otimização, o BigQuery pode determinar que pode concluir o
script criando menos recursos de job do que o número de instruções individuais,
talvez até executando o script inteiro sem criar nenhum job.
Essa otimização depende da avaliação do script pelo BigQuery, e a
otimização pode não ser aplicada em todos os casos. A otimização é totalmente
automatizada pelo sistema. Não são necessários controles ou ações do usuário.
Para executar uma consulta usando o modo opcional de criação de jobs, selecione uma das seguintes opções:
Console
Acessar a página do BigQuery.
Clique em
Consulta SQL.No editor de consultas, insira uma consulta válida do GoogleSQL.
Por exemplo, consulte o conjunto de dados públicos do BigQuery
usa_names
para determinar os nomes mais comuns nos Estados Unidos entre os anos de 1910 e 2013:SELECT name, gender, SUM(number) AS total FROM `bigquery-public-data.usa_names.usa_1910_2013` GROUP BY name, gender ORDER BY total DESC LIMIT 10;
Clique em
Mais e escolha o modo de consulta Criação de job opcional. Para confirmar essa escolha, clique em Confirmar.Clique em
Executar.
bq
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Use o comando
bq query
e especifique a sinalização--job_creation_mode=JOB_CREATION_OPTIONAL
. No exemplo a seguir, a sinalização--use_legacy_sql=false
permite usar a sintaxe GoogleSQL.bq query \ --rpc=true \ --use_legacy_sql=false \ --job_creation_mode=JOB_CREATION_OPTIONAL \ --location=LOCATION \ 'QUERY'
Substitua QUERY por uma consulta válida do GoogleSQL e LOCATION por uma região válida onde o conjunto de dados está localizado. Por exemplo, consulte o conjunto de dados públicos do BigQuery
usa_names
para determinar os nomes mais comuns nos Estados Unidos entre os anos de 1910 e 2013:bq query \ --rpc=true \ --use_legacy_sql=false \ --job_creation_mode=JOB_CREATION_OPTIONAL \ --location=us \ 'SELECT name, gender, SUM(number) AS total FROM `bigquery-public-data.usa_names.usa_1910_2013` GROUP BY name, gender ORDER BY total DESC LIMIT 10;'
O job de consulta retorna a saída inline na resposta.
API
Para executar uma consulta no modo de criação de job opcional usando a API, execute uma consulta de forma síncrona
e preencha a propriedade QueryRequest
. Especifique a propriedade jobCreationMode
e defina o valor como JOB_CREATION_OPTIONAL
.
Verifique a resposta. Se jobComplete
for igual a true
e jobReference
estiver vazio, leia os resultados do campo rows
. Também é possível receber o queryId
da resposta.
Se jobReference
estiver presente, você poderá verificar em jobCreationReason
por que um job foi criado pelo BigQuery. Pesquise os resultados chamando
getQueryResults
.
Pesquisar até jobComplete
igual a true
. Verifique se há erros e avisos na lista
errors
.
Java
Versão disponível: 2.51.0 e mais recentes
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.
Para executar uma consulta com um proxy, consulte Como configurar um proxy.
Python
Versão disponível: 3.34.0 e mais recentes
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.
Nó
Versão disponível: 8.1.0 e mais recentes
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.
Go
Versão disponível: 1.69.0 e mais recentes
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.
Driver JDBC
Versão disponível: JDBC v1.6.1 e mais recentes
Exige a configuração de JobCreationMode=2
na string de conexão.
jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;JobCreationMode=2;Location=US;
Driver ODBC
Versão disponível: ODBC v3.0.7.1016 e mais recentes
Requer a configuração JobCreationMode=2
no arquivo .ini
.
[ODBC Data Sources] Sample DSN=Simba Google BigQuery ODBC Connector 64-bit [Sample DSN] JobCreationMode=2
Cotas
Para informações sobre cotas relacionadas a consultas interativas e em lote, consulte Jobs de consulta.
Monitorar consultas
É possível receber informações sobre consultas enquanto elas são executadas usando o
Explorer de jobs ou consultando a
visualização INFORMATION_SCHEMA.JOBS_BY_PROJECT
.
Simulação
Uma simulação no BigQuery fornece as seguintes informações:
- estimativa de cobranças no modo sob demanda
- validação da sua consulta
- bytes aproximados processados pela consulta no modo de capacidade
Simulações não usam slots de consulta, e você não é cobrado por realizar uma simulação. Use a estimativa retornada para calcular os custos da consulta na calculadora de preços.
Executar uma simulação
Para executar uma simulação, faça o seguinte:
Console
Acesse a página do BigQuery.
Digite a consulta no Editor de consultas.
Se a consulta for válida, uma marca de seleção será exibida junto com a quantidade de dados que serão processados pela consulta. Se a consulta for inválida, um ponto de exclamação será exibido com uma mensagem de erro.
bq
Insira uma consulta como a seguinte usando a sinalização --dry_run
.
bq query \ --use_legacy_sql=false \ --dry_run \ 'SELECT COUNTRY, AIRPORT, IATA FROM `project_id`.dataset.airports LIMIT 1000'
Para uma consulta válida, o comando produz a seguinte resposta:
Query successfully validated. Assuming the tables are not modified, running this query will process 10918 bytes of data.
API
Para executar uma simulação usando a API, envie um job de consulta com
dryRun
definido como true
no
tipo
JobConfiguration.
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.
PHP
Antes de testar esta amostra, siga as instruções de configuração do PHP 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 PHP.
Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
Python
Defina a propriedade QueryJobConfig.dry_run como True
.
Se uma configuração de consulta de simulação for fornecida,
Client.query()
sempre retornará um
QueryJob
concluído (links em inglês).
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.
A seguir
- Saiba como gerenciar jobs de consulta.
- Saiba como acessar o histórico de consultas.
- Saiba como salvar e compartilhar consultas.
- Saiba mais sobre filas de consulta.
- Saiba como gravar resultados de consulta.