Frosty Friday 解答担当者のひそかな楽しみ
はじめに
🎁本記事は Frosty Friday Advent Calendar 2024 2日目の記事です🎁
この記事をご覧になっている方はきっと Frosty Friday live challenge を視聴されていますよね。(いつもご視聴いただきましてありがとうございます!)
この記事では、私がチャレンジの解説を担当するとき、その過程でひそかに楽しんでいるいくつかのことを紹介します。
楽しみポイント
1. 機能の歴史を振り返る
Frosty Friday では、リリースされたばかりの機能を扱うチャレンジがよく登場します。
新機能系チャレンジを担当するときは、その機能がいつ プライベートプレビュー/パブリックプレビュー/一般公開になったか、また関連するアップデートがあったか、などを振り返ります。
こうして振り返ると「当時の機能で解くならこうだけど、今ならこう解くこともできる!」とか、解く楽しみが増えるわけですね。
例:Week 26 – Tasks & Email
この問題は 2022/12/09 に公開されました。ここで利用する Sending Email Notifications 機能は 2022/11 プレビュー開始され、2023/08 に一般公開となっています。
Sending Email Notifications 機能のドキュメントはこちら。
そして Notification 機能といえば、メールだけでなく Webhook やメッセージングサービスにも通知を送れる新しい Notifications 機能が 2024/05 にリリースされました。
そして、Week 26 の解説動画がこちらです。出題当時に意図されていたであろう SYSTEM$SEND_EMAIL()
を使った解答だけでなく、SYSTEM$SEND_SNOWFLAKE_NOTIFICATION
を使った解答も作成しました。
2. ほかの方の解答を読む
チャレンジのコメント欄に、ほかの Frosty Friday 参加者の解答が投稿されています。十人十色の解き方があり、これがめちゃめちゃ勉強になるのです。
また、初見で「わからん!!」と思った問題は、先に解答を読んだりもしています。わかんないものはしょうがない。
3. 他の解法を考える
「1. 機能の歴史を振り返る」 では、他の機能を使った解法を考えることをお伝えしました。
さて、Snowflake で使える言語は SQL だけではありません。ストアドプロシージャ/UDF のチャレンジであれば、Python などで解くこともできますね。また、Snowflake に対応しているツールを使うこともできるはずです。Frosty Friday のチャレンジ一覧ページには、dbt で解けるかどうかが記載されています。
例:Week 20 – Stored Procedures
解答例は SQL Script や dbt で実行するものがありましたが、Python のものがなかったので、作ってみました。
動画はこちらです。
例:Week 32 – Session Security
内容によっては、dbt だけでなく Terraform も使えそうです。ということで Terraform で解いてみたのがこちら。(ただ、解答作成当時は Session policy リソースがなかったので、代わりに危険なリソースを使っており、よほどのことがない限り参考にしないでほしいですが。。。)
4. ドキュメントを読む
そしてやっぱりドキュメントは基本。Frosty Friday のおかげで、知らないオプションや関数を知るきっかけができました。また、久しぶりに読むと内容が更新されていることがあったりして、これも面白いところです。
例:Week 4 – JSON
半構造化データを変換する問題です。FLATTEN()
のオプションで index を取ってみたりしています。また、COPY INTO のオプションで新たに INCLUDE_METADATA が登場したので、早速試してみたりしました。
動画はこちらです。
さいごに
Frosty Friday にはこういう楽しみ方もあります。自分だけの楽しみ方を見つけると Frosty Friday をもっと楽しむことができます!レッツエンジョイ Frosty Friday!
Frosty Friday Live Challenge では出演者を募集しています。自分の解法を紹介してみたい方、Snowflake のアップデートを語りたい方、ぜひぜひお声がけください!!
Discussion