SQL を使用したStreamlitアプリの作成¶
注意
この機能は AWS およびMicrosoft Azure商用リージョン のアカウントで利用できます。 AWS PrivateLink と Azure Private Link はサポートされていません。
このトピックでは、 SQLコマンドを使用してSnowflakeでStreamlitアプリを展開する方法について説明します。単一ページと複数ページの Streamlit アプリの展開方法について説明します。
前提条件¶
SQL を使用してStreamlitアプリを展開する前に、以下の前提条件を満たす必要があります。
サポートされていないStreamlit機能 と Streamlit in Snowflake を使用する場合の追加制限 を確認する。
Streamlitアプリの作成と使用に必要な権限 に記載されているように、アカウントに正しい権限があることを確認する。
Streamlitアプリのファイルをアップロードする名前付きステージを作成できるか、そのアクセス権があることを確認する。
SQL を使用したStreamlitアプリの作成¶
SQL コマンドを使用してSnowflakeでStreamlitアプリを作成するには、以下の各タスクを実行します。
ローカルファイルシステムでのStreamlitファイルの作成¶
このセクションでは、単一ページまたは複数ページのStreamlitアプリの作成方法について説明します。各タイプの適用例については、 例 - 単ページのStreamlitアプリ と 例 - 複数ページのStreamlitアプリ をご参照ください。
Stremlitアプリにファイルを作成するには、以下を実行します。
ローカルファイルシステムに、 メインの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 アプリの表示¶
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;