SQL を使用してStreamlitアプリを作成し、デプロイします。¶
このトピックでは、 SQLコマンドを使用してSnowflakeでStreamlitアプリを展開する方法について説明します。単一ページと複数ページの Streamlit アプリの展開方法について説明します。
SQL を使用してStreamlitアプリを作成する¶
SQL を使用して Streamlit アプリを作成する前に、必要な 前提条件 を満たしていることを確認してください。
SQL コマンドを使用してSnowflakeでStreamlitアプリを作成するには、以下の各タスクを実行します。
ローカルファイルシステムでのStreamlitファイルの作成¶
このセクションでは、単一ページまたは 複数ページの Streamlitアプリの作成方法について説明します。
- ローカルファイルシステムに、 メインのStreamlitアプリを作成します。 
- オプション: 複数ページのStreamlitアプリ を作成する場合、ローカルのファイルシステムに - pagesというフォルダを作成し、Streamlit の追加ページをこのサブフォルダに追加します。
- オプション: 外部パッケージを Streamlit アプリに含めるには、 - environment.ymlファイルを作成します。外部パッケージのインクルードに関する情報は、 environment.yml ファイルを使ったパッケージの管理 をご覧ください。
Streamlitページを作成した後、ディレクトリ構造は次のようになります。
└── streamlit/
    └── environment.yml
    └── streamlit_main.py
    └── pages/
         └── data_frame_demo.py
         └── plot_demo.py
注釈
environment.yml ファイルとオプションの pages サブフォルダーは、メインの Streamlit ファイルと同じ階層になければなりません。追加のStreamlitページは pages サブフォルダー内に含める必要があります。
Streamlitファイルの名前付きステージへのアップロード¶
Streamlit in Snowflake でStreamlitアプリを作成するには、アプリケーションファイルを名前付きステージにアップロードする必要があります。
- アプリケーションファイルをアップロードするには、以下のうちの1つを実行します。 - Snowsightを使用したファイルのステージング に記載されているように、 Snowsight を使用してアプリケーションファイルをアップロードします。 
- 以下の例に示すように、 SnowSQL を使用してアプリケーションファイルをアップロードします。 - PUT file:///<path_to_your_root_folder>/streamlit/streamlit_main.py @streamlit_db.streamlit_schema.streamlit_stage overwrite=true auto_compress=false; PUT file:///<path_to_your_root_folder>/streamlit/environment.yml @streamlit_db.streamlit_schema.streamlit_stage overwrite=true auto_compress=false; PUT file:///<path_to_your_root_folder>/streamlit/pages/streamlit_page_2.py @streamlit_db.streamlit_schema.streamlit_stage/pages/ overwrite=true auto_compress=false; PUT file:///<path_to_your_root_folder>/streamlit/pages/streamlit_page_3.py @streamlit_db.streamlit_schema.streamlit_stage/pages/ overwrite=true auto_compress=false; 
 
STREAMLIT オブジェクトを作成する¶
STREAMLIT オブジェクトは、Streamlitアプリで必要なファイルをカプセル化したSnowflakeのデータベースオブジェクトです。
- STREAMLIT オブジェクトを作成するには、以下の例に示すように CREATE STREAMLIT コマンドを実行します。 - CREATE STREAMLIT hello_streamlit ROOT_LOCATION = '@streamlit_db.streamlit_schema.streamlit_stage' MAIN_FILE = 'streamlit_main.py' QUERY_WAREHOUSE = my_warehouse; - このコマンドは、 ROOT_LOCATION と MAIN_FILE で指定されたパスとファイルに基づいて、 - hello_streamlitという名前の STREAMLIT オブジェクトを作成します。- 注釈 - QUERY_WAREHOUSE 句はオプションですが、SnowflakeでStreamlitアプリを実行するためには、クエリウェアハウスを指定する必要があります。 
- Streamlitオブジェクトが作成されたことを確認するには、 SHOW STREAMLITS コマンドを実行してください。 - SHOW STREAMLITS; 
environment.yml ファイルを使ったパッケージの管理¶
Streamlitアプリに追加のPythonパッケージをインストールするには
- ローカルファイルシステムに - environment.ymlファイルを作成します。
- STREAMLIT オブジェクトの - ROOT_LOCATIONパラメーターで指定されたステージのロケーションにファイルをアップロードするには、 PUT コマンドを実行します。- environment.ymlに記載されているパッケージは、 Snowflake Anacondaチャネル からインストールされます。
以下の environment.yml サンプルは、Streamlit環境に scikit-learn をインストールする方法を示しています。
name: sf_env
channels:
- snowflake
dependencies:
- scikit-learn
name および channels プロパティは必須です。また、 channels プロパティでは、 - snowflake キーが必要です。
注釈
Snowflake Anacondaチャネル に記載されているパッケージのみをインストールできます。SnowflakeのStreamlitは外部Anacondaチャネルをサポートしていません。
Streamlitバージョンを environment.yml ファイルで固定します。¶
- Streamlitのバージョンを - environment.ymlファイルに固定するには、次の例のように- streamlit依存関係を含めます。- name: sf_env channels: - snowflake dependencies: - scikit-learn - streamlit=1.31.1 
Streamlitアプリを表示する¶
- STREAMLIT オブジェクトに関する情報を表示するには、以下の例に示すように DESCRIBE STREAMLIT コマンドを実行します。 - DESC STREAMLIT hello_streamlit; 
- Snowsight でStreamlitアプリを表示する方法については、 Streamlitアプリを表示する をご参照ください。 
STREAMLIT オブジェクトの管理¶
STREAMLIT オブジェクトを作成した後、 ALTER STREAMLIT コマンドを使用して、以下のセクションで記載されたさまざまなプロパティを変更します。
STREAMLIT オブジェクトの名前変更¶
- STREAMLIT オブジェクトの名前を変更するには、以下の例に示すように ALTER STREAMLIT コマンドの RENAMETO 句を使用します。 - ALTER STREAMLIT hello_streamlit RENAME TO hello_snowflake; 
STREAMLIT オブジェクトのステージまたはメインファイルを変更します。¶
- STREAMLIT オブジェクトのステージへのパスを変更するには、以下の例に示すように ALTER STREAMLIT コマンドを使用してオブジェクトの ROOT_LOCATION プロパティを設定します。 - ALTER STREAMLIT hello_streamlit SET ROOT_LOCATION = '@snowflake_db.snowflake_schema.snowflake_stage' 
- STREAMLIT オブジェクトのメインStreamlitファイルを変更するには、以下の例に示すように ALTER STREAMLIT コマンドを使用してオブジェクトの MAIN_FILE プロパティを設定します。 - ALTER STREAMLIT hello_streamlit SET MAIN_FILE = 'snowflake_main.py' 
STREAMLIT オブジェクトに割り当てられたクエリウェアハウスを変更します。¶
- STREAMLIT オブジェクトにクエリウェアハウスを追加したり、現在のクエリウェアハウスを変更するには、以下の例に示すように ALTER STREAMLIT コマンドを使用してオブジェクトの QUERY_WAREHOUSE プロパティを設定します。 - ALTER STREAMLIT hello_streamlit SET QUERY_WAREHOUSE = my_new_warehouse; 
利用可能な STREAMLIT オブジェクトの一覧表示¶
- 現在のロールで利用可能なStreamlitアプリを一覧表示するには、以下の例に示すように SHOW STREAMLITS コマンドを実行します。 - SHOW STREAMLITS; 
STREAMLIT オブジェクトの削除¶
- STREAMLIT オブジェクトを削除するには、以下の例に示すように DROP STREAMLIT コマンドを実行します。 - DROP STREAMLIT hello_streamlit;