Slide 1

Slide 1 text

SPCS で実現する dbt All in Snowflake の世界 2024/03/01 あれ(@__allllllllez__)

Slide 2

Slide 2 text

© 2024 DATUM STUDIO Co. Ltd. 1 自己紹介 【名前】 あれ(@__allllllllez__) 広報さんにカッコよく撮影してもらってウッキウキ→ 【所属】 DATUM STUDIO株式会社 データエンジニアリング本部 データエンジニア部 2024 Data Superheroes

Slide 3

Slide 3 text

© 2024 DATUM STUDIO Co. Ltd. 2 コンテンツ • Snowpark Container Services(SPCS)って何? ~SPCS ざっくり概要~ • SPCSについてもうちょっと詳しく ~機能周りのアレコレ~ • SPCS使ってみた ~dbt 全部乗せ~

Slide 4

Slide 4 text

© 2024 DATUM STUDIO Co. Ltd. Snowpark Container Services (SPCS)って何?

Slide 5

Slide 5 text

© 2024 DATUM STUDIO Co. Ltd. 4 Snowpark Container Services (SPCS)って何? • コンテナ in Snowflake • Snowflakeのデータベースやステージにア クセス可能 • アプリケーションでSnowflakeのデータを扱 うために、データをSnowflake外に出す必 要はない • カンタン操作 • アプリケーションイメージのアップロードは Docker 等で可能 • サービス実行などの操作も、SQLなどのイ ンタフェースでOK • フルマネージド • クラスターやノードの管理は不要 • オートスケール • こんなことができる • 任意の言語で作成したアプリケーションを Snowflakeに持ち込める • 長時間実行可能 Snowflake 内でコンテナ化アプリケーションを容易にデプロイ・管理・スケーリン グするために設計されたフルマネージドコンテナサービス https://www.snowflake.com/blog/snowpark-container-services-deploy-genai-full-stack-apps/

Slide 6

Slide 6 text

© 2024 DATUM STUDIO Co. Ltd. 5 Snowpark Container Services (SPCS)って何? つまり、 こういうこと データウェアハウス データインジェスト データ変換フレームワーク データカタログ AI/MLプラットフォーム ビジネスインテリジェンス 分析環境 ワークフローエンジン お好きな言語の データアプリケーション

Slide 7

Slide 7 text

© 2024 DATUM STUDIO Co. Ltd. 6 Snowpark Container Services (SPCS)って何? つまり、 こういうこと データウェアハウス データインジェスト データ変換フレームワーク データカタログ AI/MLプラットフォーム ビジネスインテリジェンス 分析環境 ワークフローエンジン お好きな言語の データアプリケーション ※実は動かせないもの あったらすまんな

Slide 8

Slide 8 text

© 2024 DATUM STUDIO Co. Ltd. Snowpark Container Services だいたいわかった

Slide 9

Slide 9 text

© 2024 DATUM STUDIO Co. Ltd. もうちょっと詳しく

Slide 10

Slide 10 text

© 2024 DATUM STUDIO Co. Ltd. 9 SPCSについてもうちょっと詳しく SPCS を構成する主な要素は、イメージレジストリ・コンピューティングプール・ サービス/ジョブの3つ イメージ レジストリ アプリケーション イメージの保存先 コンピューティング プール ジョブ/サービスを実行する 仮想マシン ノード コレクション 継続しない アプリケーション (現在 PrPr) 継続して稼働する アプリケーション サービスで定義した 処理を呼び出すUDF ジョブ サービス関数 サービス 仕様 yaml コンテナの設定 コマンドに直接書いてもいい push インタフェース インタフェース(SQL・CLIなど)操作 pull 作成 ステージにput コマンド 操作

Slide 11

Slide 11 text

© 2024 DATUM STUDIO Co. Ltd. 10 SPCSについてもうちょっと詳しく SPCSのコスト要因は、主にストレージ・コンピューティングプール・データ転送 ✓ イメージレジストリ ✓ ログ(イベントテーブルに書き出したログ) ✓ ボリューム(ステージをマウントした場合) ストレージ コンピューティングプール データ転送 ✓ インスタンス ファミリータイプ xノード数 x 実行時間 ✓ ファミリータイプ別性能一覧 → CREATE COMPUTE POOL ✓ 消費クレジット一覧 → CreditConsumptionTable.pdf ✓ Ingress(外部から Snowflake へのデータの移動) ✓ Egress(Snowflake から外部へのデータの移動) Koreedaさんの記事にあるコンテナ費用まとめが一番わかりやすいです

Slide 12

Slide 12 text

© 2024 DATUM STUDIO Co. Ltd. 11 SPCSについてもうちょっと詳しく コンピューティングプール・データ転送のコストは、Snowsight「Admin」> 「Cost Management」で確認が可能

Slide 13

Slide 13 text

© 2024 DATUM STUDIO Co. Ltd. 12 SPCSについてもうちょっと詳しく コンテナに関する情報はSQLで取得可能。また、SQL以外のインターフェースも開 発が進んでいる ステータスとログ インタフェース ✓コンピュートプールの状態、サービスのログなどは SQL コマンドで確認が可能 ✓ 現時点ではSQLでSPCS構成オブジェクトの操作が可能 ✓ SnowCLI でも操作可能になるはず!(現在 PrPr)

Slide 14

Slide 14 text

© 2024 DATUM STUDIO Co. Ltd. Snowpark Container Services 完全に理解した

Slide 15

Slide 15 text

© 2024 DATUM STUDIO Co. Ltd. では実際に使ってみましょう

Slide 16

Slide 16 text

© 2024 DATUM STUDIO Co. Ltd. お題はこちら

Slide 17

Slide 17 text

© 2024 DATUM STUDIO Co. Ltd. in

Slide 18

Slide 18 text

© 2024 DATUM STUDIO Co. Ltd. 全部乗せ

Slide 19

Slide 19 text

© 2024 DATUM STUDIO Co. Ltd. 18 dbt ALL in Snowflake ざっくりこんな感じの構成 イメージ レジストリ アプリケーション イメージの保存先 コンピューティングプール dbt run dbt test dbt docs push インタフェース pull 作成 コマンド 操作 アクセス サービス ジョブ ステージ dbt プロジェクト 配置 マウント テスト実行 モデル作成

Slide 20

Slide 20 text

© 2024 DATUM STUDIO Co. Ltd. 19 dbt ALL in Snowflake • コンテナが生存し続ける必要がないので、ジョブ(PrPr)で実行する まずは dbt debug で疎通確認 • ログで All Check Passed! を確認 (中略) ※Oauth トークンを使用した接続は(現状)不可、 ネットワークルールと外部アクセス統合が必要

Slide 21

Slide 21 text

© 2024 DATUM STUDIO Co. Ltd. 20 dbt ALL in Snowflake • これも生存し続ける必要がないのでジョブ(PrPr)で実行する dbt compile でステージに書き込ませてみる ファイルできてる!

Slide 22

Slide 22 text

© 2024 DATUM STUDIO Co. Ltd. 21 dbt ALL in Snowflake dbt seed と dbt run でデータを作っていく • これもジョブ(PrPr)で実行する • まずは seed • • 続けて run テーブルできてる! ※使用データは Building a Kimball dimensional model with dbt でおなじみ dbt-dimensional-modelling/adventureworks

Slide 23

Slide 23 text

© 2024 DATUM STUDIO Co. Ltd. 22 dbt ALL in Snowflake 最後に dbt docs でドキュメント作成&SPCSでホスティングしてみる • 継続起動してほしいので、サービスとして実行 • サービス作成が成功したら、しばし待ってから、URLを確認

Slide 24

Slide 24 text

© 2024 DATUM STUDIO Co. Ltd. 23 dbt ALL in Snowflake SPCS サービスへのアクセスは、Snowflake の認証により可能になる(Snowflake Oauth)

Slide 25

Slide 25 text

© 2024 DATUM STUDIO Co. Ltd. 24 dbt ALL in Snowflake Snowflake で普通に dbt docs が閲覧できます

Slide 26

Slide 26 text

© 2024 DATUM STUDIO Co. Ltd. in でした

Slide 27

Slide 27 text

© 2024 DATUM STUDIO Co. Ltd. Snowpark Container Services めっちゃ楽しい

Slide 28

Slide 28 text

© 2024 DATUM STUDIO Co. Ltd. だいたい何でもできる 無限の可能性がある 今後のアップデートも非常に楽しみ

Slide 29

Slide 29 text

© 2024 DATUM STUDIO Co. Ltd. おしまい