[レポート]BUILD TOKYO ONLINE:Snowflake DevOpsで開発生産性を加速させよ

[レポート]BUILD TOKYO ONLINE:Snowflake DevOpsで開発生産性を加速させよ

Clock Icon2024.12.17

さがらです。

2024年12月17日に、Snowflakeの開発者向けのカンファレンスである「BUILD TOKYO ONLINE」が開催されました。

https://www.snowflake.com/build/build-tokyo-online/

本記事はその中のでセッション「Snowflake DevOpsで開発生産性を加速させよ」のレポート記事となります。

登壇者

Snowflake合同会社
セールスエンジニアリング統括本部
セールスエンジニア
増田 嵩志 氏

内容

  • データベース領域におけるDevOpsの課題
    • アプリケーション開発とは異なる課題がある

2024-12-17_17h19_34

  • DevOpsの考えに基づいて自動化をすることで、より生産性を高めることができる

2024-12-17_17h20_35

  • 既存のGitHubなどのリポジトリと統合可能。EXECUTE IMMEDIATE FROMで、Gitリポジトリ内で定義したコードを実行可能
  • CREATE OR ALTER:DevOpsでは宣言的に定義することが必要なので、それに対応できる
  • Python API経由でオブジェクトを定義することも可能

2024-12-17_17h21_06

  • Gitリポジトリと連携して、様々なアセットを実行できる
  • SnowflakeからGitプロバイダーのAPIを叩く仕様となっている

2024-12-17_17h21_36

2024-12-17_17h22_04

  • Streamlit、Snowpark Container Services、などのオブジェクトをビルド・デプロイできるCLIツール

2024-12-17_17h24_35

2024-12-17_17h25_03

  • オブジェクトが無いときは新規作成、あるときは設定値の変更だけ行う

2024-12-17_17h25_36

  • Gitリポジトリまたはステージから直接スクリプトを実行

2024-12-17_17h26_00

  • Snowflake Python APIは、pip install snowflakeで簡単にインストールできる

2024-12-17_17h26_33

  • これまで紹介した機能で作れるサンプルアーキテクチャ

2024-12-17_17h26_56

デモ

※ここから投影画面が黄色くなっていたため、スクリーンショットの画像が黄色くなっております。(ブルーライトカット機能がスケジュールで有効化されたと推測しています。)

  • デモ対象のアーキテクチャ

2024-12-17_17h27_28

  • 各種オブジェクトを定義

2024-12-17_17h28_52

2024-12-17_17h29_10

  • 作成されたGitリポジトリ

2024-12-17_17h29_56

  • 連携先のGitHubリポジトリ

2024-12-17_17h30_20

  • 新しいブランチを作成

2024-12-17_17h30_44

  • Snowsight上で取得ボタン押すことでPullコマンドと同じことができ、作成したブランチも確認できる

2024-12-17_17h31_20

  • SnowflakeでSQLスクリプトを実行する際は、Jinjaテンプレートを利用できる
    • Jinjaは、Pythonで利用できるテンプレートエンジン
    • 変数を埋め込んだり、条件分岐などができる

2024-12-17_17h32_06

  • 実行するSQLスクリプト(Jinjaテンプレートで構成)
    • 指定した変数に応じた、ノートブックが出来る

2024-12-17_17h32_57

  • SQLスクリプト実行前に、Devスキーマにはなにもないことを確認

2024-12-17_17h33_20

  • EXECUTE IMMEDIATE FROMコマンドを実行
    • USING句で変数の値を指定しているのがポイント

2024-12-17_17h34_11

  • コマンド実行後、指定した変数に応じたノートブックが出来ていることがわかる

2024-12-17_17h34_51

  • NotebookとGitの連携
    • 編集すると「M」マークが付く
    • Notebookの変更をGitリポジトリのDevブランチにプッシュ

2024-12-17_17h35_20

2024-12-17_17h35_37

  • プルリクエストを発行し、Mainにマージ

2024-12-17_17h36_11

  • Mainブランチにプッシュされたことをトリガーに、GitHub Actionsが動く

2024-12-17_17h36_34

  • GitHub Actionsのコード内容
    • Snowflake CLIを用いて、先程のSQLコマンドの変数を変えてPRODに反映させるようにしている

2024-12-17_17h37_05

2024-12-17_17h37_43

  • 先程のGitHub Actionsのコードにより、SnowflakeにPRODのprefixがついたNotebookがデプロイされた

2024-12-17_17h38_22

まとめ

  • SnowflakeでのDevOpsの機能を紹介してきた
  • 皆様の開発生産性の向上に寄与できると嬉しい

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.