Snowflakeは従来のデータウェアハウスとは異なるクラウドネイティブなアーキテクチャを採用しており、以下の3つの主要なコンポーネントによって構成されています。
1. 📦 データベースストレージ(Database Storage)
概要
- データは自動的に最適な圧縮形式で保存され、クエリ性能とコスト効率を向上。
- データは列指向形式で格納。
- ステージングやデータレイク的な使い方も可能。
特徴
項目 | 内容 |
---|
保存形式 | 列指向・圧縮済み |
格納対象 | 構造化・半構造化データ(JSON、Avro、Parquetなど) |
利点 | ストレージとコンピュートが分離され、柔軟なスケーリングが可能 |
2. ⚙️ クエリ処理(Query Processing)
概要
- 実際のSQLクエリの実行や分析を行う層。
- 仮想ウェアハウス(Virtual Warehouse)と呼ばれるコンピュートリソースを使用。
特徴
項目 | 内容 |
---|
実行単位 | 仮想ウェアハウス(マルチクラスター可) |
スケーリング | 自動・手動での水平スケーリング |
並列処理 | ユーザやワークロードごとに分離可能 |
3. ☁️ クラウドサービス(Cloud Services)
概要
- メタデータ管理、認証、アクセス制御、インフラオーケストレーションなどを担当。
- 全体のオーケストレーションを行う“頭脳”部分。
特徴
項目 | 内容 |
---|
管理機能 | 認証、セキュリティ、メタデータ、トランザクション |
その他 | タスクスケジューラ、モニタリング、キャッシュ最適化など |
API | RESTベースAPIを提供し自動化が可能 |
図解:Snowflakeアーキテクチャ全体図
┌────────────────────┐
│ Cloud Services │← 認証・管理・メタ情報制御
└────────┬───────────┘
│
┌────────▼────────┐
│ Query Processing │← 仮想ウェアハウス(Compute層)
└────────┬────────┘
│
┌────────▼────────┐
│ Database Storage │← S3/GCS/Azure Blob等に保存(Storage層)
└────────────────────┘
なぜこの構成が優れているのか?
- コンピュートとストレージが分離されており、コストと性能の最適化が可能。
- 同時実行性が高く、スケーラブルで安定したパフォーマンスを提供。
- クラウドサービスによって、インフラ運用負荷を軽減できる。
試験対策ポイント(SnowPro Core)
- 「3つのコンポーネントは何か?」という形式でよく出題される。
- 各層の役割とメリットをセットで暗記すると応用問題にも対応できる。
- 仮想ウェアハウスとクラウドサービスの違いに注意。
参考リンク