はじめてのStreamlit in Snowflake

はじめてのStreamlit in Snowflake | Tableau-id Press -タブロイド-
snowflake_logo

こんにちは!
ついにStreamlit in SnowflakeがPublic Previewに移行しましたね!
早速トライアル環境で触ってみたので、最初に行った手順についてご紹介したいと思います。

Streamlit in Snowflakeって何?

Pythonでwebアプリを作成できるフレームワーク「Streamlit」を、Snowflake上で使えるよ!
Snowflake上でStreamlitによるwebアプリを直接開発できちゃうよ!というsnowflakeの新機能です。
弊社ではStreamlitを極めんとしているメンバーも多く、心待ちにしていた機能です!

準備

公式ドキュメントに沿って準備を進めていきます!

Anacondaの規約の承認

Snowflakeの左サイドバーからStreamlitをクリックすると、Anacondaの規約への承認が必要ですよ~と表示されます。

Streamlit初期画面

Admin>Billing&Termsを選択して、Anaconda Packagesの「Enable」をクリック

Billing&Terms

規約を確認したら、「Acknowledge & Continue」をクリック。これで規約の承認は完了です。

Billing&Terms承認

データベースとロールの作成

公式ドキュメントによると

Snowflake で Streamlit を使用して Streamlit アプリを作成および編集するには、Streamlit アプリを含むスキーマとデータベースに対して次の権限が付与されたロールを使用する必要があります。
・使用法
・ストリームリットの作成
・ステージの作成

 

とのことなので、データベースとロールを作成し、権限を付与していきます!

ACCOUNTADMINでサイドバーからStreamlitをクリックすると、以下のようにサンプルスクリプトが参照できます。

サンプルスクリプトはここ
サンプルスクリプトは以下の通りです。
権限付与のサンプルスクリプト

大まかな流れは
・STREAMLIT_APPSというデータベースを作成
・全てのロールにStreamlitアプリを作成する権限を付与
・ウェアハウスにUSAGE権限を付与
という処理で、<>で囲まれている部分を変更するだけで実行できます。

こちらを実行すると、準備完了です!

アプリの作成

準備が整ったのでアプリをつくっていきます!

サイドバーのStreamlitを選択し、右上の+Streamlit Appをクリックすると、
ウェアハウスとロケーションの入力を求められます。先ほど準備したものを選択して「Create」をクリック。

Create Streamlit Apps

サンプルのStreamlitコードと実行結果が表示されました!
スライダーを動かすとグラフも動いて、インタラクティブ!

サンプルコード

左側のエディターにStreamlitのコードを入力して、右側で実行結果が出る、という感じですね
(エディター等の表示・非表示は左下のボタンで切り替えできます)。

 

次に、Streamlitのチュートリアルコンテンツである30days of Streamlitで予習していたStreamlitのコードが動くか、
試してみたいと思います。

下記のように折れ線グラフを表示する簡単なコードを記載して実行すると…
おお!グラフが表示できました。

ラインチャート

NativeAppでStreamlitをアプリ化する際は、セットアップのファイルをローカルで作成してアップして…
と、少し手間でしたが、Streamlit in SnowflakeではStreamlitのコードだけで実行できて、すごく楽ですね!
コードをその場で実行して結果をプレビューできるので、開発時に捗りそうです!
(NativeAppでのStreamlitのアプリ化はこちらで詳しく解説しています)

Snowflake上のデータベースを参照するのも簡単です。
弊社がSnowflakeマーケットプレイス上で無料提供しているオープンデータ「PODB」を使って作成してみました!

岩手県の出生数の推移を見たり…

岩手県の出生数推移

いわて銀河鉄道線が停まる駅をプロットしたり…
(ちなみに、岩手県続きなのは私の出身地だからです。良いところですよ!)

いわて銀河鉄道線

こんなことが、PODB + 数行のStreamlitコードでできちゃいます!
PODBはSnowflakeアカウントさえあればどなたでも無料ですぐにご利用できるデータベースなので、
こういった動作テストなどにもご活用いただけます!
色々なデータベースをご用意していますので、ぜひこちらからご確認ください。

課金

アプリを表示している間はウェアハウスが稼働しますが、操作しないまま15分経過すると、自動的に停止してくれます。

This warehouse remains active while the app’s web-socket connection is active. The web-socket connection expires approximately 15 minutes after its last use.

とはいえ、15分間は稼働しちゃうので、アプリの実行画面を開きっぱなしにしないように気を付けましょう!
15分経つと、こんな感じで寝ちゃいます。再度実行したい場合は、クリックして起こしてあげてください。

15分経過後

まとめ

この記事ではStreamlit in Snowflakeの始め方についてご紹介しました!
今回は簡単な可視化だけですが、より具体的な使い方やユースケースについては今後また発信していきたいと思います!

truestarではSnowflakeの検討、導入支援や環境構築からアプリ開発まで幅広くサポート可能です。
Snowflakeに゙興味がある、導入済みだけどもっとうまく活用したい等々ありましたら、ぜひこちらからご相談ください!