この記事は
Snowflake Advent Calendar 2021 の1日目の記事です。
去年のアドベントカレンダーからもう1年経ったんですね。
早いものです。
この記事では 2021年に Snowflake 関係で 個人的に良かったな と思ったことを振り返って5つ紹介しようと思います。
※2021年より前にあったけど、私が2021年に気づいたことや知ったことも含みます
第5位: External Table を使ってロードするのが COPY INTO より早くて安い時がある
第5位は「External Table を使ってロードするのが COPY INTO より早くて安い時がある」です
これはあまり知られていない挙動だとは思うのですが、 Parquet で作られた External Table がめちゃくちゃ早いんです。
その結果、 COPY INTO で愚直にテーブルへロードするよりも、External Table を使って SELECT INSERT したほうが早いケースが実はあります。
これは一緒に働いていた同僚が発見したテクニックだったのですが、聞いたときにまじかよ!?って言っちゃいました。
Parquetファイル形式を扱う External Table はベクトル化スキャナーと呼ばれる仕組みによりクエリのパフォーマンスが高くなるよう最適化されています。
ベクトル化スキャナーーーー!!!!
はいみんな今日はこれ覚えてね!!!
第4位: そういえば FROM DUAL が使えるYO!
第4位は「FROM DUAL が使える」です
(これはもしかしたら2020年かもしれないのですが) SnowVillage 関係者に教えてもらいました。
Oracle 出身者ならみんな知ってる例のアレです。
知らない人向けに説明すると、DUAL表は何も入っていない1列0行の表のことです。
Oracle ではFROM句がないと文法エラーになってしまうので、何も入っていない表として、DUAL表が実装されているのですが、 Snowflake にもこのDUAL表が実はあるという話です。
おそらく互換性のためなんだと思います。
たとえばこんなクエリで使います。
SELECT SYSDATE() FROM DUAL;
割とウンチクかなと思いますが、こういう互換性のための配慮と実装がされているのが、 Snowflake の良いところですよね。
第3位: Snowflake で謎解きゲームした!
第3位は「Snowflakeで謎解きゲームした」です。
これはSnowVillageの配信企画でやったのですが、色んな人に参加いただき、Snowflakeコミュニティの可能性が広がった面白い取り組みでした。
企画や準備に携わったコミュニティのメンバーや参加してくれたユーザのみんなには感謝しかありません。
また機会があればやりたいですね。
第2位: Snowparkがリリースされた!
第2位は「Snowparkがリリースされた」です。
これは本当に良かった。
Snowflake ってこれまで SQL を打つしかなかったんですが、それがいきなりプログラマブルな世界に移行しました。
普段のワーキングを Scala でやってる人は、もう SQL 打たなくていいやんけ!っていう感じで、世界が変わりました。
僕自身はは Scala がそこまで得意じゃなかったので、 Snowpark 使うためだけに Scala を再勉強したくらいです。
第1位: SnowparkがPython対応した!!
そして栄えある第1位は「SnowparkがPython対応した」でした!
そうです。Data分析界隈だと、 Scala より Python 勢が多くて、待望の Python 対応でした。
噂ではいつ対応なんだ?みたいなのは流れていたんですが、ついに先月の Snowday で発表され、みんなを驚かせましたね。
個人的にはまだ使えてないので、評価はできないんですが、使えるようになったらいち早くレポートできたらと思ってます。
早く使いたい!
まとめ
20201年 Snowflake で良かったことでしたがいかがでしたでしょうか?
紹介した以外にも、たくさんの驚きやすげーが Snowflake にはあった1年でした。
来年もいろんなアップデートが来て驚かされるに違いないですね。
今からとても楽しみです。
それでは2日目以降のアドベントカレンダーもご期待ください!