Frosty Friday Live Challenge Vol.12 Week25 Basic JSON & Week26
がく@ちゅらデータエンジニアです!
※以前の記事、公開を忘れていました・・・・・
Frosty Fridayをやる深夜RADIO的な番組をやっています。もうVol.12になりました♪
一緒にメインMCをやってるのが、Tableau DataSaber時代からの友達の @tomowk1 さん♪
また、前々回より、親会社の同僚であり仲間のあれさんも、レギュラーに迎えて、MC3人でお送りしています!
Frosty Fridayとは
2022年07年に最初のお題が投稿されたSnowflakeのスキルアップを目的とした学習コンテンツです。
1週間〜2週間に一度、Snowflakeに関するお題が出題されます。
レベル的には、初級、中級、上級があります。
Frosty Fridayへの参加方法は、
- 作ったコードをご自身のGithubなどで公開
- そのURLをお題(Week1など)にコメントを記載
回答は”公式”にはありません!
ただ、世界中でSnowflakeを使っている人のチャレンジの結果が閲覧でき、すごく参考になり面白いです。
Snowflake実務者の方々のノウハウが知れるコンテンツとなっています
現時点(2024年7月現在)で、Week102 まで出題されています。
後発ではありますが、Week1から順番にお題を進めています。
Frosty Friday Live Challenge Vol.12
今回は
Week25 - Basic JSON by gaku
Week26 - Intermediate Tasks & Email by あれさん
です。
タイムラインはこちら
0:00 オープニング
01:25 What's New :Native App support & Streamlit in Snowflake for AWS PrivateLink
02:16 What's New :Query objects larger than 16 MB in files on a stage
05:25 What's New :Notebooks on Container Runtime
09:51 Topics:Terraform で作る Snowflake UDF / UDTF
13:43 Topics: One dbt: the biggest features we announced at Coalesce 2024
19:54 Week 25 – JSON 問題説明
22:30 Week25 解法1
32:10 Week25 解法2
42:50 Week 26 – Tasks & Email 問題説明
44:51 Week26 解法1
55:27 Week26 解法2
58:52 Week26 解法3
01:04:05 Week26 解法4
01:11:18 クロージング
直近の話題からピックアップ
What's New(〜2024年10月10日)
-
Native App support for AWS PrivateLink & AWS PrivateLink in Streamlit in Snowflake・Doc
- AWSのPrivateLink経由で使えるようになったよ!というリリースで、高いセキュリティ化を担保した中でみるエンプラ用途で、Steamlit in SnowflakeやNative Appが使えるようになるので、より利用が促進されるのではないかな!と思います
-
Query objects larger than 16 MB in files on a stage
- とSnowflakeの1カラムには16MBまでという制約があります
- 以前までは、Stageから取り込むときに、一旦、カラムに取り込んでから、JSON型(Variant型)を分解して・・・という方法を使う際に、でかすぎるJSONの場合、Snowflakeに取り込む前に、加工する必要がありました。
- 今回で128MBまで読み込みについては、拡張されたので、分解してテーブルにINSERTすることができるようになったので、利便性はかなり上がったのではないかなと思います
- ありますよね・・・・・トップレベルが一つで、その下に配列でいっぱい16MBより小さなJSONのひとかたまりって・・・・
-
Notebooks on Container Runtime - Preview
- Snowflake Notebookでは、仮想ウェアハウスを選んでしかコンピュートができなかったのですが、Notebookだとよりデータサイエンスに適した、たとえば、メモリが通常よりも数倍のもの・・・とかにしたい、そんな柔軟性をもたせた、コンピュートプールを使用でき量になったのが今回のリリースになります
- ランタイムは、今回のプレビューでは、CPUとGPUの2種類
Snowflake関連トピック
-
Terraform で作る Snowflake UDF / UDTF (Hiroki Yamagishi@Simpleform)
- UDFやStored Procedureをどこで管理するか?GitでSQLは管理するけど、実際にSnowflakeで作成する際は、WebUIからCREATE FUNCTIONのようなSQLを手動実行する??
- みたいなことをしていました
- 今回のこの方式で、Terraformに持たせることができるので、これもオブジェクト管理の解決方法の一つかなと思います
- ※TableやViewをTerraform管理はちょっと厳しいなぁとは思っていました
-
One dbt: the biggest features we announced at Coalesce 2024
- 直接Snowflake・・というわけではないのですが、今後、dbtCloudのCross-Platform Data Meshで、複数のデータプラットフォームが混在した用途に応じた、各製品の得意な処理はその製品に任せる・・・といった大きなデータパイプライン・データ基盤が作れていくかもな・・・という夢が広がる機能でした
Frosty Friday Live Challenge
今回は
Week25 - Basic JSON by gaku
Week26 - Intermediate Tasks & Email by あれさん
です。
解説は動画を見てください!
Week25 - Basic JSON
19分54秒あたりから
今回は、
- ベーシックな解法
- INFER_SCHEMAを使った解法+α
Week26 - Intermediate Tasks & Email
42分辺りから
解法を複数
まず最初にTASKを作るところから。(非常に簡単なTASK)
TASK_HISTORYを使って、ウォッチするところとかもTIPSですね。
TASKに関しての解法が
- 子タスクを使う
- ファイナライザータスクを使う
そして通知に関しての解法
通知する方法がだんだんと増えてきて、古い解法から最新の解法まで解説されてます。
- SYSTEM$SEND_EMAIL関数を使ってEmail通知
- Notification Integrationを使う
- 通知先のメールアドレスは、Verify済みの宛先にしか送れないのは注意
- SYSTEM&SEND_SNOWFLAKE_NOTIFICATION関数を使って、Email通知
- SYSTEM&SEND_SNOWFLAKE_NOTIFICATION関数を使って、Slack通知
- Slack用にNotification Integrationを作る
- 手前味噌ですが、拙ブログSlack通知(デコ版)を作ってみる〜Webhook Notification版もご参考ください
Discussion