Frosty Friday Live Challenge Vol.2
がく@ちゅらデータエンジニアです!
先日より、以前からやってみたかったFrosty Fridayをやる深夜RADIO的な番組を始めました。
一緒にメインMCをやってるのが、Tableau DataSaber時代からの友達の @tomowk1 さん♪
Frosty Fridayとは
2022年07年に最初のお題が投稿されたSnowflakeのスキルアップを目的とした学習コンテンツです。
1週間〜2週間に一度、Snowflakeに関するお題が出題されます。
レベル的には、初級、中級、上級があります。
Frosty Fridayへの参加方法は、
- 作ったコードをご自身のGithubなどで公開
- そのURLをお題(Week1など)にコメントを記載
回答は”公式”にはありません!
ただ、世界中でSnowflakeを使っている人のチャレンジの結果が閲覧でき、すごく参考になり面白いです。
Snowflake実務者の方々のノウハウが知れるコンテンツとなっています
現時点(2024年5月現在)で、Week94 まで出題されています。
後発ではありますが、Week1から順番にお題を進めています。
Frosty Friday Live Challenge Vol.2
今回のゲストは、あれさん♪
- Data Superhero 2024
- Datum Studio/ちゅらデータで一緒に働いてます♪
- Opening 番組紹介、自己紹介、あれさん
- 1:45 What's New
- 17:30 Frosy Friday 説明
- 18:51 Week4 Hard JSON by あれさん
- 37:45 Week5 Basic UDFs by @gaku_t
今週のリリースノートからピックアップ
Snowflake Arctic
Arctic : Snowlfakeが提供するOSSのモデル名(LLAMAとか)
COPY INTO に METADATAマッピング
※csvでうまく動かない不具合があったのですが、現時点(2024年6月)でもこの不具合は修正されています!
VECTOR型、VECTOR類似度関数
DASH DESAI氏(Snowflake Lead Developer Advocate) のノリノリの動画あり
DASHさんの動画で使っているQuickStart
各種コネクタ(特に、GA4の生データコネクタ)
Viewが提供されてて、展開する必要がないあたりがとても嬉しい
Dynamic TableがGA
- Dynamic Tableとはどんなの?(Summitで発表されて1年間!
- Dynamic Table vs Stream & Tasks
- それぞれのユースケース:Dynamic Table , Stream & Tasks , Materialized View
Frosty Friday Live Challenge
今回は
- Week4 Hard JSON by あれさん
- Week5 Basic UDFs by gaku_t
です。
解説は動画を見てください!
Week4 Hard JSON @あれさん
問題
Frosty Friday 社のコンサルタントは、Frost大学の歴史学部の分析の仕事を受注しました。
分析のために、データウェアハウスに 歴史上の君主 のデータを投入し分析に使いたいと考えています。
今回の課題は、https://frostyfridaychallenges.s3.eu-west-1.amazonaws.com/challenge_4/Spanish_Monarchs.json
にあるJSONファイルをデータウェアハウスに取り込み、下記の画像のようにテーブルを解析してください
※上記の画像が読めない場合は、クリックして大きな画像を閲覧してください。
- ニックネームと配偶者
- 誕生順のID
- ファイル内に出現する順序で Inter-House ID
- 最後は26行になるはず
■ヒント
- 途中で列を失わないように
- JSONを変換するときには利用可能なすべての出力とそのパラメータを必ず調査してください
INFER_SCHEMAを使っての取り込みをしてます!
を参考にされたそうな(こちらも、ちゅらデータの同僚が記事書いてます!)
こちらはタシロの解法、INFER_SCHEMAはうまくできなかったの・・・・
Week5 Basic UDFs by gaku_t
問題
今週のチャレンジでは、この問題を執筆した時点(※2022年7月)でかなり注目されている機能である SnowflakeでのPython を使用します。
最初に、数値型のカラムを一つ持つ非常にシンプルなテーブルを作ります。
レコード数や中の数値は自由に決めてください。
その後、数値を3倍にする 非常に基本的な関数から始めます。
この課題は、「難しいPython関数を構築する」ことではなく、「SnowflakeでのUDF(ユーザ定義関数)を構築して使用する」ことを目的とします。
単純なSELECT文でコードをテストできます。
SELECT timesthree(start_int) FROM FF_week_5;
Discussion