例:パーソナライズされたデータダッシュボードの構築¶
この例では、Snowflakeデータをクエリし、サードパーティのチャートライブラリを追加して、ビューアーごとに表示をパーソナライズする|sis|アプリの構築手順を説明します。最後には、作成、デプロイ、編集、再デプロイという主要な開発サイクルを理解できます。
アプリはコンテナランタイムを使用します。始める前に、:ref:`前提条件<label-streamlit_prereqs>`を完了していることを確認してください。
サンプルデータの設定¶
この例では、``dashboard_demo``というデータベースを使用します。アクセスできる任意のデータベースとスキーマに置き換えることができます。SQLとアプリコード内の参照を一致するように更新するだけです。
サンプルの収益データを使用してテーブルを作成します。ワークシートまたはSQLセッションで次のSQLを実行します。
アプリコードの記述¶
ローカルマシンの任意のプロジェクトディレクトリに、次のコードを含む:file:`streamlit_app.py`という名前のファイルを作成します。|sf-web-interface|を使用する予定の場合は、アプリを作成した後にこのコードをエディターに貼り付けることができます。
このアプリは以下を使用します。
conn.query()`を使用してSnowflakeからのデータをクエリします。結果は自動的にキャッシュされるため、キャッシュが期限切れになるまでクエリは1回のみ実行されます。詳細については、 :doc:../app-development/secrets-and-configuration` をご参照ください。st.user.user_name`を使用して現在のビューアーに挨拶します。詳細については、 :doc:../app-development/personalization` をご参照ください。インタラクティブチャートに``plotly``を使用します。これは、次のステップで宣言する外部依存関係です。
依存関係の宣言¶
コンテナランタイムは、:file:`requirements.txt`ファイルに記載されたパッケージをインストールします。:file:`streamlit_app.py`と一緒に:file:`requirements.txt`ファイルを作成します。
アプリの起動時に、コンテナランタイムは宣言されたパッケージを自動的にインストールします。より複雑な依存関係シナリオの場合は、代わりに:file:pyproject.toml`ファイルを使用できます。詳細については、 :doc:../app-development/dependency-management` をご参照ください。
アプリのデプロイ¶
Snowsight にサインインします。
ナビゲーションメニューで Projects » Streamlit を選択します。
+ Streamlit App を選択します。
アプリ名として``revenue_dashboard``を入力します。
データベースとスキーマを選択します。
:ui:`Run on container`を選択し、次にコンピューティングプールとクエリウェアハウスを選択します。
Create を選択します。
エディターで、スターターコードを上記のアプリコードに置き換えます。
:ui:`+`(追加)|raa| :ui:`Create new file`を選択して``requirements.txt``と入力し、内容を貼り付けることで、:file:`requirements.txt`ファイルをアップロードまたは作成します。
Run を選択します。
アプリファイルをステージングします。
Streamlitアプリを作成します。
アプリを表示するには、|sf-web-interface-link|にサインインし、ナビゲーションメニューで:ui:`Projects` |raa| :ui:`Streamlit`を選択して、アプリを選択します。
注釈
Snowflake CLI バージョン3.14.0以降が必要です。バージョン3.14以降は、デフォルトで最新の CREATESTREAMLIT 構文を使用します。
以下の構造を持つプロジェクトディレクトリを作成します。
:file:`snowflake.yml`ファイルを作成します。
アプリをデプロイします。
変更¶
アプリを編集して、開発サイクルがどのように機能するかを確認してください。:file:`streamlit_app.py`の``filtered = ...``行と``fig = px.bar(...)``行の間に次の2行を挿入して、サマリーメトリックを追加します。
ブラウザで編集している場合は、エディタに行を貼り付けて:ui:`Run`を選択します。
更新されたファイルをステージングしてから、アプリのライブバージョン用の場所にコピーします。
ファイルをローカルに保存して再デプロイします。
編集ワークフローについて詳しくは、:doc:`../app-development/editing-your-app`を参照してください。
クリーンアップする¶
この例で作成したリソースを削除するには、次のSQLを実行します。
次の内容¶
例:Snowflakeに書き込むフォームをビルドする:データをSnowflakeに書き戻すフォームを含むアプリを構築します。
ユーザー情報によるStreamlitアプリのパーソナライズ::code:`st.user`を使用したアプリのパーソナライズについて、詳しくはこちらを参照してください。
Streamlit in Snowflake の外部ネットワークアクセス:アプリを外部APIsに接続します。