Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Snowflakeで業務アプリを作ろう。 Snowflakeのアプリ機能解説&実践ガイド

Snowflakeで業務アプリを作ろう。 Snowflakeのアプリ機能解説&実践ガイド

Avatar for Ayumu Yamaguchi

Ayumu Yamaguchi

September 09, 2026

More Decks by Ayumu Yamaguchi

Other Decks in Programming

Transcript

  1. 自己紹介 山口歩夢 【著書】 【所属】 DATUM STUDIO株式会社 AIエンジニアリング部 / Principal 【コミュニティ活動】

    Streamlit Creator 2026 Snowflake Squad 【発信活動】 X:@Yamaguchi_aaaaa LinkedIn: linkedin.com/in/歩夢-山口-2b45942bb 実践 Snowflake Cortex Streamlit入門 1
  2. Snowflake内で業務アプリを開発するメリット Snowflakeはデータ基盤・アプリ開発・ AI活用に必要な機能を一括提供している。 だからこそ、業務アプリも Snowflakeの中で作ることに大きなメリットがある。 データ基盤 アプリケーション開発 AI活用 Openflow /

    Snowpipe / Dynamic Table / Tasks / Streams Streamlit in Snowflake Snowflake App Runtime Snowpark Container Services Snowflake Cowork / Cortex Agents / Cortex Analyst / Cortex Search Snowflake環境内でアプリ開発をすると色々なメリットがある データへのアクセスが簡単・便利 インフラ管理が簡単・便利 AIの統合が簡単・便利 • データのある場所でアプリ開発できる ため、アプリからデータへのアクセス が簡単 • アプリケーション操作によって溜まっ たログやデータもSnowflake内でその まま分析できる • サーバーの準備などが不要で、 Snowflakeのマネージド環境にその ままデプロイできる • 発行されたURLを配布するだけで適 切な利用者への公開ができる • アプリケーションへのログイン認証も Snowflakeのログイン機能をそのまま 使える • Cortex AIを簡単にアプリに組み込め る • CoCoにプロンプトを渡すだけで雛形 作成からデプロイまで一気通貫かつ 簡単 5
  3. Streamlit in Snowflake Streamlitを活用することで、 Pythonだけで非常に簡単にアプリを構築できる。 さらに、 Streamlit in Snowflakeを活用することで、デプロイも非常に簡単に実現できる。 メリット

    デメリット • Pythonのみローコードでアプリが完成する。 • UIの型が決まっている分、細かいカスタマイズが不可 • AIと相性が良く、公式のAgent Skillsも提供されているため、ベスト プラクティスに沿ったアプリ構築が瞬時にできる ✔ カレンダーの英語表記を日本語にしたい • インフラ環境の準備不要でデプロイできる ✔ クエリパラメータを渡しながら別ページにシームレスに移動したい など • サードパーティ製コンポーネントで簡単に表現を広げられる ✔ ドラッグ&ドロップ機能を実装したい • 複雑な画面遷移や作り込みが必要な業務システムには不向き 向いているケース • 社内向けダッシュボード、チャットボット • マスタ確認・更新アプリ • 短期間で形にしたいPoCアプリ • WEBアプリ開発経験が少ないチーム自身で、開発~保守運用まで行いたい場合 8
  4. Streamlit Agent Skillsについて AIを活用することで、瞬時にアプリを開発できる理由として、公式の Agent Skillsがある。 Streamlitのベストプラクティスな内容がルートとなるスキルの下にサブスキルとして複数定義されている。 Streamlit Agent Skillsの良いところ

    • 公式ベストプラクティスがそのままコードに反映される ✔ Streamlit特有のマルチページの作り方 ✔ 綺麗なレイアウト ✔ session_stateの管理方法 ✔ Chatbot の関数の取り扱いのやや煩雑なところ • LLMが存在しない引数や関数を生成する問題がかなり減る • Streamlitのパッケージの中やCoCoに内蔵されており簡単に使える 9
  5. ベストプラクティスに沿った Streamlitアプリを一発生成 シンプルなプロンプト一つでベストプラクティスに沿ったアプリを一発で生成してくれる。 UIの型が決まっているため、 Agent Skillsを使うことで最初の試行で正解を導いてくれる可能性が高い。 ① シンプルなプロンプトを書く ② AIが実装まで進める

    ③ アプリが完成 「売上ダッシュボードを作りたい」と プロンプトを投げるだけ KPI・グラフ・フィルターまで 設計して実装し、起動まで実行 そのまま動くStreamlitアプリが一発で完成。 機能の追加実装も同様に瞬時に完了できる。 10
  6. Snowflake App Runtime UIの自由度や複雑なセッション管理が必要なアプリケーションをある程度簡単に構築・デプロイ可能。 CoCoの /snowflake-apps スキルを活用すれば、 Next.jsアプリ構築の雛形準備やデプロイが簡単にできる。 メリット デメリット

    • UIを作り込めるため、リッチで操作の自由度が高いUIを自作す ることが可能 • 現状はNext.js(Node.js)のみ対応 • 複雑なセッション管理が必要な場合でも、シームレスな操作を実 現することができる • WEBアプリ開発の知識がある程度必要 • CoCoを活用することで、アプリ構築の雛形の準備が簡単に実現 でき、すぐに動くものを開発することが可能 • コンテナやインフラ構築を意識せず、簡単にデプロイ可能 ✔ バックエンドを Pythonで実装したい要件には応えられない ✔ TypeScript, React, API設計など ✔ 複雑なデバッグの際に知識が必要となるが、 CoCoなどを活用すれば 十分動くものを構築可能 • 現状Preview機能のため、今後仕様が変わる可能性がある 向いているケース • Streamlitの制約を超えたUI(例: ドラッグ&ドロップ機能など)が必要なとき • 作り込んだ画面遷移や操作性が求められ、セッション管理が複雑なアプリ • フロントエンド開発やWEB開発の知識があるメンバーがいるチームで開発を行う場合 • 将来的に多くの機能拡張を見据えている場合 • 工数がかかっても、UIにこだわって開発したい場合 12
  7. Snowpark Container Services 高い自由度でアプリケーションを構築したい場合に有用。 WEB開発の知識に加えて、コンテナを使ったインフラ構築の知識が必要。 メリット デメリット • 他の2つと比較して最も自由度が高い •

    インフラの構築・保守・運用が必要 ✔ ✔ コンテナやインフラ構築の知識がある程度必須 バックエンドは Python、フロントはReactなど自由に構成できる • UIを作り込めるため、リッチで操作の自由度が高いUIを自作する ことが可能 • WEBアプリ開発の知識がある程度必要 • 複雑なセッション管理が必要な場合でも、シームレスな操作を実 現することができる 向いているケース • Streamlitの制約を超えたUI(例: ドラッグ&ドロップ機能など)が必要なとき • 作り込んだ画面遷移や操作性が求められ、セッション管理が複雑なアプリ • フロントエンド開発やWEB開発に加えて、コンテナやインフラの知識があるメンバーがいるチームで開発を行う場 合 • 将来的に多くの機能拡張を見据えている場合 • 工数がかかっても、使用技術にこだわって開発したい場合 14
  8. アプリ開発の選択肢まとめ Snowflakeのアプリ開発機能の使い分け基準は以下のように考えている。 観点 Streamlit in Snowflake Snowflake App Runtime SPCS

    用途 ダッシュボード/チャットボット/マスタ 更新 作り込んだUI・複雑なインタラクションを 必要とする業務アプリ 作り込んだUI・複雑なインタラクションを 必要とする業務アプリ。バックエンドは Pythonで行いたいなど、要件に特別な こだわりがある。 チームのスキル Pythonのみ。Web開発の知識は少なく てよい。学習コストが少ない。 Webの知識がある程度ある( Next.js / TypeScript / API設計など) コンテナ・インフラの知識が必須 工数 小。 中。 大。 将来の拡張 単発・小規模のまま使う場合や未定の 場合 長く使う可能性が高く、 UIの機能追加が 続く可能性が高い場合。 長く使う可能性が高く、 UIの機能追加が 続く可能性が高い場合。 バックエンド Python Node.js / TypeScript(現時点でPython 未対応) 自由(Python可) ✔ 迷ったら Streamlit × Agent Skillsで瞬時に構築してみる ✔ 将来的な拡張を見据えていたり、 StreamlitでのUI構築に限界を感じたら Snowflake App Runtime ✔ 特別なこだわり(バックエンドは Pythonがいいなど)がある場合は SPCS 15
  9. 生成AIを使ったアプリ開発の進め方 要件を固めるところから実装・改良・デプロイまで、 AIに任せながら進める。 実装後の動作確認は Playwright CLIを使用。 1 2 要件を固める 仕様書や要件定義書を、CoCoと壁打ちしながら作成する

    実装を始める CoCoを立ち上げ、まとめた要件定義書や手順書を渡して実装を進める 3 4 改良する 動かして気になった点をCoCoに指示し、その場で直していく。Playwright CLIで動作確認を行う。 デプロイする CoCoに指示して、そのままデプロイまで完了させる 17
  10. ② 実装を始める CoCoで snowflake-apps スキルを呼び出して手順書に沿って実装に取り掛かる。 このスキルが、 Snowflake App Runtimeに必要なファイル一式の用意・実装・起動確認まで進めてくれる。 CoCoに

    /snowflake-apps を指定して指示 /snowflake-apps スキルが用意してくれるもの ✔ Next.js テンプレート(Next.js 16+React 19+snowflake-sdk) 実装から起動確認まで自走して完成 ✔ snowflake.yml(デプロイ設定ファイル) ✔ Snowflakeへのデータアクセス層を担うファイル など 19
  11. ③ アプリを改良する 出来上がったアプリを動かしながら、気になった点について追加指示をして改良を進める。 アプリ構築や動作確認部分は Claudeなどに任せることも可能です。 • 実際出来上がったアプリを操作して、修正したい箇所や機能追加したいことを洗い出す • AIに改良したい箇所を指示しつつ、Playwright CLIで動作確認するよう依頼する

    ✔ Planモードで、直したい内容を箇条書きで指示する ✔ Playwright CLI がアプリを実際に操作し、そこで出たエラーの修正まで対応してくれる Planモードで、直したい内容を箇条書きで指示 Playwright CLIで動作確認をすることも指示 Planを確認して承認していく 20
  12. ④ デプロイする アプリが完成したら、 CoCoにデプロイを依頼して Snowflake App Runtimeでアプリを配布 • CoCoにデプロイを指示する(コマンド実行まで任せる) •

    CoCoがデプロイを実行し、アクセス用のURLを出力 • URLを開くとSnowflakeの認証画面に遷移し、ログインすればそのまま使える CoCoにデプロイを指示 処理が終わるとデプロイ完了報告とURLが出力される このURLにアクセスすると、Snowflakeのログイン画面に遷移する 22
  13. 本日のまとめ 本日のまとめです。 ご清聴ありがとうございます。 01 Snowflakeで業務アプリを開発するメリット ✔ データへのアクセス、インフラ構築・運用、アプリケーションへのAIの統合すべてが簡単・便利 02 Snowflakeのアプリケーション開発機能群の特徴や使い分け方法 ✔

    シンプルなUIのアプリやモックアプリは Streamlit in Snowflake で簡単かつ最速に実装 ✔ StreamlitでのUIの限界を感じたら Snowflake App Runtime ✔ さらにこだわりがある場合は、Snowpark Container Services 03 生成AIを活用したアプリ開発の実践的な進め方 ✔ 要件を固める、実装、改良、デプロイの4ステップを CoCo と一緒に進める ✔ 改良部分は、Playwright CLIを活用することでデバッグや動作確認が簡単 26