企業では日々大量のデータが生成されます。
しかし従来のデータ基盤には多くの課題があり、データ分析のスピードやコストの問題が発生していました。そこで登場したのがクラウド型データプラットフォームSnowflakeです。
Snowflakeは従来のデータウェアハウスが抱えていた問題を解決するために設計されています。
この記事では、
- 従来のデータウェアハウスの課題
- Snowflakeがどのように解決するか
- Snowflakeの設計思想
を図解でわかりやすく解説します。
※この記事はSnowflake完全ガイドシリーズの第2回です。
前回の記事を読みたい方はこちらからご覧ください。
従来のデータ基盤の課題
まずはSnowflakeが生まれた背景を理解するために、従来のデータ基盤の課題を整理します。
代表的な課題は次の5つです。
- コンピュートとストレージが密結合
- 同時実行性能が低い
- スケールが難しい
- 運用コストが高い
- データ共有が困難
課題① コンピュートとストレージが密結合
従来のデータウェアハウスでは「データ保存」と「クエリ処理」が同じサーバで動いていました。そのため、パフォーマンス問題が発生します。
【問題点】
- データ量が増加→サーバ増強が必要
- 分析処理が重い→全体が遅くなる
- 柔軟なスケールが難しい
課題② 同時クエリが遅くなる
従来のデータウェアハウスでは、複数ユーザー、複数BIツールが同時にクエリを実行するとリソース競合が発生します。
課題③ スケールが難しい
従来のデータウェアハウスではスケール方法が大きく分けて「スケールアップ」と「スケールアウト」の2つに分けることができます。
「スケールアップ」はサーバのスペックを増強させることです。一方で「スケールアウト」はサーバの台数を追加することです。
従来のスケールアップはコストが高く、スケールアップの上限もありました。スケールアップはサーバの台数が増えることで運用がかなり複雑になります。
課題④ 運用コストが高い
従来のデータウェアハウスでは、サーバー管理やインフラ構築、容量管理などインフラ運用に手間もコストもかかりました。
インフラ運用に負荷がかかることでSQL実行などコア部分へ注力することができません。
課題⑤ データ共有が難しい
従来のデータ共有は、データ共有をするためにETL→データコピーが必要なため、ETL開発やデータコピーに手間がかかり困難でした。
そのため、データ共有のハードルが高く自由で汎用的なデータ分析の障壁となっていました。
Snowflakeでの解決方法
解決方法① コンピュートとストレージの分離
Snowflakeは、「ストレージ」と「コンピュート」が完全に分離されたアーキテクチャです。
以下の3層構造となっているため、ストレージだけ拡張したり、コンピュートだけ増強することが可能になります。
Storage Layer:データを保存するレイヤー
Compute Layer:SQL処理を行う仮想ウェアハウス
Cloud Services Layer:メタデータ管理やクエリ最適化

解決方法② 仮想ウェアハウス
Snowflakeは仮想ウェアハウスという独立したコンピューティングリーソースを使用します。
【特徴】
- 複数のコンピュートクラスター
- 同じデータを共有
- クエリ競合が発生しない
詳細は下記の記事でまとめています。
解決方法③ 自動スケーリング
Snowflakeでは、ウェアハウスサイズの変更やマルチクラスタ設定によって簡単にスケールすることができる。
【特徴】
- 数秒でサイズ変更
- 自動スケール
- 同時処理数増加
これによって、運用負荷が大きく下がります。
解決方法④ フルマネージドサービス
Snowflakeでは、サーバー管理やインフラ構築、容量管理などが自動化されておりユーザは管理をする必要がありません。
そのため、ユーザーはSQL実行などのコアな部分に集中することができます。
解決方法⑤ Secure Data Sharing
Snowflakeでは、データ共有をする際にSnowflakeを介してデータコピーなしに共有することができます。
これによって、リアルタイムにセキュアにデータ共有することができます。
まとめ
Snowflakeは以下の課題を解決します。
| 従来の課題 | Snowflakeでの解決方法 |
|---|---|
| ストレージとコンピュートが密結合 | 分離アーキテクチャ |
| クエリ競合 | 仮想ウェアハウス |
| スケール困難 | 自動スケーリング |
| 運用負荷 | フルマネージド |
| データ共有が難しい | Secure Data Sharing |
次の記事
次の記事では、Snowflakeの主要ユースケースについて解説します。
Snowflakeのたくさんの機能の中でも主要ユースケースについて紹介します。
- データウェアハウス(DWH)
- データレイク
- データ共有
- AI / ML基盤
を図解を使ってわかりやすく解説したいと思います。



