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';
機能概要ユースケース
標準SQLANSI SQL準拠の高機能SQL既存SQLスキルの活用
パーティション/クラスタスキャン範囲の物理的絞り込みコスト削減・高速化
BigQuery MLSQL内部でMLモデルを学習・推論チャーン予測、需要予測
BI Engineインメモリキャッシュによる高速化ダッシュボード応答性向上
BigLakeGCSファイルの直接クエリデータレイクの統合分析
ストリーミング行単位のリアルタイム挿入イベント分析、ログ収集

料金モデル

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が一般的な選択です。