❄️

Snowflakeの巨大データセットを使いこなす! Snowflakeサンプルデータ 徹底活用ガイド

に公開

🚀 はじめに

Snowflake を学び始めたばかりの時、あるいは新しい機能のパフォーマンスを検証したい時、「手頃な(あるいは巨大な)検証用データセットが欲しい!」と思ったことはありませんか?

空のテーブルに INSERT 文をちまちま発行するのは面倒ですし、リアルな分析クエリの練習にもなりません。

この記事では、Snowflakeが標準で提供している2つの強力な無料データセット、SNOWFLAKE_SAMPLE_DATATPC-DS 10 TB (Marketplace版) について、「それが何なのか」「どうやってセットアップするのか」「コストはどう違うのか」、そして 「具体的な活用事例」 を体系的に解説します。

この記事を読めば、あなたのSnowflake環境で、明日からすぐにギガバイト級、テラバイト級のデータを使った検証が可能になります。

※意外にもこの手の記事が見つからなかったので記事にしてみました!
 (私が探しきれていないだけかもしれないですが、、、)

1. 【即時利用OK】SNOWFLAKE_SAMPLE_DATA とは?

まず、最も手軽な SNOWFLAKE_SAMPLE_DATA です。

概要

SNOWFLAKE_SAMPLE_DATA は、Snowflake アカウントに 共有(imported database) として提供される 読み取り専用 データベースです。中身は、業界標準のベンチマークである TPC-HTPC-DS のサンプルデータが、複数のスケールファクター (SF) で含まれています。

  • TPC‑H: TPCH_SF1/TPCH_SF10/TPCH_SF100/TPCH_SF1000 (SF=1 は概ね約1GB、生データ換算の目安。圧縮により実サイズは変動)
  • TPC‑H: TPCDS_SF10TCL(10TB)/ TPCDS_SF100TCL(100TB)

重要:制限事項
SNOWFLAKE_SAMPLE_DATA読み取り専用 です。DDL/DML は不可 、さらに クローン(Zero‑Copy Cloning)Time Travel不可(imported database の制約)となります。

セットアップ方法(結論:不要)

SNOWFLAKE_SAMPLE_DATA を利用するための特別なセットアップは一切不要です。

ただし、上記イメージのようにSNOWFLAKE_SAMPLE_DATA見えていない場合 には以下の対応を管理ロールで実施する必要があります。

-- 管理ロールを利用
USE ROLE ACCOUNTADMIN;

-- 共有からデータベースを作成
CREATE DATABASE SNOWFLAKE_SAMPLE_DATA
FROM SHARE SFC_SAMPLES.SAMPLE_DATA;

-- 参照権限を付与(必要なロールに)
GRANT IMPORTED PRIVILEGES ON DATABASE SNOWFLAKE_SAMPLE_DATA TO ROLE PUBLIC;

SNOWFLAKE_SAMPLE_DATA が見えていれば、以下のようにクエリを実行して結果を確認することができます。

-- ウェアハウス(WH)は自分のものを使う必要があります
USE WAREHOUSE MY_WH;

-- SF1 (1GB) の CUSTOMER テーブルを叩いてみる
SELECT
  C_NAME,
  C_ACCTBAL
FROM
  SNOWFLAKE_SAMPLE_DATA.TPCH_SF1.CUSTOMER
ORDER BY
  C_ACCTBAL DESC
LIMIT 10;

コスト

  • ストレージコスト: 無料です。データの実体はSnowflake側が保持しており、利用者はストレージ料金を請求されません。
  • コンピューティングコスト: 発生します。上記クエリの実行に使った MY_WH の稼働料金が、利用者に請求されます。

注意: SNOWFLAKE_SAMPLE_DATA を 自分の DB にコピー(CTAS) したり マテリアライズドビュー を作成すると、その分は自アカウント で課金されます。

主な用途

  • Snowflakeの基本的なSQL操作の学習
  • 小規模〜中規模(〜100GB)でのクエリの動作確認
  • JOIN やウィンドウ関数の練習

2. 【要セットアップ】TPC-DS 10 TB (Marketplace) とは?

次に、本命の超巨大データセット TPC-DS 10 TB です。

概要

これは SNOWFLAKE_SAMPLE_DATA とは別に、Snowflake Marketplace から 数クリック(数秒~数十秒) で入手できる 無料 データセットです。
名前の通り、TPC-DSベンチマークの 10TB スケールという超巨大なデータセットであり、STORE_SALES(店舗売上)テーブルは 約 290 億行 、全ファクト合計は 約 560 億行 と超巨大です。
(リスティングによっては Managed Iceberg 版 も提供され、フォーマット比較にも便利です。)

セットアップ方法(Marketplace から "Get" する)

SNOWFLAKE_SAMPLE_DATA と異なり、こちらは明示的なセットアップ作業(約3分) が必要です。

  1. Snowsight (SnowflakeのWeb UI) の左側メニューから Data -> Marketplace を選択します。
  2. 検索バーで TPC-DS と入力します。
  3. Snowflake TPC-DS 10TB という公式リスティングが表示されるので、それをクリックします。
  4. Get ボタンをクリックします。
  5. オプション画面が表示されます。
    • Database name: 自分の環境に作成されるデータベース名を指定します。(例: TPCDS_10TB
    • Roles: どのロール(権限)にこのデータベースへのアクセスを許可するか選択します。(例: PUBLICSYSADMIN
  6. 再度 Get ボタンを押すと、数秒~数十秒でセットアップが完了します。

たったこれだけで、あなたのSnowflakeアカウントに TPCDS_10TB (指定した名前) データベースがマウントされ、10TBのデータセットにアクセスできるようになります。

注意: SNOWFLAKE_SAMPLE_DATA と同様に、 自分の DB にコピー(CTAS) したり マテリアライズドビュー を作成すると、その分は自アカウント で課金されます。


コスト(最重要)

Marketplaceから Get しても、データ自体の料金や、データを保持するためのストレージ料金は一切かかりません
これはSnowflakeのセキュアデータ共有の仕組みによるもので、データの実体はプロバイダー(Snowflake)側が保持し、利用者はそのデータへの参照(ポインター)を持つだけだからです。

  • ストレージコスト: 無料です。(Snowflakeがプロバイダーとして負担)
  • コンピューティングコスト: 発生します。この10TBのデータに対してクエリを実行する際、利用者が起動したウェアハウスの料金が発生します。

主な用途

  • 10TB 級データに対するクエリのパフォーマンステスト
  • ウェアハウスのサイジング(サイズ/マルチクラスターの検証)
  • 代表的な TPC‑DS クエリ の実行とチューニング

3. リアルな活用事例 — これらのデータで何を学ぶか? 🧑‍💻

これらのデータセットは、ただそこにあるだけではありません。Snowflakeの強力な機能を学ぶための、最高の「練習相手」になります。

活用例1: Snowflake公式ドキュメントでの機能デモ

Snowflakeの公式ドキュメントでは、SNOWFLAKE_SAMPLE_DATA がデモデータとして頻繁に登場します。

  • ベンチマーククエリの実行 (TPC-H / TPC-DS):
    複雑な分析クエリや JOIN のパフォーマンスを試すための、標準的なクエリ例が提供されています。これらを実行するだけで、Snowflakeのクエリエンジンの強力さを体感できます。

  • Time Travel(タイムトラベル)のデモ:
    「うっかりデータをUPDATEしてしまった!」というシナリオを安全に試せます。SNOWFLAKE_SAMPLE_DATA のテーブル(※実際はクローン推奨)に対して UPDATEDROP を実行し、AT 句や BEFORE 句を使って過去のデータを簡単に復元するデモに最適です。

活用例2: Snowflake Quickstarts (実践チュートリアル)

Snowflakeが提供する「Quickstarts」は、サンプルデータを使いながら特定のテーマをステップバイステップで学べる、まさに「活用事例の宝庫」です。

SNOWFLAKE_SAMPLE_DATATPC-DS 10TB を使って、以下のような実践的なチュートリアルが多数用意されています。

  • Time Travel や Zero-Copy Cloning の具体的な操作
  • 10TBデータに対するパフォーマンスチューニング
  • BIツール(Tableau, Power BIなど)との連携
  • Stream & Tasks を使ったデータパイプライン構築

これらは単なる読み物ではなく、SQLをコピー&ペーストして実行しながら学べるハンズオン形式になっています。

4. 結局、どちらを使えばいい?

2つのデータセットの使い分けを、コスト面も含めてまとめます。

項目 SNOWFLAKE_SAMPLE_DATA TPC-DS 10TB (Marketplace)
データモデル TPC-H (シンプル), TPC-DS (一部) TPC-DS (完全版)
データ規模 1GB 〜 1TB (SF1 〜 SF1000) 10TB (SF 10,000 相当)
セットアップ 不要 (見えない場合は FROM SHARE で作成) 必要 (Marketplaceから Get)
課金(ストレージ) 発生しない (Snowflake持ち) 発生しない (Snowflake持ち)
課金(コンピューティング) 発生する (クエリ実行時に自WHを使用) 発生する (クエリ実行時に自WHを使用)
主な用途 SQL学習/機能のクイック検証 大規模パフォーマンステスト/WHサイジング

補足: DB にコピー(CTAS)マテビュー、Search Optimization は、自前リソースの課金対象 になります。

5. 😌 おわりに

Snowflakeが提供する2種類の無料サンプルデータを紹介しました。
どちらもストレージコストは無料で、利用者はクエリ実行時のコンピューティングコスト(ウェアハウス代)だけを心配すれば良い、という点が重要です。

  • サクッと試したい: SNOWFLAKE_SAMPLE_DATA でSQLやTime Travelを学ぶ。
  • ガッツリ検証したい: TPC-DS 10TB で大規模クエリのパフォーマンスを試す。

特に「Quickstarts」は、これらのデータをどう活用すればよいかの具体的な答えが詰まっています。
ぜひ一度覗いてみてください。

これらのデータセットを活用して、快適な Snowflake ライフをお送りください!

📚 参考

Discussion