Slide 1

Slide 1 text

0 Snowflake初心者が Snowparkで実践したこと 2023/01/26 データエンジニア部1G 立石 真悟

Slide 2

Slide 2 text

自己紹介 発表概要 動作環境 Snowflakeに入門 Snowparkに挑戦 他のデモに挑戦 まとめと課題 自己紹介 2022年7月以前 「データエンジニア見習い」に分類される職歴(なぜかGCPが多かった) 2022年8月1日 DATUM STUDIO入社 2022年9月以降 AWS基盤機械学習バッチの保守案件 皆様に訴えたいこと Snowflakeは知らなかったし、案件でも触ったことがない。 1

Slide 3

Slide 3 text

自己紹介 発表概要 動作環境 Snowflakeに入門 Snowparkに挑戦 他のデモに挑戦 まとめと課題 発表概要 ゴール:Snowflakeを知らない人がPython用Snowparkを使った発表をするまでの奮闘を描く 2 snowflake Scala Java Python 対象: Snowflakeを知らない、使ったことのない方

Slide 4

Slide 4 text

自己紹介 発表概要 動作環境 Snowflakeに入門 Snowparkに挑戦 他のデモに挑戦 まとめと課題 動作環境 3 ※m1macではminiconda環境でx86用の環境を作る工程があります。が、限定的なので割愛します。 ■マシンスペック MacBook Air (M1, 2020) チップ Apple M1 macOS Ventura 13.1 ■ライブラリのバージョン(miniconda環境) python 3.8.15 conda 22.11.1 snowflake-snowpark-python 1.0.0 streamlit 1.16.0

Slide 5

Slide 5 text

自己紹介 発表概要 動作環境 Snowflakeに入門 Snowparkに挑戦 他のデモに挑戦 まとめと課題 Snowflakeに入門0 4 DATUM STUDIOってSnowflakeに力入れてるのかー。よ〜し、やってみっか。

Slide 6

Slide 6 text

自己紹介 発表概要 動作環境 Snowflakeに入門 Snowparkに挑戦 他のデモに挑戦 まとめと課題 Snowflakeに入門1 会社でsandboxのアカウントを持っている →ユーザーを作成してもらい、サインイン。。。したのはよいけれど。。。。。。 5 ワークシート? ウェアハウス? ステージ? アカウント?

Slide 7

Slide 7 text

自己紹介 発表概要 動作環境 Snowflakeに入門 Snowparkに挑戦 他のデモに挑戦 まとめと課題 Snowflakeに入門2 😭 うむ、わからん。(BigQueryと違うやん) 6

Slide 8

Slide 8 text

自己紹介 発表概要 動作環境 Snowflakeに入門 Snowparkに挑戦 他のデモに挑戦 まとめと課題 Snowflakeに入門3 Getting Started with Snowflake - zero to snowflakeを実践(CITI_BIKE) https://quickstarts.snowflake.com/guide/getting_started_with_snowflake/index.html 7

Slide 9

Slide 9 text

自己紹介 発表概要 動作環境 Snowflakeに入門 Snowparkに挑戦 他のデモに挑戦 まとめと課題 Snowflakeに入門4 😟 ↑(ご想像にお任せします。) あーそーゆーことね (以下略) 8

Slide 10

Slide 10 text

自己紹介 発表概要 動作環境 Snowflakeに入門 Snowparkに挑戦 他のデモに挑戦 まとめと課題 Snowparkに挑戦1 では、実際にSnowParkを触ってみることにした。 認証情報(ここではcredential.jsonに書く内容)…あれ? 9

Slide 11

Slide 11 text

自己紹介 発表概要 動作環境 Snowflakeに入門 Snowparkに挑戦 他のデモに挑戦 まとめと課題 Snowparkに挑戦2 なにを書けばええねん? accountが、、、わからない。。。 10

Slide 12

Slide 12 text

自己紹介 発表概要 動作環境 Snowflakeに入門 Snowparkに挑戦 他のデモに挑戦 まとめと課題 Snowparkに挑戦3 調べると2通りあるようだ。(画面では左下を見れば良いらしい) ・形式1:組織内のアカウント名 [組織名]-[アカウント名] ※ハイフンで繋ぐ(例:ABCDEFG-PQRSTUV) ・形式2:リージョン内のアカウントロケーター [アカウントロケーター].[地域名].[クラウドプラットフォーム] ※ドットでつなぐ(例:xy12345.us-east-2.aws) 11

Slide 13

Slide 13 text

自己紹介 発表概要 動作環境 Snowflakeに入門 Snowparkに挑戦 他のデモに挑戦 まとめと課題 Snowparkに挑戦4 セッション作成(=ログイン)って別にSnowparkじゃなくてもよくない? すでに、コネクタがあるのになぜだろう? GUI SnowSQL(CUI) Connector Snowpark snowflake 12

Slide 14

Slide 14 text

自己紹介 発表概要 動作環境 Snowflakeに入門 Snowparkに挑戦 他のデモに挑戦 まとめと課題 (怒られそうですが。) データ処理をsnowflakeのサーバー側でやってくれるところがSnowparkの強みなんじゃないかと思 えてきた。 クライアント (パイプライン) Snowparkに挑戦5 13 サーバー Snowflake Connector Snowpark UDFs処理 処理 SQLステートメント文字列

Slide 15

Slide 15 text

自己紹介 発表概要 動作環境 Snowflakeに入門 Snowparkに挑戦 他のデモに挑戦 まとめと課題 Snowparkに挑戦6 簡単なSQLで理解しようとする「SELECT current_version()」 コネクタはカーソルからデータ取得して、DataFrameに詰めなければならないのに対して、 Snowpark経由は、SQLの結果をDataFrameとして取得できる点で違うのでは??? ←コネクタ ↓Snowpark 14

Slide 16

Slide 16 text

自己紹介 発表概要 動作環境 Snowflakeに入門 Snowparkに挑戦 他のデモに挑戦 まとめと課題 休憩 何はともあれ、Snowpark経由でSnowflakeに繋ぐことができた。 こんなところだけで、スライドの6割が終わってしまった。 せめて、もうちょっと効果的なもので動かしたい。 しかし、いい例が思いつかない。。。 またもやGetting Started系に頼るしかない。 15

Slide 17

Slide 17 text

自己紹介 発表概要 動作環境 Snowflakeに入門 Snowparkに挑戦 他のデモに挑戦 まとめと課題 他のデモに挑戦1 Snowflakeのチュートリアルが多く含まれている。 https://quickstarts.snowflake.com/ →今回は、赤丸の画像認識アプリを部分的に試す。(先週時点のキャプチャなので、内容が変わっ ている可能性あり) 16

Slide 18

Slide 18 text

自己紹介 発表概要 動作環境 Snowflakeに入門 Snowparkに挑戦 他のデモに挑戦 まとめと課題 他のデモに挑戦2 githubでは「sfguide-snowpark-pytorch-streamlit-openai-image-rec」というリポジトリに登録され ている。(1/17確認時点) 17

Slide 19

Slide 19 text

自己紹介 発表概要 動作環境 Snowflakeに入門 Snowparkに挑戦 他のデモに挑戦 まとめと課題 他のデモに挑戦3 18 Snowflake stage(@dash_files) PyTorch Snowflake側でanacondaが使える(自社のsandbox にはその設定が有効化されてたと思う)ので、この PyTorchを使うことになる。 他の準備として • 画像管理用のテーブル • ファイル格納用ステージ を作成しておく

Slide 20

Slide 20 text

自己紹介 発表概要 動作環境 Snowflakeに入門 Snowparkに挑戦 他のデモに挑戦 まとめと課題 他のデモに挑戦4 ノートブックを実行し、セッションを作成後、以下の通りUDFをセットする。 MobileNetV3を内部ステージにputする。 putしたファイルをインポートする SnowflakeのAnacondaチャンネルからパッケージを取得する。 19

Slide 21

Slide 21 text

自己紹介 発表概要 動作環境 Snowflakeに入門 Snowparkに挑戦 他のデモに挑戦 まとめと課題 他のデモに挑戦5 UDFとして登録する たしかに関数にアノテーションのとおり登録されている。 20 そうやって関数を渡すのか。。

Slide 22

Slide 22 text

自己紹介 発表概要 動作環境 Snowflakeに入門 Snowparkに挑戦 他のデモに挑戦 まとめと課題 他のデモに挑戦6 画面はファイルアップロードだけですが、 これはStreamlitのコードでは以下でUDFを呼び出している。 21

Slide 23

Slide 23 text

自己紹介 発表概要 動作環境 Snowflakeに入門 Snowparkに挑戦 他のデモに挑戦 まとめと課題 他のデモに挑戦7 DatumStudioホームページにある画像をお借りする。 22

Slide 24

Slide 24 text

自己紹介 発表概要 動作環境 Snowflakeに入門 Snowparkに挑戦 他のデモに挑戦 まとめと課題 他のデモに挑戦8 前のページの画像はhome theaterと分析された。 23

Slide 25

Slide 25 text

自己紹介 発表概要 動作環境 Snowflakeに入門 Snowparkに挑戦 他のデモに挑戦 まとめと課題 まとめと課題 今回取り組んだこと Snowflakeの概念を学んだ。 Snowparkを使って、簡単なアプリを動かした。 課題 オリジナリティ0なので、実データを使った例を作らないと。。。 24

Slide 26

Slide 26 text

自己紹介 発表概要 動作環境 Snowflakeに入門 Snowparkに挑戦 他のデモに挑戦 まとめと課題 おわり 25