Snowflakeの3レイヤーアーキテクチャは、SnowPro Core試験の全ドメインに関わる基礎概念です。パフォーマンス、コスト最適化、セキュリティなど、試験の他の分野を理解するうえでも、この設計思想を正しく押さえておくことが重要です。
COF-C03のDomain 1.0「Snowflake AI Data Cloud Features and Architecture」は配点31%を占めており、その最初の試験目標(1.1)がこの3レイヤーアーキテクチャです。
本記事では、公式ドキュメントに基づいて「どの処理が、どのレイヤーで行われるのか」を軸に整理します。
・Snowflakeの3レイヤー構成を正確に説明できる
・「この処理はどのレイヤーか?」に即答できる
・Domain 1.0の他の試験目標(ウェアハウス、ストレージ等)を理解するための土台が身につく👉 Domain 1.0の全6目標の概要は「COF-C03 Domain 1.0対策|全6目標を日本語で解説」をご覧ください。

※ Snowflakeの3レイヤーアーキテクチャ(公式ドキュメントを基に作成)
Snowflakeの最大の特徴は、ストレージ・コンピュート・クラウドサービスの3レイヤーが完全に分離されている点です。
| レイヤー | 主な役割 | キーワード |
|---|---|---|
| ストレージ層 | データの永続化 | マイクロパーティション、圧縮、列指向 |
| コンピュート層 | クエリの実行 | Virtual Warehouse、スケーリング |
| サービス層 | メタデータ管理・最適化・認証 | RBAC、クエリ最適化、トランザクション |
このComputeとStorageの分離は、Snowflakeのパフォーマンスと柔軟性を支える中核概念です。ComputeとStorageが独立しているため、データ量が増えてもクエリ性能に影響を与えず、逆にコンピュートリソースを増減してもストレージコストは変わりません。
役割
ストレージ層は、データの保存を担当します。Snowflakeにロードされたデータは自動的に圧縮・最適化され、クラウドストレージ上に保存されます。
| クラウドプロバイダー | ストレージサービス |
|---|---|
| AWS | S3 |
| Azure | Blob Storage |
| GCP | Cloud Storage |
特徴
自動管理
ユーザーは保存場所やファイル形式を意識する必要がありません。データは自動でマイクロパーティションに分割され、列指向フォーマットで圧縮・保存されます。ストレージは複数のWarehouseから共有アクセスされます。
マイクロパーティション
Snowflakeのデータは、非圧縮時で50〜500MB(圧縮後は約16MB)のイミュータブル(不変)なマイクロパーティションに分割されます。各パーティションにはカラムごとのmin/max値、distinct値の数、NULL数などの統計情報がサービス層のメタデータとして記録され、クエリ時のパーティションプルーニング(不要なパーティションの読み飛ばし)に使われます。
学習のポイント
| よくある誤解 | 正誤 | 解説 |
|---|---|---|
| Snowflakeでインデックスを作成できる | ✗ | Snowflakeにインデックスは存在しない。マイクロパーティションのプルーニングで代替 |
| ユーザーがパーティションを定義する | ✗ | パーティションは自動で管理される。クラスタリングキーで物理的な並び順は制御可能 |
| データは自動で圧縮・管理される | ✓ | 列指向フォーマットで自動圧縮。ユーザーによる管理は不要 |
役割
SQLクエリを実行するためのコンピュートリソースを提供します。Snowflakeでは、これを仮想ウェアハウス(Virtual Warehouse)と呼びます。
主な特徴
スケーラブル
ウェアハウスのサイズはX-Small〜6X-Largeまで柔軟に変更可能です。Auto-suspend(自動停止)とAuto-resume(自動再開)に対応しており、ワークロードごとにWarehouseを分離できます。
独立性
各Warehouseは独立したコンピュートクラスターです。あるWarehouseの負荷が他のWarehouseのパフォーマンスに影響を与えることはありません。
学習のポイント
| ポイント | 正誤 | 解説 |
|---|---|---|
| クエリ実行にはWarehouseが必要 | ✓ | ただしメタデータのみで回答できるクエリ(COUNT(*)等)はWarehouse不要の場合がある |
| Warehouse停止中も計算が行われる | ✗ | 停止中は課金も計算も停止する |
| 結果キャッシュはWarehouseをまたいで再利用可能 | ✓ | クエリ結果キャッシュはサービス層で管理されるため、Warehouseに依存しない |
役割
Snowflake全体を制御・最適化する中枢レイヤーです。ユーザーのすべてのリクエストは最初にこのレイヤーを通過します。
サービス層の主な機能
クエリ解析・最適化
ユーザーが発行したSQLを解析し、最適な実行計画を作成してコンピュート層に送ります。
認証・アクセス制御
ユーザー認証、RBAC(ロールベースアクセス制御)、ネットワークポリシーなどのセキュリティ機能を管理します。
トランザクション管理
データの一貫性を保つためのトランザクション管理を行います。
メタデータ管理
テーブル定義、マイクロパーティション情報、統計情報(min / max値など)を管理します。メタデータはサービス層で管理されるという点は重要です。ストレージ層やコンピュート層と混同しないように注意してください。
課金について
サービス層の利用は、日次のクラウドサービス使用量が仮想ウェアハウスの日次使用量の10%を超えた場合に、その超過分のみ課金されます。
学習のポイント
| 問われる内容 | 正誤 |
|---|---|
| メタデータはストレージ層で管理される | ✗ |
| メタデータはWarehouse(コンピュート層)で管理される | ✗ |
| メタデータはサービス層で管理される | ✓ 正解 |
| メリット | 詳細 |
|---|---|
| 独立スケーリング | ComputeとStorageを独立して拡張・縮小できる。データ量が増えてもクエリ性能に影響しない |
| コスト最適化 | 使わないWarehouseはAuto-suspendで停止し、クレジット消費を抑制できる |
| ワークロード分離 | ETL、BI、データサイエンスなどのワークロードを別々のWarehouseで実行し、相互影響を防止 |
| 同時実行性 | 複数のWarehouseが同じストレージに同時アクセスでき、競合なく並列処理が可能 |
| レイヤー | 覚えること |
|---|---|
| ストレージ | データ保存のみ。自動圧縮・自動パーティション。ユーザーによる管理は不要 |
| コンピュート | 仮想ウェアハウスでクエリ実行。各Warehouseは独立。停止中は課金なし |
| サービス | 最適化・認証・メタデータ管理。Snowflakeの頭脳。10%ルールで通常無料 |
3レイヤーアーキテクチャの理解は、パフォーマンスやコスト最適化など他のドメインの学習にもそのまま活きます。
👉 Domain 1.0の全6目標(アーキテクチャ、ツール、オブジェクト階層、ウェアハウス、ストレージ、AI/ML)の概要は「COF-C03 Domain 1.0対策|全6目標を日本語で解説」で確認してください。