【レポート】最新情報:Streamlit in Snowflake #SnowflakeDB

2023.09.11

2023年9月8日(金)に、ANAインターコンチネンタル東京にて、Snowflake 社による日本最大級のデータイベント「Snowflake Data Cloud World Tour Tokyo」が開催されました。

本記事では、Snowflake株式会社 西阪氏による「最新情報:Streamlit in Snowflake」というセッションについてレポートします。

セッション情報

  • セッションタイトル
    • 最新情報:Streamlit in Snowflake
  • スピーカー
    • Snowflake株式会社 セールスエンジニアリング本部 西阪 一 氏
  • セッション概要

SnowflakeとStreamlitの統合に対する最新の機能とPythonを使用して迅速にアプリケーションを構築する方法をデモンストレーションを交えてご紹介します。

DATA CLOUD WORLD TOUR Tokyo – アジェンダより引用

セッション内容

Streamlit in Snowflake を選ぶ理由

  • Streamlit の使用状況
    • Fortune 500 の 80% 以上の企業が Streamlit を使用している
  • Streamlit とは?
    • OSS の Python 用UIライブラリ
    • フロントエンドも含めて Pythonのみでアプリケーションを開発できる
  • データの実用化における課題
    • 以下のように踏むべきステップが多く、実用化(アプリケーションのリリース)にまで数か月を要する
      • データ調査
      • モデル作成
      • ビジネスユーザー向けのアプリケーション作成
        • フロントエンド側の実装
      • ネットワークなど、インフラ部分の構築 など
    • リリース後もデータは常に更新されるので、それに伴うアプリケーションのアップデート・スケーリングの手間を要する
    • 新しいアプリケーションを作成する度に上記のようなコストがかかる
      • アイデアを思いついても実装までが遠い
    • また、実際にアイデアをもとにアプリケーション化したとしても、実用的なインサイトに結びつく例は少ない
  • Streamlit を使用するメリット
    • ユーザーがビジネス上の問題点の特定を可能とするインタラクティブなチャートやインターフェースを提供可能
    • 新たに必要となった情報も迅速にアプリケーションに追加可能
    • 上記の反復も高速化
  • Streamlit in Snowflake
    • Snowflake 上で Streamlit によるウェブアプリケーションを開発できる
      • アプリケーション画面をプレビューしながらの開発も可能
    • アプリケーションの開発が終わればそのまま Snowflake 上でアプリケーションを配布することも可能
      • これにより、インフラ構築・リリース作業は不要に
    • Snowflake のデータガバナンス機能により、必要なデータを必要なユーザーに見せることも可能
    • アプリケーションの実行には Snowflake のウェアハウスを使用するので、ユーザーやデータ量が増えてもスケールが容易

デモ1

  • 内容
    • Streamlit のライブラリとしてどのようなものがあるかご紹介
  • データフレームの内容を表形式で表示
    • 読み取り専用としたりユーザーが値を編集することができるコンポーネントも存在
  • チャートの表示
    • 基本的な折れ線・棒グラフを紹介
    • 縦並び・横並びなど、レイアウト変更も可能
  • インターフェース
    • テキストボックス・スライダー・選択リスト・ボタン など代表的なインターフェースを紹介
    • 実行ボタンを用意し、ユーザーが実行ボタンを押すことで何かしらのロジックを実行させるような機能も作成可能
  • 地図の表示
    • 地図を含むアプリも作成できる

デモ2

  • 内容
    • 需要と利益の予測アプリケーション
      • バックエンドに MLモデルを用意し、モデルから推論した推奨価格を表示
      • 価格を設定すると、その値に応じて需要がどのように変更するか予測
    • 基調講演でも紹介があった内容
  • 作成したアプリケーションは容易にビジネスユーザーと共有可能
    • 共有先となる対象のロールを指定する
  • StreamlitIO の紹介
    • サンプルアプリケーションが登録されているページ
    • GitHub 上にコードが公開されているサンプルアプリケーションも存在

お客様アプリのサンプル

Streamlit in Snowflake は現在プライベートプレビュー段階。プライベートプレビューに参加した企業の実例を4つ紹介。

  1. NTT データ様
    • ウェアハウスの使用状況管理アプリケーション
      • これまではクエリで確認する必要があったものをGUIで確認できるアプリケーションを作成
      • AWS のみのプレビュー機能ではあるが、マーケットプレイス上からインストールも可能
  2. appfolio様(アメリカの不動産管理会社)
    • 収益への影響を分析するアプリケーション
      • ビジネス上の要因が会社の年間収益に与える影響を評価する
    • データチームが財務部門向けに提供
    • バックエンドでMLモデルが動いており推論を行う
    • 従来は BI ツールで実施して内容を Streamlit in Snowflake 上で実施することで高速化を実現
  3. 映像エンターテインメント企業
    • Snowflake のテーブルに対する CRUD 操作を Streamlit 上で実施した例
    • Matillion という ETL ツールのログをSnowflake に登録
      • アラートがあがったジョブに対して実施する対応内容のフラグ付けを行う
      • GUIベースでの運用補助ツールとして使用
  4. appfolio様 ※事例2と同組織における事例
    • 製品実験追跡のためのアプリケーション
      • ウェルカムバナーのコンバージョン率の追跡を Streamlit で実施
    • 従来は統計チームが結果をマーケティングチームに共有していたが、アプリケーション化により、マーケティングチームのメンバー自身で分析が実施できるように

次の展開

  • 現時点において Streamlit in Snowflake が有用な状況
    • アプリケーションのコンポーネントはすべて Snowflake 上で稼働
      • データ、ステージ上の ML モデル、ストアドプロシージャなど各オブジェクトに対する一貫したガバナンスを維持してアプリケーションを実行できる
    • アプリケーションは社内ユーザー専用
      • Snowflake アカウントにログインし、アプリケーションを操作することになるので外部ユーザーの利用は現時点ではできない
    • JavaScript/REACT/CSS なしで稼働可能
      • Python のみでアプリケーションを開発できる
  • Streamlit の拡張・今後の展開
    • 機能拡張を進め、より多くのユースケースに対応する方針
    • 現時点では、データの可視化・インタラクティブな分析・CRUD操作も可能
    • 今後は、Streamlit 上で ML・LLM を組み合わせできるような拡張を目指している
  • Streamlit in Snowflake は間もなくパブリックプレビュー

さいごに

Streamlit の機能により Python のみでフロントエンド部分までも含めたアプリケーションの開発が可能となります。さらに、Streamlit in Snowflake によって Snowflake 上で Streamlit によるアプリケーションの開発から配布までが可能となります。

Snowflake 上にインフラが存在することで、インフラ構築の作業のスキップはもちろん Snowflake の強力なデータガバナンス機能によるデータ保護、ウェアハウス使用によるスケーリングまでも実現されるという内容でした。

さらに今後は ML・LLM の活用を促進する開発も進められるようで Snowflake を通して誰でも簡単に高度なデータ活用が実現できることへの期待も高まり非常に楽しみです。

Streamlit in Snowflake は間もなくパブリックプレビューとのことです!