ストレージとクエリの費用の見積もり

オンデマンド クエリは、読み取られたバイト数に基づいて課金されます。現在のオンデマンド クエリの料金については、料金ページをご覧ください。

クエリを実行する前に費用を見積もるには、以下を使用します。

  • Cloud Console または従来の BigQuery ウェブ UI のクエリ検証ツール
  • CLI の --dry_run フラグ
  • dryRun パラメータ(API を使用してクエリジョブを送信する場合)
  • Google Cloud 料金計算ツール
  • クライアント ライブラリ

クエリ費用の見積もり

クエリ費用を見積もるには:

Console

Cloud Console でクエリを入力すると、クエリ検証ツールがクエリ構文を検証し、読み取られるバイト数を見積もります。この見積もりを使用して料金計算ツールで、クエリ費用を計算できます。

クエリ検証ツール

従来の UI

Cloud Console または従来の BigQuery ウェブ UI でクエリを入力すると、クエリ検証ツールがクエリ構文を検証し、読み取りバイト数を見積もります。この見積もりを使用して料金計算ツールで、クエリ費用を計算できます。

クエリ検証ツール

bq

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 を使用してドライランを実行するには、dryRuntrue に設定したクエリジョブを送信します。

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 単位で入力します。BigQuery では月間 1 TB のオンデマンド クエリ処理が無料で提供されるため、クエリで処理されるのが 1 TB 未満の場合、見積もりは $0 になります。

料金計算ツール

料金計算ツールを使用してクエリ費用を見積もるには、次の手順に沿って操作します。

  1. Google Cloud 料金計算ツールを開きます。
  2. [BigQuery] をクリックします。
  3. [ON-DEMAND] タブをクリックします。
  4. [Table Name] に、テーブルの名前を入力します。例: airports
  5. [Storage Pricing] の [Storage] フィールドに「0」と入力します。
  6. [Query Pricing] に、ドライランまたはクエリ検証ツールから返された推定読み取りバイト数を入力します。 計算ツール
  7. [Add To Estimate] をクリックします。
  8. 見積もりが右側に表示されます。見積もりの保存やメールの送信を行うことができます。 オンデマンド計算ツール

この場合、クエリで読み取られるバイト数は、無料枠で提供されるオンデマンド処理の 1 TB 未満です。 そのため、見積もり用は $0 です。

料金計算ツールに定額料金を含める

請求先アカウントに定額料金が適用されている場合は、[FLAT-RATE] タブをクリックして定額料金プランを選択し、見積もりにストレージ費用を追加できます。

定額計算ツール

詳細については、定額料金をご覧ください。

Google Cloud 料金計算ツールを使用したストレージ費用の見積もり

Google Cloud 料金計算ツールでストレージ費用を見積もるには、保存されるバイト数を B、KB、MB、GB、TB、および PB 単位で入力します。BigQuery では月間 10 GB のストレージが無料で提供されます。

料金計算ツールを使用してストレージ費用を見積もるには:

  1. Google Cloud 料金計算ツールを開きます。
  2. [BigQuery] をクリックします。
  3. [ON-DEMAND] タブをクリックします。
  4. [Table Name] に、テーブルの名前を入力します。例: airports
  5. [Storage Pricing] の [Storage] フィールドに「100」と入力します。測定単位を GB に設定したままにします。
  6. [Add To Estimate] をクリックします。
  7. 見積もりが右側に表示されます。見積もりの保存やメールの送信を行うことができます。 料金計算ツール