Streamlit in Snowflake、こんなに簡単だったとは。新卒1年目が業務アプリを作ってみた話
この記事は、NTTデータ Snowflakeアドベントカレンダーの24日目です。
1. はじめに:Streamlit in Snowflakeで“作りたいものがすぐ作れる”と実感した話
こんにちは。データマネジメント統括部の田辺です。
今年入社した新卒1年目です。
現在のプロジェクトでは、生成AIにプロンプトを与えて
Snowflake 上でファイルフォーマット・テーブル・プロシージャなどの
資材を自動生成する仕組みのトライアルを進めています。
この仕組みでは、Snowflake のテーブルで管理している各種プロンプトを、
製造対象(file_format / table / procedure)に応じて切り替えるような
共通処理で実現しています。
ただ、このプロンプトの改善作業が意外と大変でした。
プロンプトを少し変更するたびに INSERT / UPDATE を書いてテーブルを更新し、
そのあと プロシージャを実行して結果を確認する──
この一連の手順を毎回繰り返す必要があり、
改善サイクルがどうしても重くなってしまっていました。
そんなときに
「Snowflakeには Streamlit があるし、これを使えばプロンプトテーブルの編集を簡単に作れるのでは?」
というアイデアが今回作成するきっかけでした。
Streamlit in Snowflake なら Python だけで UI を作れるため、
SQL を毎回書かずにプロンプトを編集できる環境が作れそうだと感じました。
さらに、せっかく画面を作るのであれば、
- プロンプトの編集
- 変数の編集
- 生成AIの呼び出し結果の確認
までを一つの画面で完結させたいと思い、
Streamlit in Snowflake を使って業務改善ツールを作ってみました。
🏁 この記事の目的
この記事では、新入社員の私が
Streamlit in Snowflake × 生成AI を使って“作りたいものをすぐ作れる”と実感した開発体験
を紹介します。
- 「業務効率化のアイデアはあるが、開発まで手が回らない」
- 「Snowflake をもっと活用してみたい」
- 「生成AI×アプリ開発の実例を知りたい」
といった方に向けて、
Streamlit が手軽で、生成AIと組み合わせたときにどれほど開発が進めやすくなるのか、
実際の進め方とともにお伝えします。
2. Streamlit in Snowflake とは?
まず最初に、今回の開発で活用した Streamlit in Snowflakeについて簡単に紹介します。
Streamlit in Snowflake は、Snowflake 上で Python を書くだけで そのまま Web アプリを公開できる仕組み です。
環境構築やサーバ設定が不要で、コードを変更するとUI が動くため、手軽に始められます。

■ Streamlit in Snowflake の特徴
実際に触ってみて「これは便利だ」と感じたポイントは以下の通りです:
-
Snowflake のデータをそのまま扱える
追加の接続設定や API 実装がほぼ不要で、コードがシンプルになります。 -
最小限のコードで UI が完成する
Streamlit は “書いたコードがそのまま動く UI になる” 仕組みのため、試作が非常に早いです。 -
自動再描画(re-render)で素早く調整できる
UI の見た目やロジックを変更するとすぐ反映されるので、改善サイクルが短くなります。
また、Streamlit in Snowflake は
Tableau のようにデータを“見る”こともできますが、
今回のようにデータを“編集して運用する”ための簡易ツールとして相性が良い と感じました。
3. 生成AIと対話しながらアプリを作った開発ストーリー
■ Streamlit×生成AIが効果的だった
今回のStreamlit in Snowflake のコード作成では生成AIが大きな助けとなってくれました。
「このテーブルを編集できる画面がほしい」「こういう構成にしたい」
といった要望をそのまま伝えるだけで、動作する Streamlit コードの雛形が生成されます。
UI、更新処理といった基本構造がすぐに用意されるため、
“修正と微調整” に集中 できました。
生成AIを活用した開発支援ツールは、ChatGPT だけでなく
Cursor、GitHub Copilot、Gemini Code Assist など多く存在します。
その中で今回 ChatGPT を使ったのは、
社内ライセンスが配布されていてすぐに使えたこと、
そして 対話形式で要望をそのまま伝えられる“とっつきやすさ” があったこと が理由です。
生成AIがコードの叩き台を、Streamlit in Snowflake が実行環境を提供してくれることで、
“まず動かすまでのハードル” が大きく下がったことが簡単に作れることに繋がりました。
■ 最初に ChatGPT に伝えたこと
アプリ開発といっても、最初に ChatGPT に送ったメッセージは本当にシンプルでした。
「このテーブルを編集できて、プロンプトを試せる画面がほしいです」 と下記のように伝えました。

すると ChatGPT は、UI と更新処理を備えた Streamlit のサンプルコードを返してくれました。
「やりたいことをそのまま書くだけでアプリの土台ができる」という手軽さ に驚きました。
■ ChatGPT と進めた“ペアプログラミング”のような開発体験
コードの改善も、ChatGPT に会話するように要件を伝えるだけでした。
- やりたいことを日本語で伝える
- ChatGPT が生成したコードを Streamlit in Snowflake に貼って実行
- 動かしながら気になる点を相談
- 修正コードが返ってきたら再実行する
この4ステップを回すだけで、UI もロジックも、新機能追加も簡単に実装することができました。
特に感動したのは、ChatGPT が“ただコードを書く”だけではなかったことです。
- テーブル構造から UPDATE / INSERT / 整合性チェックを自動生成
- チェックロジックの文章説明を理解して最適なコードに変換
- 「ここをもっと簡潔に」「ここだけ書き換えたい」など曖昧な希望も解釈して改善案を提案
まるで一緒に設計を進めてくれる ペアプロエンジニア のようで、
新入社員の私でも迷わず改善サイクルを回すことができました。
4. 完成したアプリ紹介
最終的に、次のような機能をもつプロンプト管理ツールが完成しました。

このアプリでは、次のような機能を実装しています。
-
プロンプト管理:
Snowflake のPROMPT_MNGテーブルを UI から直接編集できます(追加 / 更新 / 削除)。 -
レコード自動表示:
PROMPT_IDを選択すると、対応するレコード内容が即座に読み込まれます。 -
プロンプト編集:
SYSTEM_PROMPT / USER_PROMPT_TEMPLATE をブラウザでそのまま編集可能です。 -
テスト実行:
変数を入力して生成AIをその場で呼び出し、プロンプトの挙動を確認できます。
これまでは SQL を書いたりプロシージャを実行して確認したり、
プロンプトの改善サイクルに余計なステップが挟まっていました。
それが Streamlit によって UI 化されたことで、
必要な情報がひとまとまりになり、開発に集中できるようになりました。
また、Streamlit の UI コンポーネントによってレイアウトが自動で整うため、
UI 実装に時間を使わず、ロジックや機能の改善に集中できたことが大きなメリットでした。
5. 業務で発揮された効果
今回作った Streamlit ツールを実際の作業で使ってみて、一番感じたのは
プロンプト改善にかかる負荷が下がり、改善サイクルが回しやすくなったこと です。
🔍 Before:直したいところだけを試せない環境だった
仕組み全体を完全に理解しきれておらず、
プロンプトを直したいだけなのに
- SQL の INSERT / UPDATE を書く
- プロシージャを実行する
- 結果を別の場所で確認する
と、複数の作業を行き来しないといけないのが特に負担でした。
「プロンプトをちょっと直すだけ」のつもりが、
毎回小さくない作業コストが発生してしまい、改善のリズムを作るのが難しい状態でした。
✨ After:最小単位で試せる環境が整った
Streamlit で UI を作ったことで、
プロンプト改善に必要な操作を 1つの画面にまとめる ことができました。
- テーブルの編集(追加 / 更新 / 削除)
- 変数値の入力
- 生成AIを使ったテスト実行
- 結果の確認
が一連の流れとして 画面内で完結 します。
結果として、
- 迷うポイントが減る
- 作業の段取りを考える必要がなくなる
- 思いついた改善をそのまま試せる
といった “改善のしやすさ” が向上しました。
6. まとめ:インフラと実装、2つの壁をまとめて低くできた
今回 Streamlit in Snowflake と生成AIを組み合わせて感じたのは、
取り組みを進める上での“2つの壁” を下げられたことです。
-
UI を用意するためのインフラの壁
(環境構築・デプロイ・接続設定など) -
動くロジックを作るための実装の壁
(UIコード、処理フロー、SQL更新ロジックなど)
Streamlit in Snowflake は前者を、生成AI は後者を軽くしてくれました。
その結果、思いついた改善をすぐ形にして試せる環境が整い、
小さく素早く改善サイクルを回せるようになりました。
私自身、これからもこの仕組みを活かしながら小さく試す開発を続けていきたいと思います。
最後までご覧いただき、ありがとうございました!
Streamlit in Snowflake は小さな改善にもすぐ活かせる仕組みだと思いますので、
ぜひお手元でもお試しください。
NTT DATA公式アカウントです。 技術を愛するNTT DATAの技術者が、気軽に楽しく発信していきます。 当社のサービスなどについてのお問い合わせは、 お問い合わせフォーム nttdata.com/jp/ja/contact-us/ へお願いします。