估算存储和查询费用

对于按需查询,我们会根据读取的字节数收费。如需了解当前的按需查询价格,请参阅价格页面。

要在运行查询之前估算费用,请使用以下方式:

  • Cloud Console 或经典版 BigQuery 网页界面中的查询验证器
  • CLI 中的 --dry_run 标志
  • dryRun 参数(使用 API 提交查询作业时)
  • Google Cloud 价格计算器
  • 客户端库

估算查询费用

估算查询费用的方法如下:

控制台

在 Cloud Console 中输入查询时,查询验证器会验证查询语法并估算读取的字节数。有了此估算值,您便可在价格计算器中计算查询费用。

查询验证器

经典版界面

在 Cloud Console 或经典版 BigQuery 网页界面中输入查询时,查询验证器会验证查询语法并估算读取的字节数。有了此估算值,您便可在价格计算器中计算查询费用。

查询验证器

CLI

在 CLI 中运行查询时,您可以使用 --dry_run 标志估算读取的字节数。有了此估算值,您便可在价格计算器中计算查询费用。

使用 --dry_run 标志的 CLI 查询如下所示:

bq query \
--use_legacy_sql=false \
--dry_run \
'SELECT
  column1,
  column2,
  column3
FROM
  `project_id.dataset.table`
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 参考文档

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: %v", 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 != nil {
		return err
	}
	fmt.Fprintf(w, "This query will process %d bytes\n", status.Statistics.TotalBytesProcessed)
	return nil
}

Node.js

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

// 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);
}

Python

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

要使用 Python 客户端库执行试运行,请将 QueryJobConfig.dry_run 属性设置为 True。如果提供了试运行查询配置,Client.query() 将始终返回完成的 QueryJob
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 价格计算器估算按需查询费用,请输入查询处理的字节数(以 B、KB、MB、GB、TB 或 PB 为单位)。 如果您的查询处理的数据量不足 1 TB,估算结果就是 $0,因为 BigQuery 每月免费提供 1 TB 的按需查询处理配额。

价格计算器

使用价格计算器估算查询费用的方法如下:

  1. 打开 Google Cloud 价格计算器
  2. 点击“BigQuery”。
  3. 点击按需标签页。
  4. 对于表名称,输入表的名称。例如 airports
  5. 对于存储价格 (Storage Pricing),在存储字段中输入 0
  6. 对于查询价格 (Query Pricing),输入通过试运行或查询验证器估算的读取字节数。计算器
  7. 点击添加到估算值 (Add To Estimate)。
  8. 估算值会显示在右侧。请注意,您可以保存估算值,也可以通过电子邮件发送估算值。按需计算器

在本例中,查询读取的字节数少于免费层级提供的 1 TB 按需处理配额。因此,估算费用为 $0。

在价格计算器中包含固定费率价格

如果您的结算帐号采用了固定费率价格,您可以点击固定费率标签页,选择您的固定费率方案,随后在估算设置中添加您的存储费用。

固定费率计算器

如需了解详情,请参阅固定费率价格

使用 Google Cloud 价格计算器估算存储费用

如需使用 Google Cloud 价格计算器估算存储费用,请输入存储的字节数(以 B、KB、MB、GB、TB 或 PB 为单位)。 BigQuery 每月提供 10 GB 的存储空间。

使用价格计算器估算存储费用的方法如下:

  1. 打开 Google Cloud 价格计算器
  2. 点击“BigQuery”。
  3. 点击按需标签页。
  4. 对于表名称,输入表的名称。例如 airports
  5. 对于存储价格 (Storage Pricing),在存储字段中输入 100。将计量单位设置保留为 GB
  6. 点击添加到估算 (Add To Estimate)。
  7. 估算值会显示在右侧。请注意,您可以保存估算值,也可以通过电子邮件发送估算值。价格计算器