こんにちは!ozawaです!
今回は、Streamlit in Snowflakeで複数ページの画面を作成するための手順を解説していきます。
SnowSightUI上でStreamlitを自動作成してくれる便利な機能がありますが、複数ページを実装しようとした場合は、クエリメインで開発を行っていく必要があります。
複数ページ作成方法のドキュメントをもとに、手順を説明していきます。
Snowsight上の作成手順(単一ページのみ可)
Projects → Streamlit → + Streamlit AppからStreamlitオブジェクトを作成できます。
しかしながら、この手法では複数ページを実装できないので、次の手法を試す必要があります。
複数ページ作成手順
一方で、複数ページを作成する場合は、ローカル上で作成したStreamlitファイルをStageに上げて、StageファイルからStreamlitオブジェクトを作成する必要があります。
Streamlitを作るのに必要なファイルは複数存在します。まずは使用するファイルとフォルダ構造を示します。
| -- OZAWADB (DB)
| -- PUBLIC (SCHEMA)
| -- STAGE (MULTI_PAGE_STREAMLIT)
| -- streamlit_main.py
| -- pages
| -- page1.py
| -- page2.py
1. ローカル上でファイルを作成
次に各ファイルのコードを示します。ローカル上でテキストエディタを使って、Stageをアップするpyファイルを3つ作成します。
#pages/page1.py
import streamlit as st
st.title('ページ1')
st.write('page1.pyで作成されたページ')
#pages/page2.py
import streamlit as st
st.title('ページ2')
st.write('page2.pyで作成されたページ')
# streamlit_main.py
import streamlit as st
st.title('複数ページを作成')
st.write('メインページ・ページ1・ページ2 3つ作成されるよ♪')
2. Stageにアップ
Data→Databaseからスキーマを選択し、Create → Stage → Snowflake ManageでStageを作成します。
Stageにアクセスし、+Files から手順1で作成したpyファイルをアップしていきます。
※ page1.pyとpage2.pyはpagesフォルダに入れる必要があるため、下の記入欄に「pages」と記入します。
3. Streamlitを作成
Stageに作成したPyファイルを参照して、Streamlitオブジェクトを作っていきます。
create streamlit クエリを実行します。
//stageからStreamlitを作成
CREATE STREAMLIT OZAWADB.PUBLIC.MULTI_PAGE_STREAMLIT
ROOT_LOCATION = '@OZAWADB.PUBLIC.MULTI_PAGE_STREAMLIT' //Stageを指定
MAIN_FILE = '/streamlit_main.py' //メインファイル(streamlit_main)を指定
QUERY_WAREHOUSE = default; //Streamlit内部でのクエリ実行用のウェアハウス
Streamlit画面が作成されたかを確認していきます。
Projects → Streamlitから、先ほど作成したStreamlitを開きます。
ウェアハウスを選択します。
サイドバーで複数画面を選択できれば成功です!!!
おわりに
truestarでは、Snowflakeのアプリ開発だけではなく、検討、導入支援や環境構築まで幅広くサポート可能です。
Snowflakeに゙興味がある、導入済みだけどもっとうまく活用したい等々ありましたら、ぜひこちらから相談ください!
これまでのSnowflakeに関する記事はこちら