どのようなアプリやサービスでも最初は何をしたら良いかわからないものなので、何かしら学習コンテンツが必要とされると思いますが、今回Snowflakeを勉強するにあたり、Snowflake Universityでオンデマンドで無料で受けられるHands-On Essentialシリーズというものがあったので受けてみました。
このHands-On Essentials Seriesは以下5つのコースがあります。
- Badge 1:Data Warehousing Workshop
- Badge 2:Data Application Builders Workshop
- Badge 3:Sharing, Marketplace, & Exchanges Workshop
- Badge 4:Data Lake Workshop
- Badge 5:Data Engineering Workshop
頭にBadgeというのがついているのは、受講完了するとCredlyのバッジがもらえるからですね。
基本英語ですが、動画にはスクリプトがついているので、翻訳ツールを使うことも可能ですし、動画がメインでもないので、基本翻訳すればどうにかなる感じでした(2023年7月時点では、Badge1だけ日本語字幕も出せました)。
このシリーズはハンズオンという形式ですので、実際にSnowflakeを触りながら学んでいきます。しかし環境がないと触れないのですが、このシリーズではSnowflakeの無料トライアルを使って学習を進めていくようになっています。トライアルは基本30日なので、30日以内にハンズオンを完了させる必要があります(トライアル環境のかわりに、実際の商用環境を使うことはできません。少なくともバッジを取得するためには利用できません。これは、アカウント権限がAccountAdminを使うため、組織によってはこの権限を与えられないからです)。ちなみに、トライアルは$400までとなるので、超えるとNGです。
また、Snowflakeと組み合わせる周辺サービス(GitHub等)もトライアルなどを利用して学習を進めていくようになっています。
受けてみた感想
正直、まずBadge1のData Warehousing WorkshopだけでもやってからSnowflakeの本番環境を触った方が良いと思いました。教育を受けるにしても、使い始めにあうように受けれるかどうかわかりませんが、まずオンデマンドでいつでも受けることができるこのシリーズはSnowflakeの全体を把握するには非常に良いように思います(が、ストーリー付けがあり、若干冗長なところはありますが、そこはしょうがないですね・・・)。
なお、一つのコースで5~7時間程度はかかるかと思います(あとで見直せるように全部スクショ取りながらやっていたので、結構時間がかかりました)。
おすすめ度を★五段階で見てみましょう(個人的感想です)。
おすすめ度:
- Badge 1:Data Warehousing Workshop:★★★★★
- Badge 2:Data Application Builders Workshop:★☆☆☆☆
- Badge 3:Sharing, Marketplace, & Exchanges Workshop:★★☆☆
- Badge 4:Data Lake Workshop:★★★☆☆
- Badge 5:Data Engineering Workshop:★★★★☆
バッジを取るための簡単な注意事項
Credlyでバッジをもらうためには、DORAと呼ばれるSnowflakeのシステム(?)にハンズオンラボの状況を提出する必要があります。これはSQLのコードで行われますが、そのセットアップでロケーターやメールアドレス等の情報を正確に提供する必要があります(このあたりのセットアップなどで最初の章がまるっと割かれていたりします)。すべてコース内の指示通り進めればいいだけなのでそれほど難しいわけではないのですが、ご注意ください。
また、コースは30日以内に終わらせないとトライアルが終わってしまい、クレジットカード番号を入力して(Snowflakeの利用料を払って)コースを続けるか、新たなトライアルを行い、はじめからコースを進める必要があるそうです(おそらく、バッジごとにトライアルアカウントは変わっても問題ない気がしますが・・・)。
ちなみに、このDORAのコードを動かすのに特定のDB(UTIL_DB)上でACCOUNTADMINで動かさないといけないのが結構めんどくさいですね・・・(アカウント変更などまでコードに含んでほしかった・・・)。
各コース詳細
Badge 1:Data Warehousing Workshop

基本的なSnowflakeの使い方を学習します。Snowflakeの使い始めには最適なハンズオンラボです。
- ロールの説明
- ウェアハウスの説明
- データベースの作り方、テーブルの作り方、
- 所有権の変更
- ワークシート
- SHOW DATABASES/SCHEMAS
- データの追加(INSERT INTO、COPY INTO)
- ステージング
- シーケンスの作成
- JSONファイルの扱い
Badge 2:Data Application Builders Workshop

Streamlitを用いたWEBアプリの開発を学びます。ここでは、外部の連携サービスであるRiveryを用いてGoogle SpreadSheetと連携なども行います。Pythonの環境としては、GitHubの環境を用います。また、Snowflakeだけではなく、RestAPIなどとの連携も行います。
Pythonのコードは基本的に提示されているため、コピペで問題ありません(少しくらい修正はあります!)
あまりSnowflake側で何か大きく学ぶ部分はなかったように思いますが、連携サービス使ってみるという向きには良いかもしれません。
逆に、Streamlitに興味がある方はぜひ受けたほうが良い内容に思います(本ブログではSnowflakeの部分に着目しているので、評価として低めにつけています)。
Badge 3:Sharing, Marketplace, & Exchanges Workshop

Snowflakeの特徴であるダイレクトシェアリング、マーケットプレイス、エクスチェンジについて学びます。
- Direct Sharing
- ビュー(View)の作成方法
- 非Snowflakeユーザー用のアカウント(Reader Account)作成
- Data Marketplace
- Exchange
- ストアドプロシージャの作成方法
- タスクの実行と管理
SQLについてもBadge2までより複雑な能力を問われました(Join、Distinct、Min、Max等)。また、ロールを正しく設定しておかないとエラーになる部分もいくつかありました。
Badge 4:Data Lake Workshop

Snowflakeの外に置いているデータに対してSnowflakeでアクセスする方法を中心に学びます。また、地理空間データの取り扱い、構造化、半構造化、非構造化データについても学びます。
- 外部ステージのファイルを加工してViewを作成
- 非構造化データ(ディレクトリテーブル)
- SQL内でAS句のネスト
- 半構造化データ(PARQUET、JSON)
- 地理データの取り扱い(外部サイトを使って地図で確認)
- snowflakeの地理空間関数
- マテリアライズドビュー
- Icebergテーブル概要
Badge 5:Data Engineering Workshop

データエンジニアリングについて学びます。データパイプラインの作り方が主になりますが、スケジュール実行、イベント駆動型、サーバーレスタスクなどについて説明があります。また、タイムゾーンの話について結構時間が割かれています。
- タイムゾーンについて
- Query Profileを見る
- タスク
- サーバーレスタスク
- データパイプライン構築
- Snowpipe
- ダッシュボード
- Merge
コメント