Upgrade to Pro — share decks privately, control downloads, hide ads and more …

第8回Snowflake Rookies Camp

第8回Snowflake Rookies Camp

今回のお題は、2025年の第1回で取り組んだ Frosty Friday Week1 のリメイクです。第1回では S3(外部ステージ)から CSV を取り込みましたが、今回は Rookies Camp 仕様にアレンジして、外部の S3 を使わず、手元のファイルを Snowsight(SnowflakeのWeb画面)からアップロードして取り込みます。さらに CSV(構造化データ)に加えて、JSON(半構造化データ)のロードにも挑戦しています。

Avatar for Rookies Camp

Rookies Camp

July 10, 2026

Other Decks in Technology

Transcript

  1. そんな皆さんを そんな皆さんを 心から歓迎します! 心から歓迎します! 小さな疑問も大歓迎! 小さな疑問も大歓迎! #snowflake-rookies-camp でも受け付けています #snowflake-rookies-camp でも受け付けています

    みんなで助け合いながら、 みんなで助け合いながら、 新しい学びを一緒に始めましょう! 新しい学びを一緒に始めましょう! そんな皆さんを 心から歓迎します! 小さな疑問も大歓迎! #snowflake-rookies-camp でも受け付けています みんなで助け合いながら、 新しい学びを一緒に始めましょう!
  2. 特に重要なアーキテクチャ 特に重要なアーキテクチャ 特に重要なアーキテクチャ 出典:FORM S-1 Snowflake Inc. p.84    https://docs.snowflake.com/ja/user-guide/intro-key-concepts Snowflakeの機能を理解する

    にあたって大切な3層です。 この場では、簡潔にご説明し ます。 ・クラウドサービス層 - 認証、権限制御、クエリ最適化、     メタデータ管理など ・コンピュート層(クエリ処理層) - 仮想ウェアハウスで処理毎に  処理を実施 ・ストレージ層 - 物理データを列志向で格納 - マイクロパーティションで分割
  3. FROSTYFRIDAYとは FROSTYFRIDAYとは FROSTYFRIDAYとは Frosty_Fridayとは 1.金曜日に更新されるSnowflakeのスキルアップ ウィークリーチャレンジです 2.レベルは  Easy Basic Intermediate

    Hard  ※この勉強会ではEasyかBasicのみ 3.回答は(公式には)ありません!  ※先人たちの回答はGitHubにあります Snowflakeの機能を学びつつTipsが学べます! https://www.frostyfri.day/ 解説動画があります Snowvillage(Snowflakeのコミュニティー) でご活躍中の    tomoさん がくさん あれさん がSnowflakeを得意とするゲストを招いて 隔週で解説動画をYouTubeにUPしてくれています。 わからなければこの解説動画を見ながら学べます! https://www.youtube.com/watch? v=0T8P_bw6GgE&list =PLVj4iIZgzTAq2FzaBB gqFOtZaJTcoG3JR
  4. FROSTYFRIDAY FROSTYFRIDAY リメイクWEEK1を実施 リメイクWEEK1を実施 FROSTYFRIDAY リメイクWEEK1を実施 2025年の第1回に開催したSnowflake Rookies Campのお題「Frosty Friday

    Week1」 今回はRookies Camp仕様にリメイクしました。 SQLを使わず、内部ステージから取り込む問題に一 緒に挑戦しましょう!
  5. 一緒に学びたいこと ① CSV(構造化)と JSON(半構造化)のロード ② 内部ステージ・FileFormat・COPY INTO のしくみ ③ 取り込んだデータで簡単な分析

    ※今回は外部S3ではなく、手元のファイルをSnowsight からアップロードします FROSTYFRIDAYの FROSTYFRIDAYの リメイクWEEK1をやりつつ・・ リメイクWEEK1をやりつつ・・ FROSTYFRIDAYの リメイクWEEK1をやりつつ・・
  6. Snowflakeのオブジェクト Snowflakeのオブジェクト Snowflakeのオブジェクト アカウント データベース スキーマ データベース スキーマ ウェアハウス スキーマ

    テーブル テーブル ビュー ウェアハウス ウェアハウス ユーザー ユーザー ユーザー ロール ロール ロール ビュー ステージ ステージ タスク タスク テーブル テーブル ビュー ビュー ステージ ステージ タスク タスク テーブル テーブル テーブル テーブル ビュー ビュー ビュー ビュー ステージ ステージ ステージ ステージ タスク タスク タスク タスク
  7. 業務システム クラウドストレージ S3 / AzureBlobStorage / Google Cloud Storage Snowflake

    内部ステージ ステージとは? ステージとは? ステージとは? 外部ステージ 内部ステージと外部ステージの2種類存在します。 外部ステージは、例えばAWS S3の特定のバケットをSnowflake側で参照 できるように設定します。内部ステージは、Snowflake内部のバケットを 利用できるように設定します。 COPY INTO COPY INTO PUT クラウドストレージごとの コマンドなど
  8. テーブルでの持ち方 テーブルでの持ち方 構造化 VS VARIANT 構造化 VS VARIANT テーブルでの持ち方 構造化

    VS VARIANT 構造化データ(CSV) 半構造化データ(JSON) そのまま「列」で持つ ▹列ごとに型を決めて格納する ▹列構成(スキーマ)を事前に定義 VARIANT で丸ごと持つ ▹JSONを1カラムに丸ごと格納 ▹列を決めずに受けられて柔軟 VARIANT = なんでも入る「箱」 まず丸ごと受けて、必要な値は後から raw_data:キー::型 で取り出します。
  9. TIPS②:FILE FORMATを TIPS②:FILE FORMATを 作る理由 作る理由 TIPS②:FILE FORMATを 作る理由 「なんで作らないといけないの?」

    ファイル自体はFormat指定なしでもステージに「置く」ことは可能です。 しかし、ステージからテーブルへ流し込むCOPY INTO の際に、 「カンマ区切り か?ヘッダーは飛ばすか?」というようなルールをSnowflakeに教える“設定書” として File Format が必要になります。
  10. TIPS③:PATTERN 指定術 TIPS③:PATTERN 指定術 TIPS③:PATTERN 指定術 まとめてロードしたい時 (正規表現) PATTERN =

    '.*\.csv.* ステージ内の「.csv」を含むファイルを全て対象に一括で取り込みます。 狙い撃ちでロードしたい時 (完全一致) PATTERN = 'sales_202605\.csv' ファイル名を直接指定(ドットをエスケープ)し、特定のファイルだけを確実に取り 込みます。 状況に合わせて使い分けよう 新規ファイルを全部入れたい時は正規表現、過去の特定データだけ直したい時は完全 一致、というように状況に応じて使いわけができます。
  11. 勉強会で 勉強会で 分からないことがあれば・・ 分からないことがあれば・・    #snowflake-rookies-camp    #snowflake-rookies-camp チャンネル チャンネル    で是非質問してくください!!    で是非質問してくください!!

       初歩的な質問でもなんでも聞けるチャンネルに    初歩的な質問でもなんでも聞けるチャンネルに    したいと思っています!    したいと思っています! 勉強会で 分からないことがあれば・・    #snowflake-rookies-camp チャンネル    で是非質問してくください!!    初歩的な質問でもなんでも聞けるチャンネルに    したいと思っています!