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'Streamlit 진입점 파일을 지정합니다. 요구 사항은 런타임 유형에 따라 다릅니다.
Warehouse Runtime: 이 파일은 FROM에 지정된 소스 디렉터리의 루트에 있어야 합니다. 경로가 아닌 파일 이름만 허용됩니다.
Container Runtime: 파일은 루트 또는 하위 디렉터리에 있을 수 있습니다. ``’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 Runtime: 앱 코드를 실행하고 SQL 쿼리를 실행할 웨어하우스를 지정합니다. 이는 코드 웨어하우스입니다. 쿼리를 위해 앱 코드 내에서 다른 웨어하우스로 수동으로 전환하는 것이 좋습니다.
Container Runtime: 앱에서 발행한 SQL 쿼리를 실행할 웨어하우스를 지정합니다. 앱 코드는 COMPUTE_POOL로 지정된 컴퓨팅 풀에서 실행됩니다.
RUNTIME_NAME = 'runtime_name'Streamlit 앱의 런타임 환경을 지정합니다. 이를 통해 런타임을 웨어하우스에서 컨테이너로, 컨테이너에서 웨어하우스로 또는 한 버전에서 다른 버전으로 변경합니다. 런타임 이름은
SYSTEM$ST_<type>_RUNTIME_PY<version>패턴을 따릅니다.Warehouse Runtime: 가상 웨어하우스에서 앱을 실행합니다. 각 뷰어는 앱의 개인 인스턴스를 받습니다. 유효한 Warehouse Runtime은 다음과 같습니다.
SYSTEM$ST_WAREHOUSE_RUNTIME_PY3_9SYSTEM$ST_WAREHOUSE_RUNTIME_PY3_10SYSTEM$ST_WAREHOUSE_RUNTIME_PY3_11
Container Runtime: Snowpark Container Services 컴퓨팅 풀에서 앱을 실행합니다. 모든 뷰어는 앱의 장기 실행 단일 인스턴스를 공유합니다. 유효한 Container Runtime은 다음과 같습니다.
SYSTEM$ST_CONTAINER_RUNTIME_PY3_11
중요
Warehouse Runtime에서 Container Runtime으로 변경하는 경우 COMPUTE_POOL 매개 변수도 적절하게 설정해야 합니다. Container Runtime에는 컴퓨팅 풀이 필요합니다.
COMPUTE_POOL = compute_pool_nameStreamlit 앱이 실행되는 컴퓨팅 풀을 지정합니다. 이 매개 변수는 Container Runtime을 사용할 때 필요하며 Warehouse Runtime에서는 무시됩니다.
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 앱 코드가 외부 네트워크에 액세스하려면 필요한 외부 액세스 통합 의 이름입니다.
Container Runtime의 경우, PyPI과 같은 외부 패키지 인덱스에서 패키지를 설치하려면 외부 액세스 통합이 필요합니다. 모든 런타임 유형의 경우, 외부 액세스 통합을 통해 앱이 아웃바운드 네트워크 요청을 수행할 수 있습니다.
SECRETS = ( 'snowflake_secret_name' = snowflake_secret [ , ... ] )Snowflake 시크릿을 Streamlit 앱 코드에서 참조할 수 있는 시크릿 이름으로 매핑합니다. 시크릿 이름(왼쪽)은 코드에서 시크릿을 참조하는 방법이며, 시크릿 오브젝트(오른쪽)는 Snowflake 시크릿의 식별자입니다.
예:
SECRETS = ('api_key' = my_database.my_schema.my_secret)시크릿은
_snowflake모듈을 통해 Warehouse Runtime에서만 사용할 수 있으며, EXTERNAL_ACCESS_INTEGRATIONS의 외부 액세스 통합과 연결되어야 합니다. Container Runtime에서는 이 매개 변수가 지원되지 않으므로 대신 시크릿에 액세스하려면 SQL 함수를 생성해야 합니다. 자세한 내용은 시크릿 관리 및 Streamlit 앱 구성하기 섹션을 참조하십시오.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 푸시에 포함할 설명을 지정합니다.
ABORTSnowsight 에서 수행되었지만 커밋되지 않은 모든 편집 사항을 포함하여 앱의 현재 라이브 버전을 제거합니다.
PULL최신 변경 사항을 가져옵니다. 끌어오기 전에 현재 라이브 버전을 중단해야 합니다.
ADD LIVE VERSION FROM LAST마지막으로 커밋된 버전을 기준으로 앱의 새 라이브 버전을 만듭니다.
Streamlit 앱의 소유자가 Snowsight 에서 앱을 열 때 라이브 버전이 없는 경우 이 명령은 자동으로 실행됩니다. 다른 사용자가 앱을 방문하고 라이브 버전이 없는 경우 오류가 반환됩니다.
액세스 제어 요구 사항¶
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 |
Streamlit 앱에서 사용하는 웨어하우스 |
이 권한은 QUERY_WAREHOUSE에 새 값을 설정한 경우에만 필요합니다. |
USAGE |
Streamlit 앱에서 사용하는 컴퓨팅 풀 |
이 권한은 COMPUTE_POOL에 새 값을 설정한 경우에만 필요합니다. |
USAGE |
Streamlit 앱에서 사용하는 외부 액세스 통합 |
이 권한은 EXTERNAL_ACCESS_INTEGRATIONS에 새 값을 설정한 경우에만 필요합니다. |
USAGE |
Streamlit 앱에서 사용하는 시크릿 |
이 권한은 SECRETS에 새 값을 설정한 경우에만 필요합니다. |
스키마의 오브젝트에 대한 작업을 수행하려면 상위 데이터베이스에 대한 하나 이상의 권한과 상위 스키마에 대한 하나 이상의 권한이 필요합니다.
지정된 권한 세트로 사용자 지정 역할을 만드는 방법에 대한 지침은 사용자 지정 역할 만들기 섹션을 참조하십시오.
보안 오브젝트 에 대해 SQL 작업을 수행하기 위한 역할과 권한 부여에 대한 일반적인 정보는 액세스 제어의 개요 섹션을 참조하십시오.
사용법 노트¶
앱의 라이브 버전을 제거하면 다음 작업 중 하나를 수행할 때까지 사용자가 앱을 방문할 수 없습니다.
Streamlit 오브젝트에 대해 ALTER STREAMLIT … ADD LIVE VERSION FROM LAST를 실행합니다.
앱을 소유한 역할을 사용하여 Snowsight 에서 앱을 방문합니다.
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: :ui:`Run`을 선택할 때까지 앱에 변경 사항이 반영되지 않습니다.
Container Runtime: 다음에 앱과 상호 작용 시 앱에 변경 사항이 즉시 반영됩니다.
변경 사항을 앱에 반영하려면 앱을 다시 로딩하거나 다시 부팅해야 합니다.
Warehouse Runtime에서 Container Runtime으로 마이그레이션하는 경우 다음을 수행합니다.
RUNTIME_NAME 및 COMPUTE_POOL 모두 설정해야 합니다.
앱은 Python 3.11 및 Streamlit 1.49 이상을 사용해야 합니다.
앱 코드가 스레드로부터 안전하고 동시 뷰어에 최적화되어 있는지 확인합니다.
``get_active_session()``을 ``st.connection(“snowflake”)``으로 바꿉니다.
_snowflake모듈을 해당 네이티브 Python으로 바꿉니다.
전체 마이그레이션 체크리스트는 런타임 환경 간 마이그레이션 섹션을 참조하세요.
메타데이터 관련:
주의
고객은 Snowflake 서비스를 사용할 때 개인 데이터(사용자 오브젝트 제외), 민감한 데이터, 수출 통제 대상 데이터 또는 기타 규제 데이터가 메타데이터로 입력되지 않도록 해야 합니다. 자세한 내용은 Snowflake의 메타데이터 필드 섹션을 참조하십시오.
예¶
쿼리 웨어하우스 변경하기¶
Streamlit 앱에서 사용하는 웨어하우스를 변경하려면 다음 예제와 같이 ALTER STREAMLIT 명령을 입력합니다.
ALTER STREAMLIT my_app
SET QUERY_WAREHOUSE = new_warehouse;
Warehouse Runtime에서 Container Runtime으로 마이그레이션하기¶
Streamlit 앱을 Warehouse Runtime에서 Container Runtime으로 마이그레이션하려면 다음 예제와 같이 ALTER STREAMLIT 명령을 실행합니다.
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 Runtime은 PyPI과 같은 외부 패키지 인덱스에서 패키지를 설치하기 위해 외부 액세스 통합이 필요합니다. 그렇지 않으면 사전 설치된 기본 패키지만 사용할 수 있습니다. 자세한 내용은 Streamlit 앱의 종속성 관리하기 섹션을 참조하십시오.
기존 Warehouse Runtime 앱에 시크릿 추가하기¶
기존 Warehouse Runtime Streamlit 앱에 시크릿을 추가하려면 다음 예제와 같이 ALTER STREAMLIT 명령을 실행합니다.
ALTER STREAMLIT my_app SET
EXTERNAL_ACCESS_INTEGRATIONS = (my_access_integration)
SECRETS = ('api_key' = my_database.my_schema.my_api_secret);
시크릿은 Warehouse Runtime에서만 사용할 수 있으며 외부 액세스 통합과 연결해야 합니다. Container Runtime Streamlit 앱이 시크릿에 액세스하려면 SQL 함수를 사용해야 합니다. 자세한 내용은 시크릿 관리 및 Streamlit 앱 구성하기 섹션을 참조하십시오.
Rename a Streamlit app¶
Streamlit 앱의 이름을 바꾸려면 다음 예제와 같이 ALTER STREAMLIT 명령을 실행합니다.
ALTER STREAMLIT old_app_name
RENAME TO new_app_name;
