Snowflakeの3層アーキテクチャを初心者向けにやさしく解説

Snowflake

はじめに:なぜ「3層アーキテクチャ」を知っておくと得なのか?

こんにちは!Snowflakeを触り始めると、よく耳にするのが「3層アーキテクチャ」という言葉。なんだか難しそうですが、実はこの仕組みこそがSnowflakeの「速さ」「柔軟さ」「コスパの良さ」を支える心臓部なんです。

ここを理解しておくと、「なぜウェアハウスを止めても表のデータが消えないの?」「同じテーブルを別チームが触っても遅くならないのはなぜ?」といった疑問がスッと解けるようになりますよ。Snowflakeそのものについてまだイメージが湧かない方は、先にSnowflakeとは?従来のデータウェアハウスとの違いを初心者向けに解説を読むと、より理解が深まります。

Snowflakeの3層アーキテクチャとは?

Snowflakeの内部構造は、大きく次の3つの層に分かれています。

  • ストレージ層(Database Storage):データを保管する倉庫
  • コンピュート層(Query Processing):データを処理するエンジン
  • クラウドサービス層(Cloud Services):全体を司る司令塔

イメージとしては「巨大な図書館」を思い浮かべてみてください。本を保管する書庫(=ストレージ層)、本を読んで分析する閲覧室(=コンピュート層)、貸出や案内をするカウンター(=サービス層)、という3つが独立しているのがSnowflakeなんです。

① ストレージ層:データの「倉庫」

テーブルやデータベースに入っているデータは、すべてこの層に保存されます。中身はクラウド(AWS S3、Azure Blob、GCSなど)上に、Snowflake独自の圧縮・暗号化されたカラム型(列指向)フォーマットで自動的に保管されます。

ユーザーは「どんなフォーマットで保存するか」を意識する必要は一切なし。SQLでテーブルを作ればOKです。

CREATE TABLE sales (
  id        INT,
  amount    NUMBER(10,2),
  sold_at   TIMESTAMP
);

② コンピュート層:データを処理する「エンジン」

SQLを実行する“筋肉”の部分。Snowflakeでは「仮想ウェアハウス(Virtual Warehouse)」と呼ばれるクラスタが処理を担当します。サイズはXS〜6XLまで選べ、必要に応じて起動/停止/拡張ができます。

-- ウェアハウスを作って起動
CREATE WAREHOUSE my_wh WITH WAREHOUSE_SIZE = 'XSMALL';
USE WAREHOUSE my_wh;

SELECT COUNT(*) FROM sales;

ポイントは、ウェアハウスは複数同時に立ち上げられること。営業チーム用とデータサイエンスチーム用で別々のウェアハウスを使えば、お互いの重いクエリで遅くなる心配がありません。しかも止めている間は課金されないのでお財布にも優しい!

③ クラウドサービス層:全体を仕切る「司令塔」

ログイン認証、SQLの解析・最適化、メタデータ管理、トランザクション制御、アクセス制御など、いわゆる「裏方の頭脳」を担当しています。私たちユーザーが意識することはほぼありませんが、Snowsightで画面を開いた瞬間からずっと働いてくれている縁の下の力持ちです。

3層に分けると何が嬉しいの?

従来のDWHは「ストレージとコンピュートが一体」になっていることが多く、データを増やしたら処理マシンも一緒にスケールしなければなりませんでした。Snowflakeは3層が完全に独立しているので、こんなメリットがあります。

  • ストレージとコンピュートを別々にスケールできる(データだけ増やすのもOK)
  • 同じデータに対して複数チームが別ウェアハウスで同時アクセスしても競合しない
  • 使った分だけ秒単位課金。夜間は止めるといった節約が簡単

Snowsightでの確認方法

Snowflakeの管理画面「Snowsight」では、左メニューの「Admin → Warehouses」からコンピュート層の状態が確認できます。「Data → Databases」を見ればストレージ層に保存されたテーブル一覧が、「Activity → Query History」ではサービス層が記録したクエリ履歴がチェックできますよ。

まとめ

Snowflakeは「ストレージ層・コンピュート層・サービス層」という3つの独立した層でできており、これがクラウド時代にぴったりの柔軟さとコスパを生み出しています。最初は名前だけでも覚えておけば十分。実際にウェアハウスを起動してSQLを叩いてみると、「あ、いま動いているのはコンピュート層なんだな」と自然に体感できるはずです。

参考リンク

関連記事

タイトルとURLをコピーしました