❄️

Frosty FridayLC Vol.15 Week 31 MIN_BY, MAX_BY & Week32 Session Securiy

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

Frosty Friday Live ChallangeもVol.15!(Vol.0があるので16回目になりました)
毎回、ゲストにも来ていただけるようになり、大変楽しいです♪
普段業務では使わないように機能の検証・・・・これは、**テックセラピー!**とても楽しく収録・運営をさせていただいています。

こちらは

https://qiita.com/advent-calendar/2024/frostyfriday
の13日目の記事になります。※少し公開が遅れたぁぁぁ

Frosty Fridayとは

https://frostyfriday.org/

2022年07年に最初のお題が投稿されたSnowflakeのスキルアップを目的とした学習コンテンツです。
1週間〜2週間に一度、Snowflakeに関するお題が出題されます。
レベル的には、初級、中級、上級があります。
Frosty Fridayへの参加方法は、

  • 作ったコードをご自身のGithubなどで公開
  • そのURLをお題(Week1など)にコメントを記載

回答は”公式”にはありません!
ただ、世界中でSnowflakeを使っている人のチャレンジの結果が閲覧でき、すごく参考になり面白いです。

Snowflake実務者の方々のノウハウが知れるコンテンツとなっています

Frosty Friday Live Challenge Vol.15

今回のチャレンジは

  • Week31 BASIC MIN_BY, MAX_BY by大西さん
  • Week32 BASIC Session Securiy byあれさん

https://www.youtube.com/watch?v=MsWmr1Y9Tr4&list=PLVj4iIZgzTAq2FzaBBgqFOtZaJTcoG3JR

こちらの動画を公開しています。

タイムラインはこちら

0:00 オープニング
09:41 What's New :Snowflake Build 2024 キーノート冒頭でIceberg 関連の発表
15:24 What's New :Snowflake Build 2024 で発表された Iceberg 関連の新機能
20:55 Topics:Terraform Provider for Snowflake V1 release
24:53 Topics: Snowflake Terraform ProviderのVersion Upをなるべく安全にやる 
27:17 Week31 - MIN_BY, MAX_BY問題説明
30:11 Week31 - 解法
35:05 Week32 - Session Security 問題説明
39:28 Week33 - 解法1
45:11 Week33 - 解法2:terraform
58:44 クロージング

今回のゲスト

今回は、シンガポールから大西さんです!

https://x.com/legoboku

2022年、2023年のDataSuperHero!
SnowVillageでも、DevOpsやDataOpsの文脈でずっと活躍されていましたね。

アイスブレイクでは、シンガポールのペラナカンのお話、シンガポールで日本のサブカルチャーがはやっているといったシンガポール事情

お仕事関連では、現在の職種「データプラットフォームアーキテクト」のお話
海外企業でのジョブについてのお話、データエンジニアやサイエンティストが働きやすい用にデータ絡みのベース?を整えるようなお仕事だそうです。なので、IaCでのインフラ構築といったあたりも業務範囲だとか。

あれさん、大西さんの、新旧データスーパーヒーローの対決(?)も見どころですw

直近の話題からピックアップ

What's New ( from Snowflake Release Note等)


https://www.snowflake.com/build/
の冒頭でのお話について。

Icebergテーブルについては、
https://bering.hatenadiary.com/
にてべりんぐさんが記事になさっていますし、
けびんさんが
https://zenn.dev/dataheroes/articles/iceberg-the-definitive-guide-summary
にて輪読会のお話もなさっているので、こちらを読んでみてください。

「Icebergはデータレイクから発展してきたもの、Snowflakeはデータウェアハウスから発展してきたもの」
という解説がとってもしっくり来ました。

Snowflakeの気になる厳選トピックス

今回は、大西さんのジョブのお話などを聞きたかったので、トピックスは少なめにしました。
その中でも

https://zenn.dev/fap/articles/5272be5b55dc11

とSnowflake Terraform Providerのバージョンアップを扱った、こちらの記事を取り上げさせていただいています。
地道に少しずつやっていくこと・・・それが一番近道ですよね・・・・

【収録後】
※12月13日(金)に、Snowflake Terraform Provider V1がリリースされましたね!!
https://zenn.dev/fap/articles/6a380eb1d510c2
こちらをチェックしましょう!!

Frosty Friday Live Challenge

Week31 BASIC MIN_BY, MAX_BY

Week31 Basic MIN_BY, MAX_BYは、大西さんが解説です。

https://www.youtube.com/watch?v=MsWmr1Y9Tr4&list=PLVj4iIZgzTAq2FzaBBgqFOtZaJTcoG3JR&index=17&t=1637s

Snowflakeのドキュメントより
https://docs.snowflake.com/ja/sql-reference/functions/min_by

https://docs.snowflake.com/ja/sql-reference/functions/max_by

MIN_BYもMAX_BYも集計関数です。列の最大値or最小値を含む行を探し、その行にある別の列の値を返します。
こちらの関数を使わずに、CTEなどを使って書くのはなかなかに大変・・・・

また、MIN_BYとMAX_BYの値を同じ結果として出せるのは、ホント楽です

大西さんの解法は、

https://github.com/yohei1126/frosty-friday/blob/main/WEEK_031.sql

にアップなさっています。
写経して、実際に動かしてみましょう!

Week32 BASIC Session Securiy

こちらの解説はあれさんです

https://www.youtube.com/watch?v=MsWmr1Y9Tr4&list=PLVj4iIZgzTAq2FzaBBgqFOtZaJTcoG3JR&index=17&t=2105s

2022年12月にGAになった機能です
https://docs.snowflake.com/en/release-notes/2022-12#session-policies-generally-available

もともとはセッションタイムアウトは4時間固定(?)のがそれが10分などに上書き設定ができるようになった機能です。
4時間は長いよなぁ・・・・セキュリティ的にこの辺りをもっと短くしたいという要望があったので、とてもいい機能だったと当時は思ったものです。

今回の注目点は

あれさんの解法はこちら

https://github.com/allllllllez/frosty_friday/tree/main/terraform/week-32

ちゅらデータ株式会社

Discussion