Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
データウェアハウス製品の SnowflakeでPythonが動くって 知ってました? 2024-08-22 ちゅらデータ CTO 菱沼 雄太 © 2024 Chura DATA inc.
Slide 2
Slide 2 text
自己紹介から © 2024 Chura DATA inc.
Slide 3
Slide 3 text
© 2024 Chura DATA inc. 自己紹介(オフラインの姿)
Slide 4
Slide 4 text
オンラインの姿 © 2024 Chura DATA inc.
Slide 5
Slide 5 text
© 2024 Chura DATA inc. 自己紹介 ちゅらデータ CTO DATUM STUDIO 執行役員 Snowflake の Data Hero of The Year(2021) SnowVillage の村長 この子は ろあちゃん フォローしてね @foursue #stapy
Slide 6
Slide 6 text
SnowflakeでPython © 2024 Chura DATA inc.
Slide 7
Slide 7 text
今日はSnowflakeでPythonを動かす人が 増えるといいなと思って喋る © 2024 Chura DATA inc.
Slide 8
Slide 8 text
そもそも © 2024 Chura DATA inc.
Slide 9
Slide 9 text
Snowflake使うと何が美味しいの? © 2024 Chura DATA inc.
Slide 10
Slide 10 text
こんなことありませんか? © 2024 Chura DATA inc.
Slide 11
Slide 11 text
df = pd.read_csv('hoge.csv') 実行じゃ! © 2024 Chura DATA inc.
Slide 12
Slide 12 text
df = pd.read_csv('hoge.csv') 実行じゃ! MemoryError: Unable to allocate ... © 2024 Chura DATA inc.
Slide 13
Slide 13 text
df = pd.read_csv('hoge.csv') 実行じゃ! MemoryError: Unable to allocate ... © 2024 Chura DATA inc. 実は 200GBくらいあった
Slide 14
Slide 14 text
1台のコンピュータのメモリで処理できないとき 色々テクニックがある © 2024 Chura DATA inc.
Slide 15
Slide 15 text
根本的には分散コンピューティングする © 2024 Chura DATA inc. メモリを1TBつめばいいんじゃ…
Slide 16
Slide 16 text
分散処理かぁ © 2024 Chura DATA inc.
Slide 17
Slide 17 text
DaskとかPySpark使う? © 2024 Chura DATA inc.
Slide 18
Slide 18 text
インフラを用意するのがそれなりに大変 © 2024 Chura DATA inc.
Slide 19
Slide 19 text
インフラを用意するのがそれなりに大変 © 2024 Chura DATA inc. 何台用意する? メモリはどれくら い? ディスクはどれくら いいる? CPUはどれくらい必 要? お高いんでしょう? 誰がクラスタを作る の? 誰がクラスタを管理 するの?
Slide 20
Slide 20 text
クラウドネイティブデータウェアハウス © 2024 Chura DATA inc.
Slide 21
Slide 21 text
クラウドネイティブデータウェアハウス © 2024 Chura DATA inc. Snowflakeとか
Slide 22
Slide 22 text
Snowflakeは 現実の範囲だとわりと インフィニットスケール © 2024 Chura DATA inc.
Slide 23
Slide 23 text
そのうえ Snowflakeは 処理時間課金だから 価値のあるデータ処理なら やればやるだけ儲かる © 2024 Chura DATA inc. すごい 自信だ…
Slide 24
Slide 24 text
ちなみに © 2024 Chura DATA inc.
Slide 25
Slide 25 text
Snowflakeは AWS東京だと処理1時間で$2.85=約414円くらいから ※最小のウェアハウスサイズXSの料金 © 2024 Chura DATA inc.
Slide 26
Slide 26 text
どれくらいのことができるの? © 2024 Chura DATA inc.
Slide 27
Slide 27 text
144,006,767,158行のカウントとかで4.2秒くらい © 2024 Chura DATA inc.
Slide 28
Slide 28 text
めっちゃ速い、速いせいで安い ※自分たちのビジネスモデルわかってるのかな? © 2024 Chura DATA inc. 速いから安い
Slide 29
Slide 29 text
19日にも速くなって安くなったよってブログが公式で出て た、失礼だけど、中の人は馬鹿なんだと思う © 2024 Chura DATA inc.
Slide 30
Slide 30 text
※ココだけの話、見積もったインフラ費用が余りがちに… © 2024 Chura DATA inc.
Slide 31
Slide 31 text
でもDBなんて SQLだけなんでしょう? © 2024 Chura DATA inc. SQL覚えるの 面倒だな… Pythonで書けばいいんじゃ…
Slide 32
Slide 32 text
ところがどっこい そうではありません © 2024 Chura DATA inc.
Slide 33
Slide 33 text
Snowflakeは!! © 2024 Chura DATA inc.
Slide 34
Slide 34 text
サーバレス分散コンピューティングPython実行環境 なんだよ!!!! © 2024 Chura DATA inc.
Slide 35
Slide 35 text
その全貌はこちら © 2024 Chura DATA inc.
Slide 36
Slide 36 text
Snowflakeの外にあるPythonと Snowflakeの外にあるPythonと Snowflakeに組み込む UDF/UDTF 開発場所 WebUI © 2024 Chura DATA inc. 全貌??? Python コネクタ Spark用Pythonコ ネクタ Notebook Python Worksheet External Function (Lambda等) ストアドプロ シージャ Snowpark API Snowpark for pandas API Streamlit Snowpark Container Service
Slide 37
Slide 37 text
Snowflakeの外にあるPythonと Snowflakeの外にあるPythonと Snowflakeに組み込む UDF/UDTF 開発場所 WebUI © 2024 Chura DATA inc. 全貌??? Python コネクタ Spark用Pythonコ ネクタ Notebook Python Worksheet External Function (Lambda等) ストアドプロ シージャ Snowpark API Snowpark for pandas API Streamlit Snowpark Container Service いっぱいありすぎて整理できてないんじゃ…?
Slide 38
Slide 38 text
とりあえず書く © 2024 Chura DATA inc.
Slide 39
Slide 39 text
© 2024 Chura DATA inc. 1. ブラウザでログイン 2. Worksheetを開く 1. どのマシンで実行するか選ぶ:ウェアハウス 2. 誰で実行するか選ぶ:ロール 3. どこで実行するか選ぶ:データベース、スキーマ 3. Python書く&実行 WorksheetでPython書く
Slide 40
Slide 40 text
© 2024 Chura DATA inc. 1. ブラウザでログイン 2. Worksheetを開く 1. どのマシンで実行するか選ぶ:ウェアハウス 2. 誰で実行するか選ぶ:ロール 3. どこで実行するか選ぶ:データベース、スキーマ 3. Python書く&実行 WorksheetでPython書く 実際にやってみれば良いんじゃ?
Slide 41
Slide 41 text
作ったコード持ち込もう © 2024 Chura DATA inc.
Slide 42
Slide 42 text
© 2024 Chura DATA inc. ほかで開発したコード持ち込む 1. ステージに.pyおく(zipでもいいよ) • ステージはSnowflakeのファイルを置く場所のこと • ステージ=上げる手前 2. UIからpackage選ぶ 3. importする
Slide 43
Slide 43 text
© 2024 Chura DATA inc. ほかで開発したコード持ち込む 1. ステージに.pyおく(zipでもいいよ) • ステージはSnowflakeのファイルを置く場所のこと • ステージ=上げる手前 2. UIからpackage選ぶ 3. importする 実際にやってみれば良いんじゃ? (2回目)
Slide 44
Slide 44 text
Notebook使おう © 2024 Chura DATA inc.
Slide 45
Slide 45 text
© 2024 Chura DATA inc. 1. Notebookを開く 2. Python書く&実行 Notebookとりあえず使える
Slide 46
Slide 46 text
© 2024 Chura DATA inc. 1. Notebookを開く 2. Python書く&実行 Notebookとりあえず使える (ジー…)
Slide 47
Slide 47 text
SQLの中で Pythonで処理したい © 2024 Chura DATA inc.
Slide 48
Slide 48 text
© 2024 Chura DATA inc. UDF(UDTF)使おう SnowflakeはUDF(ユーザ定義関数)をPythonで書ける ※UDTF(ユーザ定義テーブル関数)は関数の結果がテーブルとして扱える関数 1. UDFを定義 • インラインで定義 • .pyで定義 2. SQLから使う
Slide 49
Slide 49 text
SQLからじゃなくて 普通にPythonを動かせるんです? 定期的に実行とかしたいじゃないですか © 2024 Chura DATA inc.
Slide 50
Slide 50 text
© 2024 Chura DATA inc. ストアドプロシージャをPythonで書ける SnowflakeはストアドプロシージャもPythonで書ける ※ストアドプロシージャはデータベースに登録できるプログラムの呼び方 1. ストアドプロシージャを • インラインで定義 • .pyで定義 • ワークシートをストアドプロシージャにする 2. 叩く
Slide 51
Slide 51 text
おじさん画面も書きたくなってきちゃったよ © 2024 Chura DATA inc.
Slide 52
Slide 52 text
© 2024 Chura DATA inc. Streamlit Streamlit は簡単にWebアプリを作るためのOSSのライブラリ ※SnowflakeはStreamlit社を買収して、Streaamlitの開発を推進してたりする 1. Streamlit Appsを新規作成 2. 書く!
Slide 53
Slide 53 text
© 2024 Chura DATA inc. ここで唐突な宣伝 https://2024.pycon.jp/ja 2024 9.27 FRI -29 SUN PyCon JP 2024 があるよ SnowflakeがStreamlitの ブースを出すらしい! ほんとかわからないので、 お前の目で確かめろ!!!
Slide 54
Slide 54 text
外にあるコードを呼びたい © 2024 Chura DATA inc.
Slide 55
Slide 55 text
© 2024 Chura DATA inc. ちょっとLambdaでデータ処理したい Snowflakeは外部関数として、LambdaとかをAPI-Gateway経由で呼べる 図はSnowflakeのドキュメントから https://docs.snowflake.com/ja/sql-reference/external-functions-introduction API Gateway Lambda (ジー…)
Slide 56
Slide 56 text
うちSparkなんでw © 2024 Chura DATA inc.
Slide 57
Slide 57 text
© 2024 Chura DATA inc. Sparkコネクタあるよ!! 図はSnowflakeのドキュメントから https://docs.snowflake.com/ja/user-guide/spark-connector-overview JDBC経由でSnowflake Connector叩いて、オブジェ クトストレージ経由でデー タをやり取り クエリプッシュダウン が効くと良い感じのパ フォーマンスに
Slide 58
Slide 58 text
いかがでしたか? © 2024 Chura DATA inc.
Slide 59
Slide 59 text
大きなデータを仕事で扱うとき… SnowflakeでPython良いと思いませんか? © 2024 Chura DATA inc. データベース用の実行環境と機械学習用 の実行環境は違うんじゃ?(GPUとか
Slide 60
Slide 60 text
え、GPUほしい? © 2024 Chura DATA inc.
Slide 61
Slide 61 text
あるよ!A100が8個乗ったやつが! (vCPU-92個、MEM-1112GB) © 2024 Chura DATA inc. Snowpark Container Serviceっていうマネージ ドなK8sでこれ使える
Slide 62
Slide 62 text
いかがでしたか? (2回目) © 2024 Chura DATA inc.
Slide 63
Slide 63 text
大きなデータを仕事で扱うとき… SnowflakeでPython書くの良いと思いませんか? © 2024 Chura DATA inc. (ジー…)
Slide 64
Slide 64 text
(もしデモがうまく行って時間があれば) 質問たいーむ © 2024 Chura DATA inc.