[レポート]Streamlitで拡がるデータクラウド #SnowflakeDB #SnowdayJapan

2023.02.16

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

この記事は、2023年2月14日開催のSNOWDAY JAPANのセッション『Streamlitで拡がるデータクラウド』に関するセッションレポートです。

セッション概要

概要

開発者は、迅速かつシンプルにデータアプリケーションを開発・展開できるテクノロジーを必要としています。Streamlit in Snowflakeによって、ユーザーが数行のPythonを使って簡単にデータやMLをインタラクティブなアプリとして実現する方法、そしてすべてのデータサイエンティストや開発者がフルスタックのエンジニアリングチームを必要とせずにアプリケーションを構築、展開、共有できるようにするというビジョンについて説明します。

登壇者

  • Snowflake株式会社 増尾 卓巳 氏

Streamlitとは

  • PythonのOSSのライブラリ、Pythonだけでアプリケーションを開発できる

  • Streamlitが生まれた背景
    • Amazonで自動運転に関わっていたエンジニア(Adrien氏)が、課題を感じて開発したのがStreamlit
    • Adrien氏は画像検知などを含む自動運転のモデルを構築したが、構築したモデルを別のチームの人に使えるようにしていかないといけず、これが課題だった
    • これまでの技術では対応不可能。BIツール、ノートブック、フロントエンド言語、チームの雇用、いずれでも課題があり難しい
    • この課題解決のために、構築した自動運転のモデルを別チームが使用できるようにするためのアプリをPythonだけで開発できる、Streamlitを開発した

  • Streamlitで出来ること
    • Streamlit開発の狙いでもある自動運転のオブジェクト検知に関する機械学習モデルを使用するためのアプリはもちろん、地理的データや自然言語を処理するアプリも開発可能
    • 一方で高度なプログラミングが必要に見えるかもしれないが、そんなことはなく学びやすい

デモ:1つ目

  • やること
    • 左側の画面で、Pythonのコードを書いて、右側に実行結果を映していく
    • デモ用のデータはnumpyで生成
  • StreamlitはMarkdownの書式に対応、見出しや絵文字もすぐに追加できる
  • Stremalitには、データフレームに入っているデータを、簡単に折れ線グラフや棒グラフで表示できる

デモ:2つ目

  • やること
    • 自動運転に必要なモデルを構築し、Streamlitで開発したアプリから使用してみる
  • 検知する対象をアプリ上で条件変更して切り替えることができる
  • モデルの閾値をsliderで簡単に切り替えることができる

  • 開発したコード自体をアプリケーション上に見せることもできる

Streamlitの利用状況とSnowflakeとの関係性

  • Streamlitの利用状況
    • 1000万ダウンロードされている
    • 2022年3月時点で、Fortune 50のうち半分がStreamlitを使っている

  • Streamlit × Snowlake
    • データ、Python、アプリケーション、この3つをSnowflake上でかけ合わせるためにStreamlitがマッチしたので、Snowflakeが買収した

デモ:3つ目

  • やること
    • Snowflake上で、Streamlitで開発したアプリケーションを実行する
  • Snowpark for Pythonで、Snowflake上のデータを読み込み、ユーザー定義関数を用いて事前に構築した機械学習のモデルを参照するようにしている

  • Snowflakeの画面上から、実際のPythonのコードと、Streamlitで開発した画面を同時に確認可能

  • Snowflake上で開発したアプリは、従来のデータベースオブジェクトと同じように、ロールベースで操作権限を管理できる

次に目指すもの

  • Streamlit
    • 新しいデータフレームに対応したり、よりきれいなチャートを表示できるようになったり、Streamlit単体としてのアップデートも見込んでいる
  • Streamlit × Snowflake
    • 社内向けのアプリとしてはもちろん、ネイティブアプリとしてMarketplaceでも公開可能になる予定

最後に

Streamlitを用いることでPythonだけで簡単にアプリケーションを開発できることができ、更にはSnowflake上でアプリ開発から社内外への展開まで可能になるということで、まさにタイトルどおり「Streamlitで拡がるデータクラウド」がわかった発表でした。

これまでもSnowflakeはデータについて社内外への共有が簡単に可能でしたが、今後はStreamlitでアプリケーションを開発してデータに付加価値をもたせた上で社内外へ共有できるようになり、一層データの活用が加速するのではないでしょうか。

ちなみに、登壇された増尾氏はZennでもStreamlitに関する記事を投稿されています。こちらもぜひ併せてご覧ください!