Snowflakeは従来のShared-Disk / Shared-Nothing型とは異なる独自のマルチクラスターShared Dataアーキテクチャを採用しています。ストレージ・コンピュート・クラウドサービスの3層が完全に分離されており、各層が独立してスケールできる点が最大の特徴です。本記事では、3層の役割・マイクロパーティション・キャッシュ機構・Cloud Services Layerの課金ルールまで、試験と実務の両面で押さえるべき要点を解説します。
Snowflakeのアーキテクチャは以下の3層で構成されます。各層が独立したスケーリングとフェイルオーバーを持ち、ユーザーはインフラストラクチャの管理を意識せずにデータ分析に集中できます。
┌─────────────────────────────────────────────┐
│ Cloud Services Layer │
│ 認証 / アクセス制御 / クエリ最適化 │
│ メタデータ管理 / トランザクション管理 │
├─────────────────────────────────────────────┤
│ Compute Layer (Virtual Warehouses) │
│ WH-1 (XS) │ WH-2 (L) │ WH-3 (XL) │
│ 独立したクラスター、相互に影響なし │
├─────────────────────────────────────────────┤
│ Storage Layer │
│ クラウドストレージ (S3 / Azure Blob / GCS) │
│ マイクロパーティション (列指向・圧縮済み) │
└─────────────────────────────────────────────┘
データはクラウドプロバイダーのオブジェクトストレージ(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期間中保持されます。
クエリ処理を担当するのがVirtual Warehouse(仮想ウェアハウス)です。各ウェアハウスは独立したコンピュートクラスターであり、他のウェアハウスのワークロードに影響を与えません。
| サイズ | クレジット/時間 | 推奨用途 |
|---|---|---|
| X-Small | 1 | 開発・テスト・軽量クエリ |
| Small | 2 | 小規模ダッシュボード |
| Medium | 4 | 中規模ETL・BI |
| Large | 8 | 大規模バッチ処理 |
| X-Large | 16 | TB級テーブルのフルスキャン |
| 2XL〜6XL | 32〜512 | 超大規模データ処理 |
ウェアハウスにはマルチクラスター機能があり、同時実行クエリ数の増加に応じてクラスターを自動追加できます。Auto-suspendとAuto-resumeにより、アイドル状態のウェアハウスは自動停止し、クエリ受信時に自動起動します。
Snowflake全体を統制する「頭脳」にあたる層です。ユーザーからは見えませんが、以下の重要な機能を担っています。
| 項目 | 値 |
|---|---|
| 課金閾値 | 日次ウェアハウス消費クレジットの10% |
| 課金対象 | 10%を超過した分のみ |
| 確認方法 | ACCOUNT_USAGE.METERING_HISTORY ビュー |
| 超過しやすいケース | SHOW / DESCRIBE コマンドの大量実行、Snowpipe通知処理、大量のCOPY INTO実行 |
たとえばウェアハウスが1日に200クレジット消費した場合、Cloud Servicesの閾値は20クレジットです。Cloud Servicesが25クレジット消費していれば、25 - 20 = 5クレジットのみが追加課金されます。
Snowflakeには3種類のキャッシュがあり、クエリパフォーマンスの向上とコスト削減に貢献します。
| キャッシュ種類 | 保持場所 | 有効期間 | 条件 | コスト |
|---|---|---|---|---|
| Result Cache | Cloud Services Layer | 24時間(再利用で延長) | 同一クエリ・同一ロール・データ未変更 | ウェアハウス不使用(クレジットゼロ) |
| Metadata Cache | Cloud Services Layer | 常時 | COUNT / MIN / MAX などの集約クエリ | ウェアハウス不使用(クレジットゼロ) |
| Warehouse Cache(Local Disk Cache) | ウェアハウスのSSD | ウェアハウス稼働中 | 同一ウェアハウスで同一テーブルへのアクセス | ウェアハウス稼働コストに含まれる |
Result Cacheは最もコスト効率が良く、ウェアハウスを起動せずに結果を返します。BI ツールの定期リフレッシュなど、同一クエリが繰り返されるワークロードで特に効果的です。ただし、基となるテーブルにDML操作が行われるとResult Cacheは無効化されます。
| 機能 | Standard | Enterprise | Business Critical | VPS |
|---|---|---|---|---|
| マルチクラスターウェアハウス | - | 対応 | 対応 | 対応 |
| Time Travel(最大90日) | 1日のみ | 最大90日 | 最大90日 | 最大90日 |
| マテリアライズドビュー | - | 対応 | 対応 | 対応 |
| 検索最適化サービス | - | 対応 | 対応 | 対応 |
| Tri-Secret Secure | - | - | 対応 | 対応 |
| AWS PrivateLink / Azure Private Link | - | - | 対応 | 対応 |
| 専用メタデータストア | - | - | - | 対応 |
SnowPro Core試験では、アーキテクチャドメインが全体の約25%を占める最重要分野です。以下のポイントが特に問われます。
SnowPro Core
問題 1
SnowflakeのResult Cacheについて正しい説明はどれですか?
正解: 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以上かつ特定カラムでのフィルタが頻繁なケースで検討するのが推奨されます。
NicheeLab編集部
データエンジニアリング・クラウド資格の専門家。Databricks・Snowflake等の認定資格を保有し、実務経験に基づいた問題作成・解説を行っています。NicheeLab運営。
Snowflake資格一覧|全11試験(SnowPro)の難易度・費用
Snowflake認定資格(SnowPro)全11試験の一覧・難易度・費用・出題範囲を徹底解説。...
Snowflake試験の難易度ランキング|全11資格を徹底比較
Snowflake(SnowPro)認定全11試験の難易度をランキング形式で比較。学習時間・合格に必要なスキルから分析。...
Snowflake資格の勉強方法|効率的な学習ルートと合格のコツ
Snowflake認定資格(SnowPro)に最短で合格するための勉強方法。公式リソース・学習スケジュールを徹底ガイド。...
SnowPro Core試験完全解説|出題範囲・問題例・合格戦略
SnowPro Core Certification(COF-C03)を徹底解説。出題範囲・100問の試験形式・合格ライ...
SnowPro Platform Associate完全解説|入門試験の攻略
SnowPro Associate: Platform Certification(SOL-C01)を徹底解説。最も簡単...