在 CLI 中运行查询时,您可以使用 --dry_run
试运行标志来估算查询读取的字节数。在使用 API 或客户端库提交查询作业时,您还可以使用 dryRun
参数。
您可以使用试运行返回的估算值在价格计算器中计算查询费用。您不需要为执行试运行的操作支付费用。
所需权限
为运行查询作业,您至少必须具有 bigquery.jobs.create
权限。为成功完成查询作业,您还必须具有对包含查询引用的表或视图的数据集的访问权限。如需了解数据集访问权限控制,请参阅控制对数据集的访问权限。
以下预定义的 Cloud IAM 角色包含 bigquery.jobs.create
权限:
bigquery.user
bigquery.jobUser
bigquery.admin
此外,如果用户具有 bigquery.datasets.create
权限,则当该用户创建数据集时,系统会为其授予该数据集的 bigquery.dataOwner
访问权限。
借助 bigquery.dataOwner
访问权限,用户可以查询数据集中的表和视图。
如需详细了解 BigQuery 中的 Cloud IAM 角色,请参阅预定义的角色和权限。
执行试运行
您可以使用以下方法对查询作业执行试运行:
- CLI 中含
--dry_run
标志的query
命令 - 使用 API 或客户端库时在作业配置中设置
dryRun
参数
执行试运行
如需执行试运行,请执行以下操作:
控制台
目前,您无法使用 GCP Console 执行试运行。
经典版界面
目前,您无法使用网页界面执行试运行。
CLI
使用 --dry_run
标志输入如下所示的查询。
bq query \ --use_legacy_sql=false \ --dry_run \ 'SELECT COUNTRY, AIRPORT, IATA FROM `project_id`.dataset.airports LIMIT 1000'
该命令产生的响应如下所示:
Query successfully validated. Assuming the tables are not modified, running this query will process 10918 bytes of data.
API
如需使用 API 执行试运行,请提交一项查询作业,并在作业配置中将 dryRun
设置为 true
。
Go
试用此示例之前,请按照《BigQuery 快速入门:使用客户端库》中的 Go 设置说明进行操作。如需了解详情,请参阅 BigQuery Go API 参考文档。
Python
如需使用 Python 客户端库执行试运行,请将 QueryJobConfig.dry_run 属性设置为 True
。
如果提供了试运行查询配置,Client.query() 将始终返回完成的 QueryJob。
试用此示例之前,请按照《BigQuery 快速入门:使用客户端库》中的 Python 设置说明进行操作。如需了解详情,请参阅 BigQuery Python API 参考文档。