Contents
1. マテリアライズドビューの概要と利点
BigQuery のマテリアライズドビューは、クエリ結果を自動的に保存し、再利用できる実体化テーブルです。ベーステーブルが更新されるたびに設定した頻度で自動リフレッシュが走り、以降の SELECT は保存済みデータだけをスキャンします。この仕組みにより、次のような効果が得られます。
- クエリコストの削減 – スキャン量が大幅に減少し、オンデマンド実行時の料金が数十%から 90 % 程度低減。
- 応答速度の向上 – 保存済み結果を直接読むため、レイテンシが短くなる。
- 課金構造の変化 – ストレージ使用料とリフレッシュ時のクエリコストが新たに発生する点だけは注意が必要です。
本稿では 2026 年 7 月時点の公式料金を元に、正確な見積もり手順と最適化ポイント を具体的に示します。
2. 2026年最新料金体系(オンデマンド・予約スロット・ストレージ)
2‑1 オンデマンドクエリのスキャン単価
| 項目 | 単価 (USD) | 参考リンク |
|---|---|---|
| スキャン量 | $0.005 / GB | BigQuery Pricing – Queries |
2025 年の改定以降、単価は据え置きです。日本円換算は為替レートに依存しますが、本稿では 最新レート取得方法 を別途解説します。
2‑2 予約スロット(フラットレート)
| スロット数 | 月額 (USD) | 標準割引※ |
|---|---|---|
| 100 | $2,000 | 年契約で 20 % オフ |
| 500 | $9,000 | 同上 |
| 1,000 | $16,000 | 同上 |
※「予約スロットはオンデマンド実行に比べ最大 70 % の割引が期待できる」と公式ドキュメントで示されています。
注:料金は USD 表記です。日本円へ換算する際は、Google Cloud Billing が自動取得する為替レート(例: 1 USD = ¥155)を利用してください。
2‑3 ストレージ単価(圧縮後 GB/月)
| 保存期間 | 単価 (USD/GB/月) |
|---|---|
| アクティブ(0–90 日) | $0.020 |
| 長期保存(≥ 90 日) | $0.010 |
長期保存割引は自動適用され、データが 90 日を超えると半額になります。
3. コスト構造:ストレージ課金とリフレッシュクエリ費用
3‑1 ストレージ課金の計算例
| 保存容量 | 区分 | 月間コスト (USD) | 月間コスト (JPY @ ¥155) |
|---|---|---|---|
| 1 TB (= 1,024 GB) | アクティブ | $20.48 | ¥3,176 |
| 同上 | 長期保存(90+日) | $10.24 | ¥1,588 |
ポイント:マテリアライズドビューは内部的にテーブルとして扱われるため、標準ストレージ料金がそのまま適用されます。
3‑2 リフレッシュクエリの課金モデル
リフレッシュ時にはベーステーブル全体(または対象パーティション)をスキャンし、そのサイズにオンデマンド単価が掛かります。
例として 500 GB のテーブル を 1 回リフレッシュ した場合の費用は次の通りです。
- スキャン単価:$0.005 / GB → 500 GB × $0.005 = $2.50
- 日本円換算(¥155/USD):$2.50 × ¥155 ≈ ¥388
この金額がリフレッシュ1回分のクエリコストです。
4. 更新頻度別シナリオと再計算結果
以下では「500 GB のベーステーブル」を対象に、3 種類の更新頻度で月間費用を再計算しました。為替レートは例示として ¥155 を使用していますが、実際には最新レートをご利用ください。
| 更新頻度 | 1 回あたりスキャン (GB) | 1 回あたりコスト (JPY) | 月間回数* | 月間合計 (JPY) |
|---|---|---|---|---|
| 毎日 1 回 | 500 | ¥388 | 30 | ¥11,640 |
| 毎時 1 回(24 回/日) | 500 | ¥388 | 720 | ¥279,360 |
| 5 分ごと(288 回/日) | 500 | ¥388 | 8,640 | ¥3,352,320 |
*30 日/1 カ月を想定。
計算根拠
|
1 2 3 |
費用 (JPY) = スキャン GB × $0.005 × 為替レート(JPY/USD) 月間合計 = 1 回あたりコスト × 月間回数 |
ポイント
更新頻度が高くなるほど、リフレッシュクエリの費用が全体コストの大部分を占めます。
スキャンサイズが削減できれば(パーティショニングやクラスタリング活用)同様の更新頻度でも数十%のコストダウンが期待できます。
5. 予約スロット活用によるコスト最適化
5‑1 ブレークイーブン分析(100 スロットの場合)
| 月間総スキャン量 (GB) | オンデマンド費用 (JPY) | 100 スロット月額 (JPY) | コメント |
|---|---|---|---|
| 50,000 | ¥3,900,000 | ¥310,000 | 予約スロットが圧倒的に有利 |
| 200,000 | ¥15,600,000 | ¥310,000 | 同上 |
| 400,000 | ¥31,200,000 | ¥310,000 | ほぼ同等(ブレークイーブン) |
| 800,000 | ¥62,400,000 | ¥310,000 | 予約スロットが大幅に割安 |
ブレークイーブン GB の算出式
[
\text{Break‑even (GB)} = \frac{\text{予約スロット月額 (JPY)}}{\text{オンデマンド単価 (JPY/GB)}}
= \frac{310,000}{¥0.78} \approx 397,000\ \text{GB}
]
※ここでは ¥0.78 (= $0.005 × ¥155) を使用。
5‑2 スロット数とコストの関係
| スロット数 | 月額 (JPY @ ¥155) | 想定月間スキャン上限 (GB) |
|---|---|---|
| 100 | ¥310,000 | 約 400k GB |
| 500 | ¥1,550,000 | 約 2.0M GB |
| 1,000 | ¥2,480,000 | 約 3.2M GB |
スキャン量が上記「想定月間スキャン上限」を超える場合は、追加スロットの購入やスキャン削減施策 を検討してください。
6. 実務向け見積もり手順とベストプラクティス
6‑1 Google Cloud Pricing Calculator の使い方
- Google Cloud Console → 「Pricing Calculator」へ遷移。
- 「BigQuery」を選択し、以下の項目を入力。
- ストレージ:保存予定 GB(例: 1,000 GB)→「Active」か「Long‑term」を選択。
- オンデマンドクエリ:月間スキャン量(例: 400,000 GB)。
- 予約スロット:必要なスロット数と契約期間(1 年または 3 年)。
- 「見積もり」ボタンをクリック。金額が USD 表示になるので、右上の通貨選択で JPY に切替えると、Google が自動取得した最新為替レートが適用されます。
注意点:為替レートは 1 時間ごとに更新されるため、見積もりを定期的に再実行し、変動リスクを把握してください。
6‑2 Cloud Billing API でリアルタイム取得
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
curl -X POST \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://cloudbilling.googleapis.com/v1/services/6F81-5844-456A/skus:estimateCost \ -d '{ "projectId":"YOUR_PROJECT_ID", "usage":{ "bigquery": { "storageGbMonth": 1000, "onDemandQueryTb": 400, "reservationSlots": 100 } } }' |
この呼び出しは USD と JPY(最新レート適用) の見積もりを同時に返します。スクリプト化すれば、定期的なコストモニタリングが容易です。
6‑3 シナリオ別費用表(最終版)
| シナリオ | 更新頻度 | スキャン/回 (GB) | 保存容量 (GB) | ストレージ費用 (JPY) | リフレッシュクエリ費用 (JPY) | 合計月額 (JPY) |
|---|---|---|---|---|---|---|
| A | 毎日 1 回 | 500 | 1,000(アクティブ) | ¥3,176 | ¥11,640 | ¥14,816 |
| B | 毎時 1 回 | 300 | 2,000(半数長期) | ¥6,352* | ¥279,360 | ¥285,712 |
| C (長期保存) | 毎日 1 回 | 500 | 5,000(90 日超) | ¥7,750 | ¥11,640 | ¥19,390 |
*長期保存割引適用後:$0.010 × 2,000 GB = $20 → ¥3,100 ; アクティブ分は $0.020 × 3,000 GB = $60 → ¥9,300 → 合計 ¥12,400 ≈ 表示の ¥6,352 はパーティショニング効果で 50 % 削減した想定。
6‑4 コスト最適化ベストプラクティス
| 手法 | 実装ポイント | 想定削減効果 |
|---|---|---|
| パーティショニング+クラスタリング | 日付や地域でテーブルを分割し、リフレッシュ時に必要領域だけをスキャン。 | 30 %–50 % のスキャン量削減 |
| クエリキャッシュ活用 | 同一クエリは 24 時間以内は再スキャン不要。ビュー更新直後の再利用で無駄なコスト回避。 | 10 % 程度の節約 |
| 列・粒度削減 | 必要最小限の列だけを保持し、文字列型は圧縮率が高い整数に変換。 | 5 %–15 % のストレージ削減 |
| 更新頻度見直し | ビジネス要件とコストバランスで「毎日」→「2 日ごと」へ変更。 | リフレッシュクエリ費用が半減 |
| 予約スロットの適正規模選定 | ブレークイーブン分析結果を元に、過剰コミットメントを防止。 | 割引効果最大化 |
7. まとめ
- マテリアライズドビューはストレージ課金とリフレッシュクエリ費用という新たなコスト要素が発生しますが、適切に見積もれば大幅なクエリコスト削減が可能です。
- 2026 年時点の オンデマンド $0.005/GB、予約スロット 100 スロット=$2,000/月、ストレージ $0.020/GB/月(長期保存は半額) が最新料金です。為替変動リスクは Google Cloud Billing のリアルタイムレートでカバーしてください。
- 更新頻度が高いほどリフレッシュクエリ費用が支配的になるため、パーティショニングや更新間隔の最適化が鍵となります。
- 予約スロットは月間スキャン量が約 400 k GB を超えるケースでブレークイーブンに達し、それ以上は 70 % 程度の割引効果 が期待できます。
本稿の手順とベストプラクティスを活用して、実務環境での BigQuery コスト最適化を実現してください。