BigQueryのお金のあれこれ

4 min read読了の目安(約4400字

BigQueryの料金の概要

BigQUeryはサーバーレスなデータ分析プラットフォームです。
BigQUeryを使用するために個々のインスタンスまたは仮想マシンをプロビジョニングする必要はありません。

その代わりに、BigQueryは必要に応じて自動的にコンピューティングリソースを割り当てます。
コンピューティング容量は、仮想CPUを表すスロットの形式で事前に予約することもできます。
BigQueryの料金体系はこの設計を反映しています。

BigQueryの料金には次の2つの主要な要素があります。

・分析料金
クエリの処理にかかる費用です。SQLクエリ、ユーザ定義関数、スクリプト、テーブルをスキャンする特定のデータ操作言語(DML)とデータ定義言語(DDL)のステートメントなどが含まれます。
・ストレージ料金
BigQueryに読み込むデータを保存する費用です。

また、ストリーミング挿入や、BigQuery Storage APIの使用など、他の特定のオペレーションに対して課金されます。
詳細についてはデータ取り込み料金とデータ抽出の料金を確認してください。

さらに、BigQueryには無料のオペレーションと無料枠が用意されています。

作成する各プロジェクトには、請求先アカウントが関連づけられています。プロジェクトで実行されているBigQueryジョブによって発生する費用は、関連づけられる請求先アカウントに請求されます。BigQueryのストレージ料金も、関連づけられている請求先アカウントに請求されます。

BigQueryの費用と傾向は、Cloud ConsoleのCloud Billingレポートページで確認できます。

特に指定のない限り、料金モデルは個別のプロジェクトではなくアカウントに適用されます。

分析料金モデル

BigQueryでは、クエリ実行用の次の2種類の料金モデルが用意されています。

・オンデマンド料金
この料金モデルでは、各クエリによって処理されたバイト数に基づいて課金されます。
処理されるクエリデータは毎月1TBまで無料です。

・定額料金
この料金モデルでは、仮想CPUであるスロットを購入します。スロットを購入すると、クエリの実行に使用できる専用の処理容量を購入したことになります。
スロットは次のコミットメントプランで使用できます
・Flex Slots:最初の60秒分のコミットメントを購入します
・月間:最初の30日分のコミットメントを購入します
・年間:365日分のコミットメントを購入します

月間プラント年間プランでは、長期的な容量コミットメントと引き換えに割引が適用されます。

ニーズに合わせて両方のモデルを組み合わせることもできます。
オンデマンド料金では、実際に使用した分だけ支払います。ただしクエリはスロットの共有プールを使用して実行されるため、パフォーマンスは変わる可能性があります。
定額料金では、長期的なコミットメントのために割引価格で保証された容量を購入します。
自社のワークロードに適した料金の選択について詳しくはReservationsを使用したワークロード管理をご覧ください。

オンデマンド分析の料金

デフォルトではクエリの料金はオンデマンド料金モデルを使用して請求されます。

オンデマンド料金では、BigQueryは、処理されたバイト数(読み取りバイト数とも呼ばれる)に基づいて課金します。
データをBigQueryに保存するか、Cloud Storage、ドライブ、Cloud Bigtableなどの外部データソースに保存するかに関係なく。処理されたバイト数に基づいて料金が請求されます。
オンデマンド料金は、使用量のみに基づいて計算されます

asia-northeast2(大阪)1ヶ月あたり

クエリ(オンデマンド)6ドル/ 1TB (ただし毎月1TBまで無料)

以下の点に注意すること

・BigQueryではカラム型データ構造が使用されています。選択した列で処理されたデータの合計容量に応じて課金されます。列ごとの合計データは、その列のデータ型に基づいて計算されます。
データサイズの計算方法の詳細についてはデータサイズの計算をご覧ください。

・エラーが返されたクエリまたはキャッシュから結果が取得されたクエリに対しては料金が発生しません。スクリプトジョブでは、これと同じことがステートメント単位で考慮されます。

・料金はMB単位のデータ処理容量(端数は四捨五入)で決まります。クエリが参照するテーブルあたりのデータ最小処理容量は10MB、クエリあたりのデータ最小処理量量は10MBとします

・実行中のクエリジョブをキャンセルすると、そのクエリが完了した場合に発生する料金が全額課金される可能性があります。

・クエリを実行するときは、結果にLIMITを明示的に設定している場合でも、選択した列にある処理されたデータに応じて課金されます

・テーブルのパーティショニングとクラスタ化により、クエリで処理されるデータ量を削減できます。ベストプラクティスとして、可能な限りパーティショニングとクラスタ化を行ってください

・オンデマンドクエリの料金はGoogle Cloud SKUページに分析料金として記載されます。

・クラスタ化テーブルにクエリを実行するときに、そのクエリにクラスタ化された列のフィルタが含まれている場合、BigQueryはフィルタ式を使用して、クエリでスキャンされたブロックをプルーニングします。これにより、スキャンされるバイト数を減らすことができます。

・外部データソースに対してクエリを実行する場合、クエリによって読み取られたバイト数に基づいて料金が請求されます。外部データがCloud Storageなどの別のGoogle Cloudプロダクトに保存されている場合は、そのプロダクトのストレージ料金も適用されます。

BigQueryのコスト管理メカニズムを使用すると、クエリ料金に上限を設定できます。設定には次の方法があります。
・ユーザーレベルまたはプロジェクトレベルのカスタムコスト管理
・クエリで課金される最大バイト数

処理されるバイト数を計算する方法の詳細な例については、クエリサイズの計算をご覧ください

定額は月に20万ほどかかるためなしで

ストレージの料金

ストレージ料金は、BigQueryに読み込むデータを保存する費用です。
アクティブストレージと長期保存に対して料金が発生します。

・アクティブストレージには、過去90日間で変更されたテーブルまたはテーブルパーティションが含まれます。
・長期保存には、90日間連続して変更されていないテーブルまたはテーブルパーティションが含まれます。そのテーブルのストレージの料金は自動的に約50%値引きされます。アクティブストレージと長期保存のパフォーマンス、耐久性、可用性に違いはありません

asia-northeast2(大阪)1月あたり

オペレーション 料金 詳細
アクティブストレージ $0.023 per GB 毎月 10 GB まで無料。
長期保存 $0.016 per GB 毎月 10 GB まで無料。

注: 1 PB を超えるデータを BigQuery に保存する場合の料金については、営業担当者にお問い合わせください。

料金の詳細
ストレージの料金は、テーブルに格納されているデータの量(非圧縮状態でのデータ量)に基づいて計算されます。データのサイズは、個々の列のデータ型に基づいて計算されます。データサイズの計算方法の詳細については、データサイズの計算をご覧ください。

ストレージの料金は、MB あたり、秒あたりで案分されます。例を示します。

100 MB を半月格納した場合、支払い額は $0.001(1/10 セント)です
500 GB を半月格納した場合、支払い額は $5 です
1 TB を 1 か月格納した場合、支払い額は $20 です
ストレージの使用量はギガバイト(GB)単位で計算されます。1 GB は 230バイトで、ギビバイト(GiB)ともいいます。同様に、1 TB は 240 バイト(1,024 GB)です。

テーブルが 90 日間連続して編集されていない場合、長期保存レートで請求されます。テーブルを長期にわたって保存していても、パフォーマンス、耐久性、可用性などの各種機能性が損なわれることはありません。

分割テーブルの各パーティションは、長期保存の料金がそれぞれに適用されます。90 日間変更されなかったパーティションのデータは長期保存の料金の対象となり、割引価格で課金されます。

そのテーブルを編集すると、価格は通常のストレージ価格に戻り、90 日間の無編集日数計数タイマーがゼロから始まります。次のようなテーブルのデータを変更する操作を行った時点で、このタイマーはリセットされます。

操作 詳細
テーブルへのデータの読み込み 宛先テーブルへのデータの追加や、宛先テーブルの上書きを行う読み込みまたはクエリジョブ。
テーブルへのデータのコピー 宛先テーブルへのデータの追加や、宛先テーブルの上書きを行うコピージョブ。
テーブルへのクエリ結果の書き込み 宛先テーブルへのデータの追加や、宛先テーブルの上書きを行うクエリジョブ。
データ操作言語(DML)の使用 DML ステートメントによるテーブルデータの変更。
データ定義言語(DDL)の使用 CREATE OR REPLACE TABLE ステートメントによるテーブルの置換。
テーブルへのデータのストリーミング tabledata.insertAll API 呼び出しを使用するデータの取り込み。

上記以外の次のような操作では、タイマーはリセットされません。

テーブルのクエリ
テーブルクエリのビューの作成
テーブルからのデータのエクスポート
テーブルのコピー(別の宛先テーブルへ)
テーブル リソースのパッチ適用または更新
請求期間内に 90 日間のしきい値に達したテーブルの料金は、日割りで計算されます。

長期保存の料金が適用されるのは BigQuery ストレージのみです。Cloud Bigtable、Cloud Storage、ドライブなどの外部データソースには適用されません。