ALTER STREAMLIT¶
기존 Streamlit 오브젝트의 속성을 수정합니다.
구문¶
ALTER STREAMLIT [ IF EXISTS ] <name> SET
[ MAIN_FILE = '<filename>']
[ QUERY_WAREHOUSE = <warehouse_name> ]
[ RUNTIME_NAME = '<runtime_name>' ]
[ COMPUTE_POOL = <compute_pool_name> ]
[ COMMENT = '<string_literal>']
[ TITLE = '<app_title>' ]
[ IMPORTS = ( '<stage_path_and_file_name_to_read>' [ , ... ] ) ]
[ EXTERNAL_ACCESS_INTEGRATIONS = ( <integration_name> [ , ... ] ) ]
[ SECRETS = ( '<snowflake_secret_name>' = <snowflake_secret> [ , ... ] ) ]
ALTER STREAMLIT [ IF EXISTS ] <name> RENAME TO <new_name>
ALTER STREAMLIT <name> COMMIT
ALTER STREAMLIT <name> PUSH [ TO <git_branch_uri> ]
[
{
GIT_CREDENTIALS = <snowflake_secret>
| USERNAME = <git_username> PASSWORD = <git_password>
}
NAME = <git_author_name>
EMAIL = <git_author_email>
]
[ COMMENT = <git_push_comment> ]
ALTER STREAMLIT <name> ABORT
ALTER STREAMLIT <name> PULL
ALTER STREAMLIT <name> ADD LIVE VERSION FROM LAST
For Streamlit objects created with ROOT_LOCATION, only the following syntax is supported:
중요
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.
ALTER STREAMLIT [ IF EXISTS ] <name> SET
[ ROOT_LOCATION = '<stage_path_and_root_directory>' ]
[ MAIN_FILE = '<path_to_main_file>']
[ QUERY_WAREHOUSE = <warehouse_name> ]
[ COMMENT = '<string_literal>']
[ TITLE = '<app_title>' ]
[ IMPORTS = ( '<stage_path_and_file_name_to_read>' [ , ... ] ) ]
[ EXTERNAL_ACCESS_INTEGRATIONS = ( <integration_name> [ , ... ] ) ]
ALTER STREAMLIT [ IF EXISTS ] <name> RENAME TO <new_name>
매개 변수¶
nameStreamlit 오브젝트의 식별자입니다. 식별자에 공백이나 특수 문자가 포함된 경우 전체 문자열을 큰따옴표로 묶어야 합니다. 큰따옴표로 묶인 식별자도 대/소문자를 구분합니다.
SET ...Streamlit 오브젝트에 대해 설정할 속성을 지정합니다.
MAIN_FILE = 'filename'Specifies the Streamlit entrypoint file. The requirements depend on the runtime type:
Warehouse runtimes: The file must be in the root of the source directory specified in FROM. Only a filename is allowed, not a path.
Container runtimes: The file can be in the root or a subdirectory. You can specify a relative path from the root of the source directory, like
'subdir/my_app.py'.If your app was created with ROOT_LOCATION instead of FROM, then MAIN_FILE can be a path relative to ROOT_LOCATION even though ROOT_LOCATION only supports warehouse runtimes.
QUERY_WAREHOUSE = warehouse_nameSpecifies the warehouse used by the Streamlit app. The behavior depends on the runtime type:
Warehouse runtimes: Specifies the warehouse to run the app code and execute SQL queries. This is the code warehouse. It’s recommended to manually switch to a different warehouse within your app code for queries.
Container runtimes: Specifies the warehouse to execute SQL queries issued by the app. The app code runs on the compute pool specified by COMPUTE_POOL.
RUNTIME_NAME = 'runtime_name'Specifies the runtime environment for the Streamlit app. Use this to change the runtime from warehouse to container, from container to warehouse, or from one version to another. Runtime names follow the pattern
SYSTEM$ST_<type>_RUNTIME_PY<version>.Warehouse runtimes: Run the app in a virtual warehouse. Each viewer gets a personal instance of the app. The following warehouse runtimes are valid:
SYSTEM$ST_WAREHOUSE_RUNTIME_PY3_9SYSTEM$ST_WAREHOUSE_RUNTIME_PY3_10SYSTEM$ST_WAREHOUSE_RUNTIME_PY3_11
Container runtimes: Run the app in a Snowpark Container Services compute pool. All viewers share a single, long-running instance of the app. The following container runtimes are valid:
SYSTEM$ST_CONTAINER_RUNTIME_PY3_11
중요
When changing from a warehouse runtime to a container runtime, you must also set the COMPUTE_POOL parameter as appropriate. Container runtimes require a compute pool.
COMPUTE_POOL = compute_pool_nameSpecifies the compute pool where the Streamlit app runs. This parameter is required when using a container runtime and is ignored for warehouse runtimes.
COMMENT = 'string_literal'Streamlit 오브젝트에 대한 설명을 추가하거나 기존 설명을 덮어씁니다.
TITLE = 'app_title'Snowsight 에 표시할 Streamlit 앱의 명칭을 추가합니다.
IMPORTS = ( 'stage_path_and_file_name_to_read' [ , ... ] )The location (stage), path, and name of the file(s) to import. This only applies to warehouse runtimes and is ignored for container runtimes.
EXTERNAL_ACCESS_INTEGRATIONS = ( integration_name [ , ... ] )Streamlit 앱 코드가 외부 네트워크에 액세스하려면 필요한 외부 액세스 통합 의 이름입니다.
For container runtimes, external access integrations are required to install packages from external package indexes like PyPI. For all runtime types, external access integrations enable the app to make outbound network requests.
SECRETS = ( 'snowflake_secret_name' = snowflake_secret [ , ... ] )Maps Snowflake secrets to secret names that can be referenced in the Streamlit app code. The secret name (left side) is how you reference the secret in your code, and the secret object (right side) is the identifier of the Snowflake secret.
For example:
SECRETS = ('api_key' = my_database.my_schema.my_secret)Secrets are only available in warehouse runtimes through the
_snowflakemodule and must be associated with an external access integration in EXTERNAL_ACCESS_INTEGRATIONS. In container runtimes, this parameter isn’t supported and you must create SQL functions to access secrets instead. For more information, see Manage secrets and configure your Streamlit app.ROOT_LOCATION = 'stage_path_and_root_directory'Specifies the root stage name and prefix containing the Streamlit Python files, media files, and
environment.ymlfile. This parameter must point to a single directory inside a named internal stage.
RENAME TO new_nameSpecifies the new identifier for the Streamlit object. The identifier must be unique for the schema where the object was created.
식별자에 대한 자세한 내용은 식별자 요구 사항 섹션을 참조하십시오.
COMMITLIVE 버전의 보류 중인 편집을 새 LAST 버전으로 커밋합니다. 커밋 직후, LIVE 버전이 LAST 버전과 동일합니다.
PUSHTO git_branch_uri를 지정하지 않으면 기본 버전에 저장된 브랜치를 사용하여 최신 커밋된 변경 내용을 Git 리포지토리에 푸시합니다.If the base version is not based on a Git branch, this throws an error.
TO git_branch_uri커밋된 변경 내용을 지정된 분기에 푸시합니다.
GIT_CREDENTIALS = snowflake_secret리포지토리 인증에 사용할 자격 증명이 포함된 Snowflake 시크릿을 지정합니다.
USERNAME = git_usernameGit 사용자 이름을 지정합니다.
PASSWORD = git_passwordGit 비밀번호를 지정합니다.
NAME = git_author_name사용할 git 작성자의 이름을 지정합니다.
EMAIL = git_author_emailGit 작성자의 이름으로 사용할 유효한 이메일 주소를 지정합니다.
COMMENT = git_push_commentGit 푸시에 포함할 설명을 지정합니다.
ABORT|sf-web-interface|에서 수행되었지만 커밋되지 않은 모든 편집 사항을 포함하여 앱의 현재 라이브 버전을 제거합니다.
PULL최신 변경 사항을 가져옵니다. 끌어오기 전에 현재 라이브 버전을 중단해야 합니다.
ADD LIVE VERSION FROM LAST마지막으로 커밋된 버전을 기준으로 앱의 새 라이브 버전을 만듭니다.
Streamlit 앱의 소유자가 |sf-web-interface|에서 앱을 열 때 라이브 버전이 없는 경우 이 명령은 자동으로 실행됩니다. 다른 사용자가 앱을 방문하고 라이브 버전이 없는 경우 오류가 반환됩니다.
액세스 제어 요구 사항¶
If your role does not own the objects in the following table, then your role must have the listed privileges on those objects:
권한 |
오브젝트 |
Notes |
|---|---|---|
OWNERSHIP |
변경하는 Streamlit 오브젝트 |
|
USAGE |
Warehouse used by the Streamlit app |
This privilege is only required if you set a new value for QUERY_WAREHOUSE. |
USAGE |
Compute pool used by the Streamlit app |
This privilege is only required if you set a new value for COMPUTE_POOL. |
USAGE |
External access integrations used by the Streamlit app |
This privilege is only required if you set a new value for EXTERNAL_ACCESS_INTEGRATIONS. |
USAGE |
Secrets used by the Streamlit app |
This privilege is only required if you set a new value for SECRETS. |
Operating on an object in a schema requires at least one privilege on the parent database and at least one privilege on the parent schema.
지정된 권한 세트로 사용자 지정 역할을 만드는 방법에 대한 지침은 사용자 지정 역할 만들기 섹션을 참조하십시오.
보안 오브젝트 에 대해 SQL 작업을 수행하기 위한 역할과 권한 부여에 대한 일반적인 정보는 액세스 제어의 개요 섹션을 참조하십시오.
사용법 노트¶
앱의 라이브 버전을 제거하면 다음 작업 중 하나를 수행할 때까지 사용자가 앱을 방문할 수 없습니다.
Streamlit 오브젝트에 대해 ALTER STREAMLIT … ADD LIVE VERSION FROM LAST를 실행합니다.
앱을 소유한 역할을 사용하여 |sf-web-interface|에서 앱을 방문합니다.
If you run the ALTER STREAMLIT command while viewing a Streamlit app in Snowsight, the app reflects the changes differently depending on the runtime type:
Warehouse runtime: The app doesn’t reflect the changes until you select Run.
Container runtime: The app reflects the changes immediately when you next interact with the app.
변경 사항을 앱에 반영하려면 앱을 다시 로딩하거나 다시 부팅해야 합니다.
When migrating from warehouse runtime to container runtime:
You must set both RUNTIME_NAME and COMPUTE_POOL.
Your app must use Python 3.11 and Streamlit 1.49 or later.
Ensure your app code is thread-safe and optimized for concurrent viewers.
Replace
get_active_session()withst.connection("snowflake").Replace
_snowflakemodule with native Python equivalents.
For a complete migration checklist, see Migrating between runtime environments.
메타데이터 관련:
주의
고객은 Snowflake 서비스를 사용할 때 개인 데이터(사용자 오브젝트 제외), 민감한 데이터, 수출 통제 대상 데이터 또는 기타 규제 데이터가 메타데이터로 입력되지 않도록 해야 합니다. 자세한 내용은 Snowflake의 메타데이터 필드 섹션을 참조하십시오.
Examples¶
Change the query warehouse¶
To change the warehouse used by a Streamlit app, run the ALTER STREAMLIT command as shown in the following example:
ALTER STREAMLIT my_app
SET QUERY_WAREHOUSE = new_warehouse;
Migrate from a warehouse runtime to a container runtime¶
To migrate a Streamlit app from warehouse runtime to container runtime, run the ALTER STREAMLIT command as shown in the following example:
ALTER STREAMLIT my_app SET
RUNTIME_NAME = 'SYSTEM$ST_CONTAINER_RUNTIME_PY3_11'
COMPUTE_POOL = my_compute_pool
EXTERNAL_ACCESS_INTEGRATIONS = (pypi_access_integration);
Container runtimes require an external access integration to install packages from external package indexes like PyPI. Otherwise, they can only use the default, pre-installed packages. For more information, see Manage dependencies for your Streamlit app.
Add secrets to an existing warehouse-runtime app¶
To add secrets to an existing warehouse-runtime Streamlit app, run the ALTER STREAMLIT command as shown in the following example:
ALTER STREAMLIT my_app SET
EXTERNAL_ACCESS_INTEGRATIONS = (my_access_integration)
SECRETS = ('api_key' = my_database.my_schema.my_api_secret);
Secrets are only available in warehouse runtimes and must be associated with an external access integration. Container-runtime Streamlit apps must use SQL functions to access secrets. For more information, see Manage secrets and configure your Streamlit app.
Rename a Streamlit app¶
To rename a Streamlit app, run the ALTER STREAMLIT command as shown in the following example:
ALTER STREAMLIT old_app_name
RENAME TO new_app_name;
