Snowflake

Snowflakeアーキテクチャ完全解説|3層構造の仕組み

2026-03-26
更新: 2026-03-27
NicheeLab編集部

Snowflakeは従来のShared-Disk / Shared-Nothing型とは異なる独自のマルチクラスターShared Dataアーキテクチャを採用しています。ストレージ・コンピュート・クラウドサービスの3層が完全に分離されており、各層が独立してスケールできる点が最大の特徴です。本記事では、3層の役割・マイクロパーティション・キャッシュ機構・Cloud Services Layerの課金ルールまで、試験と実務の両面で押さえるべき要点を解説します。

3層アーキテクチャの全体像

Snowflakeのアーキテクチャは以下の3層で構成されます。各層が独立したスケーリングとフェイルオーバーを持ち、ユーザーはインフラストラクチャの管理を意識せずにデータ分析に集中できます。


┌─────────────────────────────────────────────┐
│         Cloud Services Layer                │
│  認証 / アクセス制御 / クエリ最適化         │
│  メタデータ管理 / トランザクション管理      │
├─────────────────────────────────────────────┤
│         Compute Layer (Virtual Warehouses)  │
│  WH-1 (XS)  │  WH-2 (L)  │  WH-3 (XL)    │
│  独立したクラスター、相互に影響なし         │
├─────────────────────────────────────────────┤
│         Storage Layer                       │
│  クラウドストレージ (S3 / Azure Blob / GCS) │
│  マイクロパーティション (列指向・圧縮済み)  │
└─────────────────────────────────────────────┘
      

Storage Layer(ストレージ層)

データはクラウドプロバイダーのオブジェクトストレージ(AWS S3・Azure Blob Storage・Google Cloud Storage)に列指向フォーマットで格納されます。ユーザーが直接ストレージを操作することはなく、すべてのデータ管理はSnowflakeが自動で行います。

マイクロパーティションの仕組み

テーブルデータは自動的にマイクロパーティションと呼ばれる単位に分割されます。

特性詳細
サイズ圧縮後50〜500MB(非圧縮時は概ね数百MB相当)
フォーマット列指向(カラムナ)形式で格納
管理方式Snowflakeが自動で分割・再編成(ユーザー操作不要)
メタデータ各パーティションのカラムごとにmin/max値・NULL数・distinct数を保持
プルーニングWHERE句の条件とメタデータを照合し、不要パーティションをスキップ
不変性一度作成されたパーティションは変更不可(INSERT/UPDATE/DELETE時は新パーティションが生成)

マイクロパーティションの不変性により、Time Travel(過去データ参照)やFail-safe(災害復旧)が実現されています。UPDATE文を実行すると、該当パーティション全体が新バージョンとして再作成され、旧バージョンがTime Travel期間中保持されます。

Compute Layer(コンピュート層)

クエリ処理を担当するのがVirtual Warehouse(仮想ウェアハウス)です。各ウェアハウスは独立したコンピュートクラスターであり、他のウェアハウスのワークロードに影響を与えません。

サイズクレジット/時間推奨用途
X-Small1開発・テスト・軽量クエリ
Small2小規模ダッシュボード
Medium4中規模ETL・BI
Large8大規模バッチ処理
X-Large16TB級テーブルのフルスキャン
2XL〜6XL32〜512超大規模データ処理

ウェアハウスにはマルチクラスター機能があり、同時実行クエリ数の増加に応じてクラスターを自動追加できます。Auto-suspendとAuto-resumeにより、アイドル状態のウェアハウスは自動停止し、クエリ受信時に自動起動します。

Cloud Services Layer(クラウドサービス層)

Snowflake全体を統制する「頭脳」にあたる層です。ユーザーからは見えませんが、以下の重要な機能を担っています。

  • 認証・アクセス制御:ユーザー認証、RBAC、ネットワークポリシーの適用
  • メタデータ管理:テーブル定義、マイクロパーティションの統計情報管理
  • クエリ最適化:クエリパース・最適化・プルーニング判定
  • トランザクション管理:ACIDトランザクションの保証
  • セキュリティ:エンドツーエンド暗号化(AES-256)、自動キーローテーション

Cloud Services Layerの課金ルール(10%調整)

項目
課金閾値日次ウェアハウス消費クレジットの10%
課金対象10%を超過した分のみ
確認方法ACCOUNT_USAGE.METERING_HISTORY ビュー
超過しやすいケースSHOW / DESCRIBE コマンドの大量実行、Snowpipe通知処理、大量のCOPY INTO実行

たとえばウェアハウスが1日に200クレジット消費した場合、Cloud Servicesの閾値は20クレジットです。Cloud Servicesが25クレジット消費していれば、25 - 20 = 5クレジットのみが追加課金されます。

3種キャッシュの仕組み

Snowflakeには3種類のキャッシュがあり、クエリパフォーマンスの向上とコスト削減に貢献します。

キャッシュ種類保持場所有効期間条件コスト
Result CacheCloud Services Layer24時間(再利用で延長)同一クエリ・同一ロール・データ未変更ウェアハウス不使用(クレジットゼロ)
Metadata CacheCloud Services Layer常時COUNT / MIN / MAX などの集約クエリウェアハウス不使用(クレジットゼロ)
Warehouse Cache(Local Disk Cache)ウェアハウスのSSDウェアハウス稼働中同一ウェアハウスで同一テーブルへのアクセスウェアハウス稼働コストに含まれる

Result Cacheは最もコスト効率が良く、ウェアハウスを起動せずに結果を返します。BI ツールの定期リフレッシュなど、同一クエリが繰り返されるワークロードで特に効果的です。ただし、基となるテーブルにDML操作が行われるとResult Cacheは無効化されます。

クエリ処理の流れ

  1. ユーザーがSQLを発行
  2. Cloud Services Layerがクエリをパース・最適化
  3. Result Cacheに一致する結果があればウェアハウスを使わず即座に返却
  4. Metadata Cacheで応答できる集約クエリならウェアハウス不要で返却
  5. いずれにも該当しない場合、指定ウェアハウスでクエリを実行
  6. マイクロパーティションのプルーニングで必要なデータのみ読み込み
  7. Warehouse Cacheに存在するデータはストレージアクセスを省略
  8. 結果をユーザーに返却し、Result Cacheに格納

Snowflakeエディションとアーキテクチャ機能

機能StandardEnterpriseBusiness CriticalVPS
マルチクラスターウェアハウス-対応対応対応
Time Travel(最大90日)1日のみ最大90日最大90日最大90日
マテリアライズドビュー-対応対応対応
検索最適化サービス-対応対応対応
Tri-Secret Secure--対応対応
AWS PrivateLink / Azure Private Link--対応対応
専用メタデータストア---対応

試験での出題ポイント

SnowPro Core試験では、アーキテクチャドメインが全体の約25%を占める最重要分野です。以下のポイントが特に問われます。

  • 3層それぞれの役割と、どの処理がどの層で実行されるか
  • ストレージとコンピュートが分離されていることの具体的メリット
  • マイクロパーティションの特性(サイズ・不変性・列指向・自動管理)
  • 3種キャッシュの違い(保持場所・ウェアハウス起動要否・無効化条件)
  • Cloud Services Layer の10%課金ルール
  • エディション間の機能差(マルチクラスター・Time Travel期間・Tri-Secret Secure)

問題で確認

SnowPro Core

問題 1

SnowflakeのResult Cacheについて正しい説明はどれですか?

  1. Result Cacheはウェアハウスのローカルディスクに保存され、ウェアハウス停止時に消去される
  2. Result Cacheは24時間有効で、同一クエリ・同一ロール・データ未変更の場合にウェアハウスを使わず結果を返す
  3. Result CacheはEnterprise Edition以上でのみ利用可能である
  4. Result Cacheに格納できるデータサイズには50MBの上限がある

正解: B

Result CacheはCloud Services Layerに24時間保持されます。同一クエリテキスト・同一ロールで実行され、基テーブルにDML変更がない場合にヒットし、ウェアハウスを起動せずに結果を返却します。選択肢AはWarehouse Cache(Local Disk Cache)の説明です。

よくある質問

Snowflakeの3層アーキテクチャで、ストレージとコンピュートが分離されるメリットは何ですか?

ストレージとコンピュートが独立してスケールできるため、データ量の増加にストレージだけを拡張したり、クエリ負荷に応じてウェアハウスだけを増減させることが可能です。これにより、従来のオンプレミスDWHのように余剰リソースを抱える必要がなく、コスト効率が大幅に向上します。また、複数のウェアハウスが同一データに同時アクセスしてもロック競合が発生しない点も大きな利点です。

Cloud Services Layerの課金はどのように計算されますか?

Cloud Services Layerの消費クレジットが、日次で全ウェアハウス消費クレジットの10%を超えた分のみ課金されます(10%調整ルール)。たとえば、ウェアハウスが100クレジット消費し、Cloud Servicesが15クレジット消費した場合、課金対象は15 - 10 = 5クレジットです。認証・メタデータ管理・クエリ最適化などの基本処理は実質無料となるよう設計されています。

マイクロパーティションとクラスタリングキーの関係を教えてください。

Snowflakeはデータを50〜500MBの圧縮済みマイクロパーティションに自動分割し、各パーティションのmin/max値をメタデータとして保持します。クラスタリングキーを設定すると、指定カラムの値でパーティションが再編成(リクラスタリング)され、プルーニング効率が向上します。ただしリクラスタリングにはクレジットが発生するため、テーブルサイズが1TB以上かつ特定カラムでのフィルタが頻繁なケースで検討するのが推奨されます。

この記事で学んだ内容を問題で確認しましょう

16,000問以上の問題で実力チェック

無料で問題を解いてみる
この記事の著者

NicheeLab編集部

データエンジニアリング・クラウド資格の専門家。Databricks・Snowflake等の認定資格を保有し、実務経験に基づいた問題作成・解説を行っています。NicheeLab運営。


関連記事
Snowflake

Snowflake資格一覧|全11試験(SnowPro)の難易度・費用

Snowflake認定資格(SnowPro)全11試験の一覧・難易度・費用・出題範囲を徹底解説。...

Snowflake

Snowflake試験の難易度ランキング|全11資格を徹底比較

Snowflake(SnowPro)認定全11試験の難易度をランキング形式で比較。学習時間・合格に必要なスキルから分析。...

Snowflake

Snowflake資格の勉強方法|効率的な学習ルートと合格のコツ

Snowflake認定資格(SnowPro)に最短で合格するための勉強方法。公式リソース・学習スケジュールを徹底ガイド。...

Snowflake

SnowPro Core試験完全解説|出題範囲・問題例・合格戦略

SnowPro Core Certification(COF-C03)を徹底解説。出題範囲・100問の試験形式・合格ライ...

Snowflake

SnowPro Platform Associate完全解説|入門試験の攻略

SnowPro Associate: Platform Certification(SOL-C01)を徹底解説。最も簡単...

Snowflakeの記事一覧 (102件)
© 2026 NicheeLab All rights reserved.