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

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

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

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

クエリ費用の見積もり

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

Console

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

クエリ検証ツール

クエリで処理されるデータが少量の場合は、処理されるバイト数を KB から MB に変換する必要があります。MB は料金計算ツールで使用される最小の測定単位です。

従来の UI

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

クエリ検証ツール

クエリで処理されるデータが少量の場合は、処理されるバイト数を 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 を使用してドライランを実行するには、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)
	}

	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 のいずれかの単位で入力します。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] に、ドライランまたはクエリ検証ツールから返された推定読み取りバイト数を入力します。値が 1 MB 未満の場合は、料金計算ツール用に MB に変換する必要があります。たとえば、10,918 バイトの場合、値は約 0.01091 MB になります。計算ツール
  7. [Add To Estimate] をクリックします。
  8. 見積もりが右側に表示されます。見積もりの保存やメールの送信を行うことができます。 オンデマンド計算ツール

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

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

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

定額計算ツール

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

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

Google Cloud 料金計算ツールでストレージ費用を見積もるには、保存されているバイト数を 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. 見積もりが右側に表示されます。見積もりの保存やメールの送信を行うことができます。 料金計算ツール