Ao executar uma consulta na ferramenta de linha de comando bq
, é possível usar a sinalização --dry_run
para estimar
o número de bytes lidos pela consulta. Utilize também o parâmetro dryRun
ao enviar um job de consulta por meio da API ou das bibliotecas de cliente.
Use a estimativa retornada para calcular os custos da consulta na calculadora de preços. Você não será cobrado pela execução dessa simulação.
Permissões necessárias
Para executar um job de consulta, é necessário ter, no mínimo, as permissões bigquery.jobs.create
. Para que esse job seja concluído com sucesso, você também precisa ter acesso às tabelas ou visualizações referenciadas pela consulta. O acesso às tabelas ou visualizações pode ser concedido nos seguintes níveis, listados em ordem de intervalo de recursos permitidos (do maior para o menor):
- em um alto nível na hierarquia de recursos do Google Cloud, como projeto, pasta ou organização
- no nível do conjunto de dados.
- no nível da tabela
Os seguintes papéis predefinidos do IAM incluem as permissões bigquery.jobs.create
:
bigquery.user
bigquery.jobUser
bigquery.admin
Além disso, se um usuário tiver permissões bigquery.datasets.create
ao criar um conjunto de dados, será concedido o acesso bigquery.dataOwner
.
O acesso bigquery.dataOwner
permite que o usuário consulte tabelas e visualizações no conjunto de dados.
Para mais informações sobre os papéis do IAM no BigQuery, consulte Papéis e permissões predefinidos.
Como executar simulações
Para executar uma simulação relacionada a um job de consulta:
- a sinalização
--dry_run
com o comandoquery
na ferramenta de linha de comandobq
; - use o parâmetro
dryRun
na configuração do job quando utilizar a API ou as bibliotecas de cliente.
Como executar uma simulação
Para executar uma simulação:
Console
No momento, não é possível executar uma simulação usando o Console do Cloud.
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'
O comando gera a resposta a seguir:
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 essa amostra, siga as instruções de configuração para 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.
Java
Antes de testar essa amostra, siga as instruções de configuração para 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.
Python
Para executar uma simulação usando a biblioteca de cliente em Python, configure 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 essa amostra, siga as instruções de configuração para 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.