ここまでSnowflakeについて調べてきましたが、自分のメインツールはBigQueryです。両方使ってみた正直な感想を整理してみます。

前提: 自分のバックグラウンド

  • BigQueryを数年使っている
  • クライアント案件の大半はBigQuery + dbt + Metabase構成
  • Snowflakeはこのシリーズをきっかけに本格的に触り始めた

なので BigQuery寄りのバイアスがある 前提で読んでください。

設計思想の違い

観点BigQuerySnowflake
一言で全自動のデータ分析基盤ユーザーに選択肢を渡すプラットフォーム
インフラ管理完全サーバーレス仮想ウェアハウスの起動/停止を管理
チューニングほぼ不要(Google任せ)ウェアハウスサイズの選択で調整
マルチクラウドGCPのみ(BigQuery Omniで一部対応)AWS / Azure / GCP
データ共有Analytics HubData Sharing(ゼロコピー)
AI統合Vertex AI連携、BigQuery MLCortex AI、Cortex Code

BigQueryは「Google流の全自動」。インフラのことは考えなくていい。Snowflakeは「ユーザーが選べる」設計。コンピュートリソースのサイズや数を自分で決められる。

料金体系の違い

ここは経営者が一番気にするところです。

BigQuerySnowflake
課金モデルスキャン量課金(読んだデータ量)コンピュート時間課金(稼働時間)
わかりやすさ「どのくらいデータを読むか」で決まる「どのくらいの時間動かすか」で決まる
コスト予測クエリごとに変動。予測しにくいウェアハウスサイズ × 稼働時間で計算可能
無料枠月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管理よりは確実に良くなる
  • 次の記事では、もう一つ大事な「ベンダーロックイン」の話を書いてみます