☁️

GCP?BigQueryとCloud SQLの違い

に公開

BigQueryとCloud SQLの違いを解説

一言で言うと

  • BigQuery: 大量のデータを分析するための「分析専用の倉庫」

  • Cloud SQL: アプリを動かすための「普通のデータベース」

小学生向けの例え

Cloud SQL = 学校の出席簿

  • 毎日、生徒の出欠を記録したり、確認したりする

  • 「田中さんは今日出席?」→すぐ答える

  • 一人ずつ細かく管理する

BigQuery = 図書館の統計室

  • 過去10年分の出席データをまとめて分析

  • 「冬は何人くらい休むかな?」を調べる

  • たくさんのデータを一度に見る

主な違い

1. 使う目的が違う

Cloud SQL(トランザクション処理)


-- 新しい注文を追加

INSERT INTO orders (user_id, product_id) VALUES (123, 456);

-- 在庫を1つ減らす

UPDATE products SET stock = stock - 1 WHERE id = 456;

→ リアルタイムでデータを追加・更新・削除する

BigQuery(分析処理)


-- 過去1年の売上集計

SELECT 

  product_name,

  SUM(sales_amount) as total_sales

FROM sales_history

WHERE date >= '2024-01-01'

GROUP BY product_name;

→ 大量のデータをまとめて分析する

2. データの扱い方が違う

項目 Cloud SQL BigQuery
データ量 数GB〜数TB 数TB〜ペタバイト
更新頻度 常に更新される たまに追加される
読み取り速度 1件ずつ高速 大量データを高速処理
書き込み リアルタイムで頻繁 バッチで定期的

3. 得意なことが違う

Cloud SQLが得意

  • ✅ ユーザーのログイン情報を保存

  • ✅ ECサイトの注文処理

  • ✅ SNSの投稿データ

  • ✅ リアルタイムな在庫管理

BigQueryが得意

  • ✅ 過去3年分の売上分析

  • ✅ 100万ユーザーの行動パターン分析

  • ✅ ログデータの集計

  • ✅ 機械学習用のデータ準備

実際の使い分け例

ECサイトの場合


[お客さんが注文] 

    ↓

Cloud SQL に保存(注文データ、在庫データ)

    ↓

毎晩、BigQueryにコピー

    ↓

BigQueryで分析(売れ筋商品、売上トレンド)

Cloud SQL: 「今、注文が入った!在庫を減らさなきゃ!」

BigQuery: 「今月はどの商品がよく売れたかな?」

技術的な違い

アーキテクチャ

Cloud SQL

  • 行指向ストレージ(Row-based)

  • 単一サーバーまたはレプリケーション構成

  • MySQL/PostgreSQL/SQL Serverの互換性

  • OLTP(オンライントランザクション処理)向け

BigQuery

  • カラムナストレージ(Column-based)

  • 超並列分散処理(MPP)

  • サーバーレス・フルマネージド

  • OLAP(オンライン分析処理)向け

コスト構造

Cloud SQL


料金 = インスタンスの稼働時間 × スペック

(常に課金される)

BigQuery


料金 = 処理したデータ量(クエリ実行時のみ)

      + ストレージ容量

(使った分だけ課金)

どっちを使えばいい?

Cloud SQLを選ぶべき場合

  • アプリケーションのバックエンドDB

  • データの追加・更新・削除が頻繁

  • トランザクション処理が必要

  • 既存のMySQL/PostgreSQLアプリの移行

BigQueryを選ぶべき場合

  • データ分析・レポート作成

  • 大量の履歴データの集計

  • ログ分析

  • データサイエンス・機械学習

両方使う場合も多い!


Cloud SQL(本番データ)

    ↓ ETL/ELT

BigQuery(分析用データ)

    ↓

BIツール(Looker, Tableauなど)

まとめ

  • Cloud SQL = リアルタイムでデータを管理する普通のデータベース

  • BigQuery = 大量データを分析する専用の分析基盤

どちらが優れているかではなく、用途が違う!

多くの企業では、両方を組み合わせて使っています 🚀

Discussion