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 jobs de consulta interativos (sob demanda) o mais rápido possível.
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.
Jobs de consulta em lote. Com esses jobs, o BigQuery coloca em fila cada consulta em lote em seu nome e inicia a consulta quando os recursos inativos estão disponíveis, geralmente em alguns minutos.
É possível executar jobs de consulta usando os seguintes métodos:
- Escreva e execute uma consulta no Console do Google 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.
Por padrão, o BigQuery executa suas consultas como jobs de consulta interativos, que são executados o mais rápido possível. O BigQuery calcula dinamicamente o limite de consultas simultâneas com base na disponibilidade de recursos e favorece a execução de mais consultas interativas simultâneas do que consultas em lote. Quando você atinge o limite de consultas simultâneas, outras consultas aguardam em uma fila. Para mais informações, consulte filas de consulta.
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
Criar uma nova consulta.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: especifique a tabela de destino e a localização para os resultados da consulta:
- No editor de consultas, clique em Mais e, em seguida, em Configurações de consulta.
- Na seção Destino, marque Definir uma tabela de destino para os resultados da consulta.
- Em Conjunto de dados, insira o nome de um conjunto de dados para a
tabela de destino, por exemplo,
myProject.myDataset
. - Em ID da tabela, insira um nome para a tabela de destino, por exemplo,
myTable
. Se a tabela de destino for uma tabela, em Preferência de gravação na tabela de destino, selecione se quer adicionar ao final ou substituir a tabela com os resultados da consulta.
Se a tabela de destino for uma nova tabela, o BigQuery a criará quando você executar a consulta.
Na seção Configurações adicionais, clique no menu Local dos dados e selecione uma opção.
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.Clique em Save.
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. Suporte a dimensões
INTEGER
,INT64
,FLOAT
FLOAT64
,NUMERIC
,BIGNUMERIC
,TIMESTAMP
,DATE
,DATETIME
eTIME
e tipos de dadosSTRING
, enquanto as medidas dão suporte a tipos de dadosINTEGER
,INT64
,FLOAT
,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 projeto do Google 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 (cache).
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 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.
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
Criar uma nova consulta.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: especifique a tabela de destino e a localização para os resultados da consulta:
- Na seção Destino, marque Definir uma tabela de destino para os resultados da consulta.
- Em Conjunto de dados, insira o nome de um conjunto de dados para a
tabela de destino, por exemplo,
myProject.myDataset
. - Em ID da tabela, insira um nome para a tabela de destino, por exemplo,
myTable
. Se a tabela de destino for uma tabela, em Preferência de gravação na tabela de destino, selecione se quer adicionar ao final ou substituir a tabela com os resultados da consulta.
Se a tabela de destino for uma nova tabela, o BigQuery a criará quando você executar a consulta.
Na seção Configurações adicionais, clique no menu Local dos dados e selecione uma opção.
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.
Clique em Save.
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).
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. Suporte a dimensões
INTEGER
,INT64
,FLOAT
FLOAT64
,NUMERIC
,BIGNUMERIC
,TIMESTAMP
,DATE
,DATETIME
eTIME
e tipos de dadosSTRING
, enquanto as medidas dão suporte a tipos de dadosINTEGER
,INT64
,FLOAT
,FLOAT64
,NUMERIC
eBIGNUMERIC
.
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 projeto do Google 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 (cache).
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.
Modo otimizado de consulta curta
O modo otimizado para consultas curtas tem como objetivo melhorar a latência geral de consultas curtas, que são comuns em cargas de trabalho, como painéis ou análise de dados. Ele
executa a consulta e retorna os resultados inline para instruções SELECT
.
As consultas que usam o modo otimizado de consulta curta 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 otimizado de consulta curta, 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 novo modo otimizado
de consulta curta. 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 consultas curtas.
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.
Ao usar o valor JOB_CREATION_OPTIONAL
, não presuma que o campo jobReference
está sempre presente na resposta. Verifique se o
campo existe antes de acessá-lo.
O modo otimizado de consulta curta também inclui um cache de resultados de consulta que melhora o
desempenho de consultas repetidas quando os dados subjacentes não mudam. Quando você especifica useQueryCache: true
(o valor padrão é true
, se não for especificado) e jobCreationMode: JOB_CREATION_OPTIONAL
em QueryRequest
, o BigQuery tenta exibir os resultados do cache. O
armazenamento em cache é feito da melhor forma possível.
Para executar uma consulta usando o modo otimizado de consulta curta, 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 Consulta curta otimizada em Escolher modo de consulta. Clique em CONFIRMAR para confirmar a escolha.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 consulta curta 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 jobRefernence
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.37.1 e mais recentes
Requer a definição da variável de ambiente QUERY_PREVIEW_ENABLED=true
.
Exemplo: Linux ou macOS
export QUERY_PREVIEW_ENABLED=TRUE
Exemplo: Windows
$env:QUERY_PREVIEW_ENABLED=TRUE
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.21.0 e mais recentes
Requer a definição da variável de ambiente QUERY_PREVIEW_ENABLED=true
.
Exemplo: Linux ou macOS
export QUERY_PREVIEW_ENABLED=TRUE
Exemplo: Windows
$env:QUERY_PREVIEW_ENABLED=TRUE
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: 7.6.1 e mais recentes
Requer a definição da variável de ambiente QUERY_PREVIEW_ENABLED=true
.
Exemplo: Linux ou macOS
export QUERY_PREVIEW_ENABLED=TRUE
Exemplo: Windows
$env:QUERY_PREVIEW_ENABLED=TRUE
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.58.0 e mais recentes
Requer a definição da variável de ambiente QUERY_PREVIEW_ENABLED=true
.
Exemplo: Linux ou macOS
export QUERY_PREVIEW_ENABLED=TRUE
Exemplo: Windows
$env:QUERY_PREVIEW_ENABLED=TRUE
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
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;
Cotas
Para informações sobre cotas relacionadas a consultas interativas e em lote, consulte Jobs de consulta.
Conferir o número de consultas interativas e em lote
É possível conferir o número de consultas interativas e em lote usando a visualização INFORMATION_SCHEMA.JOBS_BY_PROJECT
.
O exemplo a seguir usa a visualização INFORMATION_SCHEMA.JOBS_BY_PROJECT
para conferir o número de consultas interativas e em lote que foram executadas nas últimas sete horas:
SELECT
priority,
COUNT(*) active_jobs,
FROM
`region-us`.INFORMATION_SCHEMA.JOBS_BY_PROJECT
WHERE
creation_time > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 7 hour)
AND end_time IS NULL
AND job_type = 'QUERY'
GROUP BY priority
A visualização INFORMATION_SCHEMA.JOBS_BY_PROJECT
usa o campo priority
para indicar se uma consulta é INTERACTIVE
ou BATCH
. Para mais informações, consulte
Esquema.
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.