❄️

Frosty Friday Live Challenge Vol.2

がく@ちゅらデータエンジニアです!

先日より、以前からやってみたかったFrosty Fridayをやる深夜RADIO的な番組を始めました。
一緒にメインMCをやってるのが、Tableau DataSaber時代からの友達の @tomowk1 さん♪

Frosty Fridayとは

https://frostyfriday.org/

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/ちゅらデータで一緒に働いてます♪

https://www.youtube.com/watch?v=KkcqTTWmol8

  • 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マッピング

https://docs.snowflake.com/en/release-notes/2024/8_17#new-copy-option-include-metadata

※csvでうまく動かない不具合があったのですが、現時点(2024年6月)でもこの不具合は修正されています!

VECTOR型、VECTOR類似度関数

https://x.com/SnowflakeDB/status/1788297982250479677

DASH DESAI氏(Snowflake Lead Developer Advocate) のノリノリの動画あり

https://quickstarts.snowflake.com/guide/asking_questions_to_your_own_documents_with_snowflake_cortex/index.html?index=..%2F..index#0

DASHさんの動画で使っているQuickStart

各種コネクタ(特に、GA4の生データコネクタ)

https://docs.snowflake.com/en/release-notes/2024/other/2024-04-30-gaad-gard-ga

Viewが提供されてて、展開する必要がないあたりがとても嬉しい

Dynamic TableがGA

https://docs.snowflake.com/en/release-notes/2024/other/2024-04-29-dynamic-tables

  • 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 @あれさん

https://www.youtube.com/watch?v=KkcqTTWmol8&t=18m51s

問題

Frosty Friday 社のコンサルタントは、Frost大学の歴史学部の分析の仕事を受注しました。
分析のために、データウェアハウスに 歴史上の君主 のデータを投入し分析に使いたいと考えています。
今回の課題は、https://frostyfridaychallenges.s3.eu-west-1.amazonaws.com/challenge_4/Spanish_Monarchs.json
にあるJSONファイルをデータウェアハウスに取り込み、下記の画像のようにテーブルを解析してください

https://frostyfriday.org/wp-content/uploads/2022/07/Screenshot-2022-07-14-at-20.08.12.png

※上記の画像が読めない場合は、クリックして大きな画像を閲覧してください。

  • ニックネームと配偶者
  • 誕生順のID
  • ファイル内に出現する順序で Inter-House ID
  • 最後は26行になるはず

■ヒント

  • 途中で列を失わないように
  • JSONを変換するときには利用可能なすべての出力とそのパラメータを必ず調査してください

https://github.com/allllllllez/frosty_friday/blob/main/sql/week-4.sql

INFER_SCHEMAを使っての取り込みをしてます!

https://qiita.com/friedaji/items/9d25cfb071de5792f0d1

を参考にされたそうな(こちらも、ちゅらデータの同僚が記事書いてます!)

https://github.com/gakut12/Frosty-Friday/blob/main/week4_hard_json/week4.sql
こちらはタシロの解法、INFER_SCHEMAはうまくできなかったの・・・・

Week5 Basic UDFs by gaku_t

https://www.youtube.com/watch?v=KkcqTTWmol8&t=37m45s

問題

今週のチャレンジでは、この問題を執筆した時点(※2022年7月)でかなり注目されている機能である SnowflakeでのPython を使用します。

最初に、数値型のカラムを一つ持つ非常にシンプルなテーブルを作ります。
レコード数や中の数値は自由に決めてください。

その後、数値を3倍にする 非常に基本的な関数から始めます。

この課題は、「難しいPython関数を構築する」ことではなく、「SnowflakeでのUDF(ユーザ定義関数)を構築して使用する」ことを目的とします。

単純なSELECT文でコードをテストできます。

SELECT timesthree(start_int) FROM FF_week_5;

https://github.com/gakut12/Frosty-Friday/blob/main/week5_basic_udfs/week5.sql

ちゅらデータ株式会社

Discussion