ホーム » データサイエンス » Snowflake » Snowflakeのアーキテクチャ:3つの主要コンポーネントの理解

Snowflakeのアーキテクチャ:3つの主要コンポーネントの理解

Snowflakeは従来のデータウェアハウスとは異なるクラウドネイティブなアーキテクチャを採用しており、以下の3つの主要なコンポーネントによって構成されています。


1. 📦 データベースストレージ(Database Storage)

概要

  • データは自動的に最適な圧縮形式で保存され、クエリ性能とコスト効率を向上。
  • データは列指向形式で格納。
  • ステージングやデータレイク的な使い方も可能。

特徴

項目内容
保存形式列指向・圧縮済み
格納対象構造化・半構造化データ(JSON、Avro、Parquetなど)
利点ストレージとコンピュートが分離され、柔軟なスケーリングが可能

2. ⚙️ クエリ処理(Query Processing)

概要

  • 実際のSQLクエリの実行や分析を行う層。
  • 仮想ウェアハウス(Virtual Warehouse)と呼ばれるコンピュートリソースを使用。

特徴

項目内容
実行単位仮想ウェアハウス(マルチクラスター可)
スケーリング自動・手動での水平スケーリング
並列処理ユーザやワークロードごとに分離可能

3. ☁️ クラウドサービス(Cloud Services)

概要

  • メタデータ管理、認証、アクセス制御、インフラオーケストレーションなどを担当。
  • 全体のオーケストレーションを行う“頭脳”部分。

特徴

項目内容
管理機能認証、セキュリティ、メタデータ、トランザクション
その他タスクスケジューラ、モニタリング、キャッシュ最適化など
APIRESTベースAPIを提供し自動化が可能

図解:Snowflakeアーキテクチャ全体図

┌────────────────────┐
│     Cloud Services │← 認証・管理・メタ情報制御
└────────┬───────────┘
         │
┌────────▼────────┐
│    Query Processing   │← 仮想ウェアハウス(Compute層)
└────────┬────────┘
         │
┌────────▼────────┐
│   Database Storage     │← S3/GCS/Azure Blob等に保存(Storage層)
└────────────────────┘

なぜこの構成が優れているのか?

  • コンピュートとストレージが分離されており、コストと性能の最適化が可能。
  • 同時実行性が高く、スケーラブルで安定したパフォーマンスを提供。
  • クラウドサービスによって、インフラ運用負荷を軽減できる。

試験対策ポイント(SnowPro Core)

  • 「3つのコンポーネントは何か?」という形式でよく出題される。
  • 各層の役割とメリットをセットで暗記すると応用問題にも対応できる。
  • 仮想ウェアハウスとクラウドサービスの違いに注意。

参考リンク