估算存储和查询费用

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

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

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

估算查询费用

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

控制台

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

查询验证器

如果您的查询处理的数据量较少,则可能需要将所处理的字节数单位从 KB 转换为 MB。MB 是价格计算器使用的最小计量单位。

经典版界面

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

查询验证器

如果您的查询处理的数据量较少,则可能需要将所处理的字节数单位从 KB 转换为 MB。MB 是价格计算器使用的最小计量单位。

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.

如果您的查询处理的数据量较少,则可能需要将所处理的字节数单位从 KB 转换为 MB。MB 是价格计算器使用的最小计量单位。

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

	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

# TODO(developer): 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 价格计算器估算按需查询费用,请输入查询所处理的字节数(以 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),输入通过试运行或查询验证器读取的字节数估算值。如果该值小于 1 MB,则您必须将其转换为 MB 以便使用价格计算器。以 10918 字节为例,该值约为 0.01091 MB。计算器
  7. 点击添加到估算 (Add To Estimate)。
  8. 估算值会显示在右侧。请注意,您可以保存估算值,也可以通过电子邮件发送估算值。按需计算器

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

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

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

固定费率计算器

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

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

要使用 Google Cloud 价格计算器估算存储费用,请输入存储的字节数(以 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. 估算值会显示在右侧。请注意,您可以保存估算值,也可以通过电子邮件发送估算值。价格计算器
此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
需要帮助?请访问我们的支持页面