ここまでSnowflakeについて調べてきましたが、自分のメインツールはBigQueryです。両方使ってみた正直な感想を整理してみます。
前提: 自分のバックグラウンド
- BigQueryを数年使っている
- クライアント案件の大半はBigQuery + dbt + Metabase構成
- Snowflakeはこのシリーズをきっかけに本格的に触り始めた
なので BigQuery寄りのバイアスがある 前提で読んでください。
設計思想の違い
| 観点 | BigQuery | Snowflake |
|---|---|---|
| 一言で | 全自動のデータ分析基盤 | ユーザーに選択肢を渡すプラットフォーム |
| インフラ管理 | 完全サーバーレス | 仮想ウェアハウスの起動/停止を管理 |
| チューニング | ほぼ不要(Google任せ) | ウェアハウスサイズの選択で調整 |
| マルチクラウド | GCPのみ(BigQuery Omniで一部対応) | AWS / Azure / GCP |
| データ共有 | Analytics Hub | Data Sharing(ゼロコピー) |
| AI統合 | Vertex AI連携、BigQuery ML | Cortex AI、Cortex Code |
BigQueryは「Google流の全自動」。インフラのことは考えなくていい。Snowflakeは「ユーザーが選べる」設計。コンピュートリソースのサイズや数を自分で決められる。
料金体系の違い
ここは経営者が一番気にするところです。
| BigQuery | Snowflake | |
|---|---|---|
| 課金モデル | スキャン量課金(読んだデータ量) | コンピュート時間課金(稼働時間) |
| わかりやすさ | 「どのくらいデータを読むか」で決まる | 「どのくらいの時間動かすか」で決まる |
| コスト予測 | クエリごとに変動。予測しにくい | ウェアハウスサイズ × 稼働時間で計算可能 |
| 無料枠 | 月1TBのスキャン無料 | $400の無料クレジット(初回のみ) |
| 定額プラン | あり(Flat-rate) | なし(常に従量) |
「月いくらかかるか」を聞かれたとき、Snowflakeの方が答えやすい印象です。ウェアハウスのサイズと稼働時間で試算できるので。BigQueryはクエリの書き方やデータ量で変動するので、事前見積もりが難しい。
使い分けの基準
BigQueryが向いている場面
- GCPを既に使っている(Firebase、Cloud Runなど)
- 完全サーバーレスがいい。インフラ管理したくない
- データ量が小さめ(月のスキャン量が数TB以下)
- シンプルな分析クエリが中心
Snowflakeが向いている場面
- AWSやAzureをメインで使っている
- 複数の組織間でデータ共有が必要
- 非エンジニアもダッシュボードや分析を使う
- コンピュートリソースの細かい制御がしたい
自分の本音
BigQueryで育ったので愛着があります。サーバーレスの楽さは素晴らしい。何も考えなくてもスケールする。
でもSnowflakeの共有機能には感心しました。Data Sharingのゼロコピーは設計として美しい。複数組織でデータを共有する案件では、Snowflakeの方が適している場面がある。
Cortex Code CLIの体験も良かった。BigQueryにも同等の機能がほしい。
クライアントによって提案を変えています。GCPメインの環境ならBigQuery、AWSメインならSnowflakeも選択肢に入れる。
「どっちでもいい。大事なのはDWHを持つこと」 が本音です。Excelやスプレッドシートでデータをやりくりしている状態から、どちらかのDWHに移行するだけで世界が変わる。
まとめ
- BigQueryもSnowflakeもどちらも優秀なDWH
- 「どっちがいい?」より「どっちが合う?」で選ぶべき
- 迷ったら既に使っているクラウドに合わせるのが無難
- どちらを選んでも、今のExcel管理よりは確実に良くなる
- 次の記事では、もう一つ大事な「ベンダーロックイン」の話を書いてみます