1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Snowflakeとは?

Posted at

Snowflake はクラウドベースの データウェアハウス(DWH)サービス であり、AWS、Azure、GCP といったパブリッククラウド上でフルマネージド型として提供される。
最大の特徴は コンピューティングリソースとストレージの分離(Separation of Compute and Storage) にあり、柔軟な拡張性とコスト効率を両立する。利用者はインフラ管理を意識することなく、SQLベースでデータの分析・共有・統合を実行できる。

1.登場の背景

  1. オンプレミスDWHの限界

    • サーバー容量が固定 → トラフィック増加時の拡張が困難
    • 保守・ライセンスコストの増大
    • Hadoopなど分散システムは柔軟だが運用管理が複雑
  2. クラウド移行の潮流

    • AWS Redshift、Google BigQuery、Azure Synapse などクラウドDWHが登場
    • しかし多くは ストレージとコンピューティングの完全分離 が不十分、または同時実行性能に制約あり
  3. Snowflakeの登場(2012年設立)

    • クラウドネイティブ設計
    • ストレージとコンピューティングを完全分離、必要に応じて独立した Virtual Warehouse(コンピューティングクラスター)を作成可能
    • データ共有機能、半構造化データ(JSON, Avro, Parquet)への対応

これらの差別化要素により、Snowflake は急速に普及し、SaaS型データ分析基盤の標準の一つとなった。

利用方法

① 基本構造

  • Storage Layer: データ保存(カラム形式・圧縮・自動最適化)
  • Compute Layer: Virtual Warehouse(クエリ実行単位)。独立してスケールアップ/ダウン可能
  • Services Layer: 認証、メタデータ管理、最適化、クエリプラン制御

② 主な特徴

  • サーバーレス管理: インフラ構築不要
  • 無制限の同時実行性: 複数の Virtual Warehouse が同時に同一データへアクセス可能
  • データ共有: アカウント間で安全にデータを共有できる
  • 半構造化データ対応: VARIANT 型により JSON/Avro/Parquet を直接処理可能

③ 基本的な操作例

A. アカウント作成・接続

Web UI、CLI(snowsql)、Python Connector などからアクセス可能

B. スキーマ・テーブル作成

CREATE DATABASE MY_DB;
USE DATABASE MY_DB;
CREATE SCHEMA MY_SCHEMA;

CREATE TABLE MY_SCHEMA.USERS (
    ID INT,
    NAME STRING,
    CREATED_AT TIMESTAMP
);

C. データロード(Stage経由)

CREATE STAGE my_stage URL='s3://my-bucket/data/';
COPY INTO MY_SCHEMA.USERS
FROM @my_stage/users.csv
FILE_FORMAT=(TYPE=CSV FIELD_OPTIONALLY_ENCLOSED_BY='"');

D. クエリ実行

SELECT NAME, COUNT(*)
FROM MY_SCHEMA.USERS
GROUP BY NAME;

E. Virtual Warehouse管理

CREATE WAREHOUSE MY_WH WITH WAREHOUSE_SIZE = 'XSMALL';
USE WAREHOUSE MY_WH;

F. データ共有

CREATE SHARE my_share;
GRANT USAGE ON DATABASE MY_DB TO SHARE my_share;
GRANT SELECT ON ALL TABLES IN SCHEMA MY_SCHEMA TO SHARE my_share;

まとめ

  • 定義: クラウドネイティブなDWHサービス
  • 背景: オンプレDWHの限界とクラウド移行の流れの中で、ストレージ・コンピューティング分離アーキテクチャを採用
  • 利用法: SQLによる定義・ロード・クエリ、Virtual Warehouseの柔軟な拡張、Stageによる外部データ連携、安全なデータ共有

データウェアハウス(DWH)の定義

データウェアハウス(Data Warehouse, DWH) とは、企業の 意思決定(Decision Making) を支援するために、ERP、CRM、Webログ、外部データなど複数の業務システムから収集したデータを一元的に蓄積し、分析・参照に最適化したデータベースシステム
その本質的な特徴は以下の通り:

  • 主題志向(Subject-Oriented): 売上・顧客・製品・組織など分析テーマ別に設計
  • 統合性(Integrated): 異なるソースデータを一貫した形式に変換・統合
  • 時系列性(Time-Variant): 過去から現在までの推移を時系列で保持
  • 非揮発性(Non-Volatile): 運用DBと異なり頻繁に更新されず、主に参照・分析用途に利用
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?