Streamlit in Snowflake 入門¶
このトピックでは、最初の Streamlit in Snowflake アプリを作成および実行する方法について説明します。
前提条件¶
Streamlitアプリを作成する前に、管理者がStreamlitアプリの 必須のセキュリティ設定 を完了していることを確認します。
ロールは、以下の権限を持っていなければなりません。
権限 |
オブジェクト |
メモ |
|---|---|---|
USAGE |
Streamlitアプリを作成するデータベース |
|
CREATE STREAMLIT 、
USAGE
|
Streamlitアプリを作成するスキーマ |
|
USAGE |
Streamlitアプリでクエリを実行するウェアハウス |
ウェアハウスランタイムアプリの場合、ウェアハウスはアプリのPythonコードも実行します。 |
USAGE |
Streamlitアプリを実行するコンピューティングプール |
この権限は、アプリがコンテナランタイムを使用する場合にのみ必要です(プレビュー)。 |
詳細については、 Streamlitアプリの作成と使用に必要な権限 をご参照ください。
最初の Streamlit in Snowflake アプリをデプロイする¶
最も迅速に開始するには、デフォルトのアプリファイルを使用してStreamlitアプリを作成します。ソースファイルを指定せずにアプリを作成すると、Snowflakeはスターターコードを自動的に提供します。
Snowsight にサインインします。
ナビゲーションメニューで Projects » Streamlit を選択します。
+ Streamlit App を選択します。
アプリの名前を入力します。
アプリを作成するデータベースとスキーマを選択します。
アプリを構成します。
コンテナランタイムアプリ(プレビュー)を作成するには、以下のオプションを選択します。
Run on container を選択します。
アプリを実行するコンピューティングプールを選択します。できれば、Streamlitアプリ実行専用のコンピューティングプールを選んでください。
アプリのクエリを実行するクエリウェアハウスを選択します。
ウェアハウスランタイムアプリを作成するには、次のオプションを選択します。
Run on warehouse を選択します。
アプリを実行するウェアハウスを選択します。できれば、Streamlitアプリ実行専用のウェアハウスを選んでください。
Create を選択します。
Snowflakeは、サンプルコードで新しいStreamlitアプリを作成します。 Snowsight によりアプリエディターにリダイレクトされます。ランタイムの種類に応じて、数秒から数分以内でアプリの準備が整います。その後、すぐにアプリを表示および編集できます。
SQL セッションで好みのデータベースとスキーマを使用しながら、次の SQL コマンドを実行します。
デフォルトのStreamlitオブジェクトを作成します。
コンテナランタイムアプリ(プレビュー)を作成するには、以下の手順を実行します。
CREATE STREAMLIT my_first_app RUNTIME_NAME = 'SYSTEM$ST_CONTAINER_RUNTIME_PY3_11' COMPUTE_POOL = my_compute_pool QUERY_WAREHOUSE = my_warehouse;
ウェアハウスランタイムアプリを作成するには、以下の手順を実行します。
CREATE STREAMLIT my_first_app QUERY_WAREHOUSE = my_warehouse;
これらのコマンドは、デフォルトのスターターコードで
my_first_appという名前のStreamlitアプリを作成します。アプリをライブ状態にします。
ALTER STREAMLIT my_first_app ADD LIVE VERSION FROM LAST;
Streamlitオブジェクトはバージョン化されたステージを使用するため、Streamlitオブジェクトに対して USAGE 権限のみを持つユーザーに表示されるようにするには、アプリのコードをライブバージョンの場所にプッシュする必要があります。
アプリを表示するには、 Snowsight にサインインします。
ナビゲーションメニューで、 Projects » Streamlit を選択してから、アプリを選択します。
注釈
Snowflake CLI バージョン3.14.0以降が必要です。バージョン3.14以降は、デフォルトで最新の CREATESTREAMLIT 構文を使用します。
新しいStreamlitプロジェクトを初期化します。
snow init my_first_app --template example_streamlit
プロジェクトディレクトリに移動します。
cd my_first_app
snowflake.ymlファイルを編集してアプリを構成します。コンテナランタイムアプリ(プレビュー)を作成するには、
compute_poolおよびruntime_nameを追加します。definition_version: 2 entities: my_streamlit: type: streamlit identifier: my_first_app query_warehouse: my_warehouse compute_pool: my_compute_pool runtime_name: SYSTEM$ST_CONTAINER_RUNTIME_PY3_11 main_file: streamlit_app.py artifacts: - streamlit_app.py
ウェアハウスランタイムアプリを作成するには、デフォルト構成を使用します。
definition_version: 2 entities: my_streamlit: type: streamlit identifier: my_first_app query_warehouse: my_warehouse main_file: streamlit_app.py artifacts: - streamlit_app.py
snowflake.ymlファイルを保存します。アプリをSnowflakeにデプロイし、ブラウザーで開きます。
snow streamlit deploy --open
アプリを編集する¶
アプリの編集の詳細については、 デプロイされたStreamlitアプリの編集 をご参照ください。
アプリを作成したら、コードを編集してカスタマイズできます。
Snowsight にサインインします。
ナビゲーションメニューで、 Projects » Streamlit を選択してから、アプリを選択します。
エディターを開くには、 Edit を選択します。
エディターペインで、
streamlit_app.pyファイルのコードを変更します。Run を選択して、変更を確認します。
ステージに1つ以上の編集済みアプリファイルがある場合、 COPY FILES を使用し、以下のコマンドでそれらをアプリのソース場所にコピーします。
アプリのソース場所を特定します。
DESCRIBE STREAMLIT my_first_app;
live_version_location_uri値 は、アプリのソース場所です。これをメモ帳にコピーして、次のステップで使用します。これはsnow URL (snow://)です。内部ステージからアプリのソース場所にファイルをコピーします。
COPY FILES INTO '<live_version_location_uri>' FROM @my_stage FILES = ('streamlit_app.py');
注釈
Snowflake CLI バージョン3.14.0以降が必要です。バージョン3.14以降は、デフォルトで最新の CREATESTREAMLIT 構文を使用します。
ローカルディレクトリで、ローカルプロジェクトディレクトリで
streamlit_app.pyファイルを編集し保存します。Snowflakeに変更をデプロイします。
snow streamlit deploy --replace
これにより、アプリ全体が新しいバージョンで上書きされます。
次の内容¶
これで最初のアプリを作成できました。詳細は、以下のトピックをご確認ください。
Streamlitアプリの依存関係を管理する:アプリにPythonパッケージを追加します。
Streamlit in Snowflake の外部ネットワークアクセス:アプリを外部サービスに接続します。