CREATE STREAMLIT¶
Creates a new Streamlit object in Snowflake or replaces an existing Streamlit object in the same schema.
- こちらもご参照ください。
SHOW STREAMLITS, DESCRIBE STREAMLIT, ALTER STREAMLIT, DROP STREAMLIT, UNDROP STREAMLIT
構文¶
CREATE [ OR REPLACE ] STREAMLIT [ IF NOT EXISTS ] <name>
[ FROM <source_location> ]
[ MAIN_FILE = '<filename>' ]
[ QUERY_WAREHOUSE = <warehouse_name> ]
[ COMMENT = '<string_literal>' ]
[ TITLE = '<app_title>' ]
[ IMPORTS = ( '<stage_path_and_file_name_to_read>' [ , ... ] ) ]
[ EXTERNAL_ACCESS_INTEGRATIONS = ( <integration_name> [ , ... ] ) ]
以下の構文はレガシーです。
重要
ROOT_LOCATION is a legacy parameter and may be deprecated in a future release. For Streamlit apps created using ROOT_LOCATION, multi-file editing and Git integration are not supported.
CREATE [ OR REPLACE ] STREAMLIT [ IF NOT EXISTS ] <name>
ROOT_LOCATION = '<stage_path_and_root_directory>'
MAIN_FILE = '<path_to_main_file_in_root_directory>'
[ QUERY_WAREHOUSE = <warehouse_name> ]
[ COMMENT = '<string_literal>' ]
[ TITLE = '<app_title>' ]
[ IMPORTS = ( '<stage_path_and_file_name_to_read>' [ , ... ] ) ]
[ EXTERNAL_ACCESS_INTEGRATIONS = ( <integration_name> [ , ... ] ) ]
必須パラメーター¶
nameSpecifies the identifier (i.e. name) for the Streamlit object. This identifier must be unique for the schema where the object is created.
In addition, the identifier must start with an alphabetic character and can't contain spaces or special characters unless the entire identifier string is enclosed in double quotes (e.g.
"My object"). Identifiers enclosed in double quotes are also case-sensitive.詳細については、 識別子の要件 をご参照ください。
オプションのパラメーター¶
FROM source_location指定された場所からアプリのソースファイルをコピーします。場所は、内部の名前付きステージ内である必要があります。パスは相対パスでも完全修飾パスでもかまいません。たとえば、ステージの名前が
@streamlit_db.streamlit_schema.streamlit_stageの場合、有効なソースの場所は以下のようになります。ステージのルートへの完全修飾パス:
FROM '@streamlit_db.streamlit_schema.streamlit_stage'ステージのルートへの相対パス:
FROM '@streamlit_stage'ステージ内のサブディレクトリへの完全修飾パスまたは相対パス:
FROM '@streamlit_db.streamlit_schema.streamlit_stage/subdir'
ファイルのコピーは、 CREATE コマンドの実行時に一度だけ行われます。将来、ソースの場所が変更されても、Streamlitアプリは自動的に更新されません。
このパラメーターが指定されていない場合、Snowflakeは
streamlit_app.pyエントリポイントファイルを持つデフォルトアプリのソースファイルをコピーします。MAIN_FILE = 'filename'Streamlitエントリポイントファイルのファイル名。このファイルは、 FROM で指定したソースディレクトリのルートに存在する必要があります。
FROM の代わりに ROOT_LOCATION を使用する場合、 MAIN_FILE は ROOT_LOCATION からの相対パスになります。
DEFAULT:
'streamlit_app.py'QUERY_WAREHOUSE = warehouse_nameSpecifies the warehouse to run the app and execute SQL queries issued by the Streamlit app.
DEFAULT: 値なし
注釈
このパラメーターを指定せずにStreamlitオブジェクトを作成することもできますが、クエリウェアハウスを指定するまでアプリは実行されません。
COMMENT = 'string_literal'Streamlitオブジェクトのコメントを指定します。
DEFAULT: 値なし
TITLE = 'app_title'Specifies a title for the Streamlit object to display in Snowsight.
DEFAULT:CREATE STREAMLIT に渡されるStreamlitオブジェクトの名前。
IMPORTS = ( 'stage_path_and_file_name_to_read' [ , ... ] )インポートするファイルの場所(ステージ)、パス、および名前。
EXTERNAL_ACCESS_INTEGRATIONS = ( integration_name [ , ... ] )Streamlitアプリケーションコードが外部ネットワークにアクセスするために必要な 外部アクセス統合 の名前。
ROOT_LOCATION = 'stage_path_and_root_directory'Specifies the path to the named stage containing the Streamlit Python files, media files, and the
environment.ymlfile, for example:ROOT_LOCATION = '@streamlit_db.streamlit_schema.streamlit_stage'
この例では、Streamlit ファイルは
streamlit_dbという名前のデータベースとstreamlit_schemaという名前のスキーマ内にあるstreamlit_stageという名前付きステージにあります。注釈
このパラメーターは、名前付き内部ステージ内の1つのディレクトリをポイントする必要があります。
Streamlit in Snowflake 用外部ステージはサポートされていません。
Snowflake Native App Framework 内で Streamlit アプリケーションオブジェクトを作成または交換する場合は、
ROOT_LOCATION = 'stage_path_and_root_directory'ではなくFROM 'relative_path_from_stage_root_directory'を使用してください。
アクセス制御の要件¶
ロールが以下の表にあるオブジェクトを所有していない場合、ロールはそれらのオブジェクトに対して次の 権限 を持つ必要があります。
権限 |
オブジェクト |
Notes |
|---|---|---|
CREATE STREAMLIT |
Schema where you create the Streamlit object |
|
READ |
Streamlitアプリのソースファイルをコピーするステージ |
|
CREATE STAGE |
Schema where you create the Streamlit object |
この権限は、 ROOT_LOCATION パラメーターを持つStreamlitオブジェクトを作成する場合にのみ必要です。 |
スキーマ内のオブジェクトに対して操作を実行するには、親データベースとスキーマに対する USAGE 権限が必要です。スキーマに対する 任意の権限を付与されたロールは、そのロールがスキーマを解決できることに注意してください。たとえば、スキーマに対するCREATE権限を付与されたロールは、そのスキーマにオブジェクトを作成できますが、そのスキーマに対するUSAGE*も*付与されている必要はありません。
指定された権限のセットを使用してカスタムロールを作成する手順については、 カスタムロールの作成 をご参照ください。
セキュリティ保護可能なオブジェクト に対して SQL アクションを実行するためのロールと権限付与に関する一般的な情報については、 アクセス制御の概要 をご参照ください。
使用上の注意¶
アプリを作成したら、初期化する必要があります。
重要
CREATE STREAMLIT を使用した後、以下のいずれかの操作を行うまで、Streamlitアプリは稼動しません。
新しいStreamlitオブジェクトに対して ALTER STREAMLIT ... ADD LIVE VERSION FROM LAST を実行する。
アプリを所有するロールを使用して、 Snowsight でアプリにアクセスする。
Streamlitオブジェクトを含むスキーマまたはデータベースをクローンする場合、Streamlitオブジェクトはクローンされません。
Streamlitアプリケーションで使用するパッケージを指定するには、
environment.ymlファイルを使用します。メタデータについて:
注意
Snowflakeサービスを使用する場合、お客様は、個人データ(ユーザーオブジェクト向け以外)、機密データ、輸出管理データ、またはその他の規制されたデータがメタデータとして入力されていないことを確認する必要があります。詳細については、 Snowflakeのメタデータフィールド をご参照ください。
The OR REPLACE and IF NOT EXISTS clauses are mutually exclusive. They can't both be used in the same statement.
CREATE OR REPLACE <オブジェクト> ステートメントはアトミックです。つまり、オブジェクトが置き換えられると、単一のトランザクションで、古いオブジェクトが削除されて新しいオブジェクトが作成されます。
例¶
ステージからStreamlitアプリを作成するには、次の例のように CREATE STREAMLIT コマンドを実行します。
CREATE STREAMLIT hello_streamlit
FROM @streamlit_db.streamlit_schema.streamlit_stage
MAIN_FILE = 'streamlit_main.py'
QUERY_WAREHOUSE = my_warehouse;
GitリポジトリからStreamlitアプリを作成するには、次の例のように CREATE STREAMLIT コマンドを実行します。
CREATE STREAMLIT hello_streamlit
FROM @streamlit_db.streamlit_schema.streamlit_repo/branches/streamlit_branch/
MAIN_FILE = 'streamlit_main.py'
QUERY_WAREHOUSE = my_warehouse;