SQL を使用したStreamlitアプリの作成

注意

この機能は AWS およびMicrosoft Azure商用リージョン のアカウントで利用できます。 AWS PrivateLinkAzure Private Link はサポートされていません。

このトピックでは、 SQLコマンドを使用してSnowflakeでStreamlitアプリを展開する方法について説明します。単一ページと複数ページの Streamlit アプリの展開方法について説明します。

前提条件

SQL を使用してStreamlitアプリを展開する前に、以下の前提条件を満たす必要があります。

SQL を使用したStreamlitアプリの作成

SQL コマンドを使用してSnowflakeでStreamlitアプリを作成するには、以下の各タスクを実行します。

ローカルファイルシステムでのStreamlitファイルの作成

このセクションでは、単一ページまたは複数ページのStreamlitアプリの作成方法について説明します。各タイプの適用例については、 例 - 単ページのStreamlitアプリ例 - 複数ページのStreamlitアプリ をご参照ください。

Stremlitアプリにファイルを作成するには、以下を実行します。

  1. ローカルファイルシステムに、 メインのStreamlitアプリを作成します

  2. オプション: 複数ページのStreamlitアプリ を作成する場合、ローカルファイルシステムに pages というフォルダーを作成し、このサブフォルダーに追加のStreamlitページを含めます。

  3. オプション: 外部パッケージを Streamlit アプリに含めるには、 environment.yml ファイルを作成します。外部パッケージを含める詳細については、 environment.yml ファイルを使ったパッケージのインストール をご参照ください。

Streamlitページを作成した後、ディレクトリ構造は次のようになります。

└── streamlit/
    └── environment.yml
    └── streamlit_main.py
    └── pages/
         └── data_frame_demo.py
         └── plot_demo.py
Copy

注釈

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;
    
    Copy

STREAMLIT オブジェクトの作成

STREAMLIT オブジェクトは、Streamlitアプリで必要なファイルをカプセル化したSnowflakeのデータベースオブジェクトです。

  1. STREAMLIT オブジェクトを作成するには、以下の例に示すように CREATE STREAMLIT コマンドを実行します。

    CREATE STREAMLIT hello_streamlit
    ROOT_LOCATION = '@streamlit_db.streamlit_schema.streamlit_stage'
    MAIN_FILE = '/streamlit_main.py'
    QUERY_WAREHOUSE = my_warehouse;
    
    Copy

    このコマンドは、 ROOT_LOCATION と MAIN_FILE で指定されたパスとファイルに基づいて、 hello_streamlit という名前の STREAMLIT オブジェクトを作成します。

    注釈

    QUERY_WAREHOUSE 句はオプションですが、SnowflakeでStreamlitアプリを実行するためには、クエリウェアハウスを指定する必要があります。

  2. Streamlitオブジェクトが作成されたことを確認するには、以下の例に示すように SHOW STREAMLITS コマンドを実行します。

    SHOW STREAMLITS;
    
    Copy

environment.yml ファイルを使ったパッケージのインストール

Streamlitアプリに追加のPythonパッケージをインストールするには

  1. アプリに environment.yml ファイルを追加します

  2. STREAMLIT オブジェクトの ROOT_LOCATION パラメーターで指定されたステージのロケーションにファイルをアップロードするには、 PUT コマンドを実行します。

    environment.yml に記載されているパッケージは、 Snowflake Anacondaチャネル からインストールされます。

以下の environment.yml サンプルは、Streamlit環境に scikit-learn をインストールする方法を示しています。

name: sf_env
channels:
- snowflake
dependencies:
- scikit-learn
Copy

name プロパティと channels プロパティは必須です。また、 channels プロパティでは、 - snowflake キーが必要です。

注釈

Snowflake Anacondaチャネル に記載されているパッケージのみをインストールできます。SnowflakeのStreamlitは外部Anacondaチャネルをサポートしていません。

Streamlit アプリの表示

STREAMLIT オブジェクトに関する情報を表示するには、以下の例に示すように DESCRIBE STREAMLIT コマンドを実行します。

DESC STREAMLIT hello_streamlit;
Copy

Snowsight でStreamlitアプリを表示する方法については、 Streamlitアプリを表示する をご参照ください。

既存の STREAMLIT オブジェクトの変更

STREAMLIT オブジェクトを作成した後、 ALTER STREAMLIT コマンドを使用して、以下のセクションで記載されたさまざまなプロパティを変更します。

STREAMLIT オブジェクトの名前変更

STREAMLIT オブジェクトの名前を変更するには、以下の例に示すように ALTER STREAMLIT コマンドの RENAMETO 句を使用します。

ALTER STREAMLIT hello_streamlit RENAME TO hello_snowflake;
Copy

STREAMLIT オブジェクトのステージまたはメインファイルを変更します。

STREAMLIT オブジェクトのステージへのパスを変更するには、以下の例に示すように ALTER STREAMLIT コマンドを使用してオブジェクトの ROOT_LOCATION プロパティを設定します。

ALTER STREAMLIT hello_streamlit SET ROOT_LOCATION '@snowflake_db.snowflake_schema.snowflake_stage'
Copy

STREAMLIT オブジェクトのメインStreamlitファイルを変更するには、以下の例に示すように ALTER STREAMLIT コマンドを使用してオブジェクトの MAIN_FILE プロパティを設定します。

ALTER STREAMLIT hello_streamlit SET MAIN_FILE 'snowflake_main.py'
Copy

STREAMLIT オブジェクトに割り当てられたクエリウェアハウスを変更します。

STREAMLIT オブジェクトにクエリウェアハウスを追加したり、現在のクエリウェアハウスを変更するには、以下の例に示すように ALTER STREAMLIT コマンドを使用してオブジェクトの QUERY_WAREHOUSE プロパティを設定します。

ALTER STREAMLIT hello_streamlit SET QUERY_WAREHOUSE my_new_warehouse;
Copy

利用可能な STREAMLIT オブジェクトの一覧表示

現在のロールで利用可能なStreamlitアプリを一覧表示するには、以下の例に示すように SHOW STREAMLITS コマンドを実行します。

SHOW STREAMLITS;
Copy

STREAMLIT オブジェクトの削除

STREAMLIT オブジェクトを削除するには、以下の例に示すように DROP STREAMLIT コマンドを実行します。

DROP STREAMLIT hello_streamlit;
Copy