试运行查询

运行试运行查询。

深入探索

如需查看包含此代码示例的详细文档,请参阅以下内容:

代码示例

Go

试用此示例之前,请按照 BigQuery 快速入门:使用客户端库中的 Go 设置说明进行操作。 如需了解详情,请参阅 BigQuery Go API 参考文档

如需向 BigQuery 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证

import ( 	"context" 	"fmt" 	"io"  	"cloud.google.com/go/bigquery" )  // queryDryRun demonstrates issuing a dry run query to validate query structure and // provide an estimate of the bytes scanned. func queryDryRun(w io.Writer, projectID string) error { 	// projectID := "my-project-id" 	ctx := context.Background() 	client, err := bigquery.NewClient(ctx, projectID) 	if err != nil { 		return fmt.Errorf("bigquery.NewClient: %w", err) 	} 	defer client.Close()  	q := client.Query(` 	SELECT 		name, 		COUNT(*) as name_count 	FROM ` + "`bigquery-public-data.usa_names.usa_1910_2013`" + ` 	WHERE state = 'WA' 	GROUP BY name`) 	q.DryRun = true 	// Location must match that of the dataset(s) referenced in the query. 	q.Location = "US"  	job, err := q.Run(ctx) 	if err != nil { 		return err 	} 	// Dry run is not asynchronous, so get the latest status and statistics. 	status := job.LastStatus() 	if err := status.Err(); err != nil { 		return err 	} 	fmt.Fprintf(w, "This query will process %d bytes\n", status.Statistics.TotalBytesProcessed) 	return nil } 

Java

试用此示例之前,请按照 BigQuery 快速入门:使用客户端库中的 Java 设置说明进行操作。 如需了解详情,请参阅 BigQuery Java API 参考文档

如需向 BigQuery 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证

import com.google.cloud.bigquery.BigQuery; import com.google.cloud.bigquery.BigQueryException; import com.google.cloud.bigquery.BigQueryOptions; import com.google.cloud.bigquery.Job; import com.google.cloud.bigquery.JobInfo; import com.google.cloud.bigquery.JobStatistics; import com.google.cloud.bigquery.QueryJobConfiguration;  // Sample to run dry query on the table public class QueryDryRun {    public static void main(String[] args) {     String query =         "SELECT name, COUNT(*) as name_count "             + "FROM `bigquery-public-data.usa_names.usa_1910_2013` "             + "WHERE state = 'WA' "             + "GROUP BY name";     queryDryRun(query);   }    public static void queryDryRun(String query) {     try {       // Initialize client that will be used to send requests. This client only needs to be created       // once, and can be reused for multiple requests.       BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService();        QueryJobConfiguration queryConfig =           QueryJobConfiguration.newBuilder(query).setDryRun(true).setUseQueryCache(false).build();        Job job = bigquery.create(JobInfo.of(queryConfig));       JobStatistics.QueryStatistics statistics = job.getStatistics();        System.out.println(           "Query dry run performed successfully." + statistics.getTotalBytesProcessed());     } catch (BigQueryException e) {       System.out.println("Query not performed \n" + e.toString());     }   } }

Node.js

试用此示例之前,请按照 BigQuery 快速入门:使用客户端库中的 Node.js 设置说明进行操作。 如需了解详情,请参阅 BigQuery Node.js API 参考文档

如需向 BigQuery 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证

// Import the Google Cloud client library const {BigQuery} = require('@google-cloud/bigquery'); const bigquery = new BigQuery();  async function queryDryRun() {   // Runs a dry query of the U.S. given names dataset for the state of Texas.    const query = `SELECT name     FROM \`bigquery-public-data.usa_names.usa_1910_2013\`     WHERE state = 'TX'     LIMIT 100`;    // For all options, see https://cloud.google.com/bigquery/docs/reference/rest/v2/jobs/query   const options = {     query: query,     // Location must match that of the dataset(s) referenced in the query.     location: 'US',     dryRun: true,   };    // Run the query as a job   const [job] = await bigquery.createQueryJob(options);    // Print the status and statistics   console.log('Status:');   console.log(job.metadata.status);   console.log('\nJob Statistics:');   console.log(job.metadata.statistics); }

PHP

试用此示例之前,请按照 BigQuery 快速入门:使用客户端库中的 PHP 设置说明进行操作。 如需了解详情,请参阅 BigQuery PHP API 参考文档

如需向 BigQuery 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证

use Google\Cloud\BigQuery\BigQueryClient;  /**  * Dry runs the given query  *  * @param string $projectId The project Id of your Google Cloud Project.  * @param string $query The query to be run. For eg: $query = 'SELECT id, view_count FROM `bigquery-public-data.stackoverflow.posts_questions`'  */ function dry_run_query(string $projectId, string $query): void {     // Construct a BigQuery client object.     $bigQuery = new BigQueryClient([       'projectId' => $projectId,     ]);      // Set job configs     $jobConfig = $bigQuery->query($query);     $jobConfig->useQueryCache(false);     $jobConfig->dryRun(true);      // Extract query results     $queryJob = $bigQuery->startJob($jobConfig);     $info = $queryJob->info();      printf('This query will process %s bytes' . PHP_EOL, $info['statistics']['totalBytesProcessed']); }

Python

试用此示例之前,请按照 BigQuery 快速入门:使用客户端库中的 Python 设置说明进行操作。 如需了解详情,请参阅 BigQuery Python API 参考文档

如需向 BigQuery 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证

from google.cloud import bigquery  # Construct a BigQuery client object. client = bigquery.Client()  job_config = bigquery.QueryJobConfig(dry_run=True, use_query_cache=False)  # Start the query, passing in the extra configuration. query_job = client.query(     (         "SELECT name, COUNT(*) as name_count "         "FROM `bigquery-public-data.usa_names.usa_1910_2013` "         "WHERE state = 'WA' "         "GROUP BY name"     ),     job_config=job_config, )  # Make an API request.  # A dry run query completes immediately. print("This query will process {} bytes.".format(query_job.total_bytes_processed))

后续步骤

如需搜索和过滤其他 Google Cloud 产品的代码示例,请参阅Google Cloud 示例浏览器