CREATE STREAMLIT

CREATE STREAMLIT

CREATE STREAMLIT 명령은 Snowflake에 새 Streamlit 객체를 만들거나 같은 스키마의 기존 Streamlit 객체를 교체하는 명령이에요.

출처: CREATE STREAMLIT

본문

Snowflake에 새 Streamlit 객체를 만들거나 같은 스키마의 기존 Streamlit 객체를 교체하는 명령입니다. Streamlit 앱은 웨어하우스 런타임 또는 컨테이너 런타임으로 실행돼요.

관련 명령: SHOW STREAMLITS, DESCRIBE STREAMLIT, ALTER STREAMLIT, DROP STREAMLIT, UNDROP STREAMLIT

Syntax

CREATE [ OR REPLACE ] STREAMLIT [ IF NOT EXISTS ] <name>
  [ FROM <source_location> ]
  [ 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_directory_or_file_name_to_read>' [ , ... ] ) ]
  [ EXTERNAL_ACCESS_INTEGRATIONS = ( <integration_name> [ , ... ] ) ]
  [ SECRETS = ( '<snowflake_secret_name>' = <snowflake_secret> [ , ... ] ) ]

다음 구문은 레거시(legacy)예요. 중요

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_directory_or_file_name_to_read>' [ , ... ] ) ]
  [ EXTERNAL_ACCESS_INTEGRATIONS = ( <integration_name> [ , ... ] ) ]

Required parameters (필수 파라미터)

  • name — Streamlit 객체의 식별자(이름)를 지정해요. 이 식별자는 객체가 생성되는 스키마에 고유해야 합니다. 또한 식별자는 알파벳 문자로 시작해야 하고, 전체 식별자 문자열을 큰따옴표로 감싸지 않는 한 공백이나 특수 문자를 포함할 수 없어요 (예: "My object"). 큰따옴표로 감싼 식별자는 대소문자를 구분합니다. 자세한 내용은 Identifier requirements 문서를 참고하세요.

Optional parameters (선택 파라미터)

  • FROM <source_location> — 지정된 위치에서 앱 소스 파일을 복사해요. 위치는 내부 명명된 스테이지 안에 있어야 합니다. 경로는 상대적이거나 정규화될 수 있어요. 예를 들어 스테이지 이름이 @streamlit_db.streamlit_schema.streamlit_stage라면 유효한 소스 위치에 여러 값이 포함될 수 있어요. 파일은 CREATE 명령이 실행될 때 한 번만 복사되며, 이후 소스 위치의 변경은 Streamlit 앱을 자동으로 업데이트하지 않아요. 이 파라미터를 지정하지 않으면 Snowflake는 streamlit_app.py 엔트리포인트 파일이 있는 기본 앱의 소스 파일을 복사합니다.
  • MAIN_FILE = '<filename>' — Streamlit 엔트리포인트 파일을 지정해요. 요구 사항은 런타임 유형에 따라 달라져요. FROM 대신 ROOT_LOCATION을 사용한다면, ROOT_LOCATION이 웨어하우스 런타임만 지원하더라도 MAIN_FILEROOT_LOCATION에 상대적인 경로일 수 있어요. 기본값: 'streamlit_app.py'
  • QUERY_WAREHOUSE = <warehouse_name> — Streamlit 앱이 사용하는 웨어하우스를 지정해요. 동작은 런타임 유형에 따라 달라집니다. 기본값: 값 없음

    참고 이 파라미터 없이 Streamlit 객체를 만들 수는 있지만, 쿼리 웨어하우스를 지정하기 전까지는 앱이 실행되지 않아요.

  • RUNTIME_NAME = '<runtime_name>' — Streamlit 앱의 런타임 환경을 지정해요. 런타임은 앱이 실행되는 위치와 방식을 결정합니다. 런타임은 기본적으로 웨어하우스 런타임입니다. 기본값: SYSTEM$WAREHOUSE_RUNTIME
  • COMPUTE_POOL = <compute_pool_name> — Streamlit 앱이 실행되는 컴퓨트 풀을 지정해요. 이 파라미터는 컨테이너 런타임에서만 사용되며 웨어하우스 런타임에서는 무시됩니다. 컨테이너 런타임을 사용할 때 이 파라미터를 생략하면 Snowflake는 DEFAULT_STREAMLIT_COMPUTE_POOL 파라미터가 지정한 컴퓨트 풀을 사용해요. 기본값: DEFAULT_STREAMLIT_COMPUTE_POOL 계정 파라미터가 지정한 컴퓨트 풀
  • COMMENT = '<string_literal>' — Streamlit 객체에 대한 주석을 지정해요. 기본값: 값 없음
  • TITLE = '<app_title>' — Snowsight에 표시할 Streamlit 객체의 제목을 지정해요. 기본값: CREATE STREAMLIT에 전달된 Streamlit 객체의 이름
  • IMPORTS = ( ... ) — 가져올 디렉터리나 파일의 위치(스테이지), 경로, 이름이에요. 웨어하우스 런타임에만 적용되며 컨테이너 런타임에서는 무시됩니다. 기본값: 값 없음
  • EXTERNAL_ACCESS_INTEGRATIONS = ( <integration_name> [ , ... ] ) — Streamlit 앱 코드가 외부 네트워크에 접근하는 데 필요한 외부 접근 통합의 이름이에요. 컨테이너 런타임의 경우 PyPI 같은 외부 패키지 인덱스에서 패키지를 설치하려면 외부 접근 통합이 필요합니다. 모든 런타임 유형에서 외부 접근 통합은 앱이 외부로 나가는 네트워크 요청을 할 수 있게 해줘요. 기본값: 값 없음
  • SECRETS = ( '<snowflake_secret_name>' = <snowflake_secret> [ , ... ] ) — Snowflake 비밀을 Streamlit 앱 코드에서 참조할 수 있는 비밀 이름에 매핑해요. 비밀 이름(왼쪽)은 코드에서 비밀을 참조하는 방식이고, 비밀 객체(오른쪽)는 Snowflake 비밀의 식별자입니다. 예: SECRETS = ('api_key' = my_database.my_schema.my_secret). 웨어하우스 런타임에서는 _snowflake 모듈로 비밀에 접근하고, 컨테이너 런타임에서는 st.secrets로 접근하며 환경 변수에도 매핑됩니다. 비밀은 EXTERNAL_ACCESS_INTEGRATIONS의 외부 접근 통합과 연결되어야 해요. 자세한 내용은 Manage secrets and configure your Streamlit app 문서를 참고. 기본값: 값 없음
  • ROOT_LOCATION = '<stage_path_and_root_directory>' (레거시) — Streamlit Python 파일, 미디어 파일, environment.yml 파일을 포함하는 명명된 스테이지의 경로를 지정해요. 예:
    ROOT_LOCATION = '@streamlit_db.streamlit_schema.streamlit_stage'
    
    이 예제에서 Streamlit 파일은 streamlit_db라는 데이터베이스와 streamlit_schema라는 스키마 안의 streamlit_stage라는 명명된 스테이지에 있습니다.

Access control requirements (접근 제어 요구 사항)

역할이 다음 표의 객체를 소유하지 않는다면, 역할은 그 객체들에 나열된 권한을 보유해야 해요. (컨테이너 런타임을 사용하는 경우에만 필요, 외부 접근 통합을 사용하는 경우에만 필요, 비밀 사용 시에만 필요하며 웨어하우스 런타임에만 적용, ROOT_LOCATION 파라미터로 Streamlit 객체를 만드는 경우에만 필요)

스키마의 객체를 조작하려면 상위 데이터베이스에 대한 권한과 상위 스키마에 대한 권한이 각각 최소 하나씩 필요합니다. 지정된 권한 집합으로 사용자 정의 역할을 만드는 방법은 Creating custom roles 문서를, 보안 객체에 대한 SQL 작업의 역할·권한 부여에 대한 일반적인 정보는 Overview of Access Control 문서를 참고하세요.

Usage notes (사용 참고 사항)

자세한 내용은 Manage dependencies for your Streamlit app 문서를 참고하세요.

Examples (예제)

Create a Streamlit app with default source files

내장 기본 파일로 컨테이너 런타임 Streamlit 앱을 만들려면 다음 예제처럼 CREATE STREAMLIT 명령을 실행해요.

CREATE STREAMLIT hello_streamlit
  RUNTIME_NAME = 'SYSTEM$ST_CONTAINER_RUNTIME_PY3_11'
  COMPUTE_POOL = my_compute_pool
  QUERY_WAREHOUSE = my_warehouse;

기본적으로 RUNTIME_NAME을 지정하지 않으면 앱은 최신 웨어하우스 런타임을 사용해요. 내장 기본 파일로 웨어하우스 런타임 Streamlit 앱을 만들려면 다음 예제처럼 명령을 실행합니다.

CREATE STREAMLIT hello_streamlit
  QUERY_WAREHOUSE = my_warehouse;

Create a Streamlit app from custom source files

사용자 지정 소스 파일로 컨테이너 런타임 Streamlit 앱을 만들려면 다음 예제처럼 명령을 실행해요.

CREATE STREAMLIT hello_streamlit
  FROM @streamlit_db.streamlit_schema.streamlit_stage
  MAIN_FILE = 'streamlit_main.py'
  QUERY_WAREHOUSE = my_warehouse
  RUNTIME_NAME = 'SYSTEM$ST_CONTAINER_RUNTIME_PY3_11'
  COMPUTE_POOL = my_compute_pool;

사용자 지정 소스 파일로 웨어하우스 런타임 Streamlit 앱을 만들려면 다음 예제처럼 명령을 실행해요.

CREATE STREAMLIT hello_streamlit
  FROM @streamlit_db.streamlit_schema.streamlit_stage
  MAIN_FILE = 'streamlit_main.py'
  QUERY_WAREHOUSE = my_warehouse;

Create a warehouse-runtime Streamlit app with secrets

비밀이 있는 웨어하우스 런타임 Streamlit 앱을 만들려면 다음 예제처럼 명령을 실행해요.

CREATE STREAMLIT hello_streamlit
  FROM @streamlit_db.streamlit_schema.streamlit_stage
  MAIN_FILE = 'streamlit_main.py'
  QUERY_WAREHOUSE = my_warehouse
  SECRETS = ('api_key' = streamlit_db.streamlit_schema.my_api_secret);

컨테이너 런타임 앱의 경우 비밀은 st.secrets와 환경 변수로 접근할 수 있어요. 자세한 내용은 Manage secrets and configure your Streamlit app 문서를 참고하세요.

Create a Streamlit app from a Git repository

Git 리포지토리에서 Streamlit 앱을 만들려면 다음 예제처럼 명령을 실행해요.

CREATE STREAMLIT hello_streamlit
  FROM @streamlit_db.streamlit_schema.streamlit_repo/branches/streamlit_branch/
  MAIN_FILE = 'streamlit_main.py'
  QUERY_WAREHOUSE = my_warehouse;

더 알아보기 (Learn more)