Google BigQueryは、サーバー管理が一切不要で、ペタバイト級のデータに対して標準SQLで分析できるフルマネージド・サーバーレス型のクラウドDWHです。GCP(Google Cloud)のサービスとして提供され、DremelとColossusという独自エンジンの上で動きます。従量課金($5/TB処理)と定額課金(スロット予約)の2モデルから選べ、Google Analytics 4・Firebaseといった主要プロダクトとのネイティブ連携が強みです。本記事ではBigQueryのアーキテクチャ、主要機能、料金モデル、始め方を、SQL例を交えて初心者向けに解説します。サーバーレスDWHの思想に触れたことがない方にも、30分で要点が掴める構成です。
BigQueryとは何か――「サーバーレスでペタバイト級の分析」
BigQueryは、2010年にGoogle Cloudの一サービスとして公開されたフルマネージドのクラウドDWHです。クラスターやインスタンスといった概念がユーザーから隠蔽されており、プロジェクトとデータセットを作ってクエリを投げるだけで、内部ではGoogle社内で長年使われてきた分散クエリ基盤「Dremel」が処理を引き受けます。
特徴は3つに集約されます。第一にサーバー管理不要。ノード数やバージョン管理が不要で、ユーザーは標準SQLを書くだけです。第二に自動スケーリング。クエリごとに必要なスロット(計算リソース単位)が動的に割り当てられます。第三に従量課金。デフォルトでは処理データ量に応じた課金のみで、使わなければ料金は発生しません。
BigQueryのアーキテクチャ
BigQueryのアーキテクチャは、Google社内のDremelシステムをルーツに持ちます。分散クエリエンジン「Dremel」と分散ストレージ「Colossus」を、高速ネットワーク「Jupiter」で接続する構造です。ストレージとコンピュートが物理的に分離されており、どちらも独立してスケールします。
【BigQueryのアーキテクチャ概念】
[User / SDK / BI Tool]
|
v
[Dremel Query Engine]
(Slot単位で実行)
|
v
[Jupiter Network]
(Petabit級高速網)
|
v
[Colossus Storage]
(列指向・圧縮・レプリカ)
※ ストレージとコンピュートは完全分離
ユーザーは物理ノードを意識しない
クエリの実行単位は「スロット」で、1スロットはおおよそ仮想CPU1コアに相当します。BigQueryは必要に応じて数千〜数万スロットを一瞬でスケールさせるため、巨大なクエリが数十秒で返ってくる体験が得られます。
BigQueryの主な機能
BigQueryの強みを支える6つの主要機能を紹介します。
1. 標準SQL対応:ANSI SQL準拠の標準SQLで、JOIN・ウィンドウ関数・CTE・配列/構造体まで幅広く扱えます。
2. パーティショニング・クラスタリング:日付カラムなどで物理パーティションを切り、さらにクラスタリングキーで整列させることで、スキャン量とコストを劇的に削減できます。
3. BigQuery ML:CREATE MODEL文を使って、SQLの中でMLモデル(線形回帰、ロジスティック回帰、時系列予測等)を学習・推論できます。
4. BigQuery BI Engine:インメモリキャッシュでBIダッシュボードを高速化するアクセラレータです。Looker StudioやLookerとの相性が抜群です。
5. 外部テーブル(BigLake):GCS上のParquet・ORC・Avro・CSVファイルを、ロードせずに直接クエリできます。データレイクとの統合に最適です。
6. ストリーミング挿入:Pub/Sub・Dataflowと組み合わせた準リアルタイム取り込みが可能です。
-- パーティション + クラスタリングテーブル
create table analytics.events
(
event_date date,
user_id string,
event_name string,
params json
)
partition by event_date
cluster by user_id, event_name;
-- BigQuery MLで線形回帰モデル作成
create or replace model analytics.churn_model
options(model_type='logistic_reg', input_label_cols=['churned']) as
select
days_since_last_login,
total_purchases,
churned
from analytics.users
where split_date < '2026-01-01';
| 機能 | 概要 | ユースケース |
|---|---|---|
| 標準SQL | ANSI SQL準拠の高機能SQL | 既存SQLスキルの活用 |
| パーティション/クラスタ | スキャン範囲の物理的絞り込み | コスト削減・高速化 |
| BigQuery ML | SQL内部でMLモデルを学習・推論 | チャーン予測、需要予測 |
| BI Engine | インメモリキャッシュによる高速化 | ダッシュボード応答性向上 |
| BigLake | GCSファイルの直接クエリ | データレイクの統合分析 |
| ストリーミング | 行単位のリアルタイム挿入 | イベント分析、ログ収集 |
料金モデル
BigQueryの料金はコンピュートとストレージの2軸で構成されます。コンピュートには「オンデマンド」と「スロット予約」の2モデルがあり、ワークロード特性で選び分けます。
オンデマンド:クエリごとに処理データ量で課金(約$5/TB)。小規模・アドホッククエリ中心の使い方に向きます。
スロット予約(Editions):月額・年額でスロットを確保する定額モデル。Standard/Enterprise/Enterprise Plusの3エディションがあります。安定したワークロードと予算統制が必要な組織に適します。
ストレージは「アクティブストレージ」と「長期保存ストレージ」の2種類で、90日間更新のないテーブルは自動的に長期保存料金(約半額)に切り替わります。
| 課金方式 | コスト特性 | 適するユースケース | 予測可能性 |
|---|---|---|---|
| オンデマンド | $5/TB処理(変動) | アドホック分析、少量クエリ | 低(使用量依存) |
| スロット予約(定額) | スロット数に応じた定額 | 安定した本番ワークロード | 高(定額) |
BigQueryの始め方
BigQueryは、GCPプロジェクトを作成すればすぐに使い始められます。以下の5ステップで最初のクエリまで到達可能です。
まずGCPコンソールでプロジェクトを作成し、BigQuery APIを有効化します。次にデータセット(スキーマに相当)を作成し、データをロードします。CLIのbqコマンドを使えば、以下のようにコマンドラインだけでテーブル作成・ロードが可能です。
bq --project_id=my-project mk --dataset analytics
bq load --autodetect --source_format=CSV analytics.orders ./orders.csv
bq query --use_legacy_sql=false 'select count(*) from analytics.orders'
最初の分析クエリはシンプルな集計から始めるのが定番です。以下はパーティション列を明示的にフィルタすることで、スキャン量を抑える例です。
select
date_trunc(order_date, month) as month,
count(*) as order_count,
sum(amount) as total_sales
from analytics.orders
where order_date between '2026-01-01' and '2026-03-31'
group by month
order by month;
BigQueryが向くケース・向かないケース
どのような組織にBigQueryが適しているかを整理します。
| 向くケース | 向かないケース |
|---|---|
| GCPをメインクラウドとして使っている | マルチクラウド戦略が必須 |
| サーバーレスの運用負荷ゼロを志向 | コンピュートのきめ細かな制御が必要 |
| Google Analytics 4・Firebase連携が重要 | AWSサービスとの深い統合が第一 |
| アドホック分析中心で使用量が変動する | コストの完全予測可能性を最優先 |
| BigQuery MLで簡易MLを活用したい | Sparkベースの超大規模前処理中心 |
まとめ
本記事の要点を振り返ります。
- BigQueryはサーバーレス・フルマネージドのクラウドDWH
- DremelとColossusによる分散アーキテクチャで自動スケール
- パーティション・クラスタリングがコスト管理の要
- オンデマンド課金とスロット予約を使い分けるのが定石
- GCP中心・GA4/Firebase連携・サーバーレス志向と相性抜群
次に読むべき記事は、クラウドDWH3大サービス比較、BigQueryコスト管理、そしてdbt入門です。DE-STKではBigQueryの設計・コスト診断・GA4連携基盤の構築を一貫して支援しています。クエリコストが想定を超えている、ダッシュボードが遅いといった相談もお気軽にどうぞ。
よくある質問(FAQ)
Q. BigQueryは無料で使えますか?
A. 毎月1TBのクエリと10GBのストレージが無料枠として提供されます。小規模な分析やPoC用途であれば無料枠内で十分に検証できます。
Q. BigQueryの料金が高くなる原因は?
A. フルスキャンクエリ(SELECT *)が最大の原因です。パーティショニング・クラスタリングの活用と、必要なカラムだけを指定するSELECTでコストを大幅に削減できます。
Q. BigQueryとSnowflakeの違いは?
A. BigQueryはサーバーレスでGCPとの統合が深く、Snowflakeはマルチクラウドとコンピュートの柔軟な制御が強みです。GCPメインならBigQuery、マルチクラウドならSnowflakeが一般的な選択です。