SQL을 사용하여 Streamlit 앱 만들기

이 항목에서는 SQL 명령을 사용하여 Snowflake에 Streamlit 앱을 배포하는 방법을 설명합니다. 단일 페이지 및 다중 페이지 Streamlit 앱을 배포하는 방법을 설명합니다.

전제 조건

SQL을 사용하여 Streamlit 앱을 배포하기 전에 다음 전제 조건을 충족해야 합니다.

SQL을 사용하여 Streamlit 앱 만들기

SQL 명령을 사용하여 Snowflake에서 Streamlit 앱을 만들려면 다음 각 작업을 수행하십시오.

로컬 파일 시스템에 Streamlit 파일 만들기

이 섹션에서는 단일 페이지 또는 다중 페이지 Streamlit 앱을 만드는 방법을 설명합니다. 각 애플리케이션 유형의 예는 예 - 단일 페이지 Streamlit 앱예 - 다중 페이지 Streamlit 앱 섹션을 참조하십시오.

Streamlit 앱용 파일을 만들려면 다음을 수행하십시오.

  1. 로컬 파일 시스템에서 주 Streamlit 앱을 만듭니다.

  2. 선택 사항: 다중 페이지 Streamlit 앱 을 만드는 경우 로컬 파일 시스템에 pages 라는 폴더를 만들고 이 하위 폴더에 Streamlit 페이지를 더 추가합니다.

  3. 선택 사항: Streamlit 앱에 외부 패키지를 포함하려면 environment.yml 파일을 만드십시오. 외부 패키지 포함에 대한 자세한 내용은 environment.yml 파일을 사용하여 패키지 설치하기 섹션을 참조하십시오.

Streamlit 페이지를 생성한 후 디렉터리 구조는 다음과 유사한 형태여야 합니다.

└── streamlit/
    └── environment.yml
    └── streamlit_main.py
    └── pages/
         └── data_frame_demo.py
         └── plot_demo.py
Copy

참고

environment.yml 및 선택 사항인 pages 하위 폴더는 주 Streamlit 파일과 동일한 수준에 있어야 합니다. 추가 Streamlit 페이지를 pages 하위 폴더 내에 포함해야 합니다.

Streamlit 파일을 명명된 스테이지에 업로드하기

Streamlit in Snowflake 에서 Streamlit 앱을 만들려면 명명된 스테이지에 애플리케이션 파일을 업로드해야 합니다.

애플리케이션 파일을 업로드하려면 다음 중 하나를 수행하십시오.

  • Snowsight를 사용하여 파일 스테이징하기 에 설명된 바와 같이 Snowsight 를 사용하여 애플리케이션 파일을 업로드합니다.

  • 다음 예시와 같이 SnowSQL을 사용하여 애플리케이션 파일을 업로드합니다.

    PUT file:///<path_to_your_root_folder>/streamlit/streamlit_main.py @streamlit_db.steamlit_schema.streamlit_stage overwrite=true auto_compress=false;
    PUT file:///<path_to_your_root_folder>/streamlit/environment.yml @streamlit_db.steamlit_schema.streamlit_stage overwrite=true auto_compress=false;
    PUT file:///<path_to_your_root_folder>/streamlit/pages/streamlit_page_2.py @streamlit_db.steamlit_schema.streamlit_stage/pages/ overwrite=true auto_compress=false;
    PUT file:///<path_to_your_root_folder>/streamlit/pages/streamlit_page_3.py @streamlit_db.steamlit_schema.streamlit_stage/pages/ overwrite=true auto_compress=false;
    
    Copy

STREAMLIT 오브젝트 만들기

STREAMLIT 오브젝트는 Streamlit 앱에 필요한 파일을 캡슐화하는 Snowflake의 데이터베이스 오브젝트입니다.

  1. STREAMLIT 오브젝트를 생성하려면 다음 예와 같이 CREATE STREAMLIT 명령을 실행하십시오.

    CREATE STREAMLIT hello_streamlit
    ROOT_LOCATION = '@streamlit_db.steamlit_schema.streamlit_stage'
    MAIN_FILE = '/streamlit_main.py'
    QUERY_WAREHOUSE = my_warehouse;
    
    Copy

    이 명령으로 ROOT_LOCATION 및 MAIN_FILE에 지정된 경로와 파일을 기반으로 hello_streamlit 이라는 STREAMLIT 오브젝트를 생성합니다.

    참고

    QUERY_WAREHOUSE 절은 선택 사항이지만 Snowflake에서 Streamlit 앱을 실행할 수 있으려면 쿼리 웨어하우스를 지정해야 합니다.

  2. Streamlit 오브젝트가 생성되었는지 확인하려면 다음 예와 같이 SHOW STREAMLITS 명령을 실행하십시오.

    SHOW STREAMLITS;
    
    Copy

environment.yml 파일을 사용하여 패키지 설치하기

Streamlit 앱에 추가 Python 패키지를 설치하려면 다음을 수행하십시오.

  1. 앱에 environment.yml 파일을 추가합니다.

  2. STREAMLIT 오브젝트의 ROOT_LOCATION 매개 변수로 지정된 스테이지 위치에 파일을 업로드하려면 PUT 명령을 실행하십시오.

    environment.yml 에 나열된 패키지는 Snowflake Anaconda 채널 에서 설치됩니다.

다음 샘플 environment.yml 은 Streamlit 환경 내에 scikit-learn 을 설치하는 방법을 보여줍니다.

name: sf_env
channels:
- snowflake
dependencies:
- scikit-learn
Copy

namechannels 속성이 필요합니다. 또한 channels 속성 아래에 - snowflake 키가 필요합니다.

참고

Snowflake Anaconda 채널 에 나열된 패키지만 설치할 수 있습니다. Streamlit in Snowflake는 외부 Anaconda 채널을 지원하지 않습니다.

Streamlit 앱 보기

STREAMLIT 오브젝트에 대한 정보를 보려면 다음 예와 같이 DESCRIBE STREAMLIT 명령을 실행하십시오.

DESC STREAMLIT hello_streamlit;
Copy

Snowsight 에서 Streamlit 앱을 보려면 Streamlit 앱 보기 섹션을 참조하십시오.

기존 STREAMLIT 오브젝트 수정하기

STREAMLIT 오브젝트를 생성한 후 ALTER STREAMLIT 명령을 사용하여 다음 섹션에 설명된 대로 다양한 속성을 수정합니다.

STREAMLIT 오브젝트 이름 바꾸기

STREAMLIT 오브젝트의 이름을 바꾸려면 다음 예와 같이 ALTER STREAMLIT 명령의 RENAME TO 절을 사용하십시오.

ALTER STREAMLIT hello_streamlit RENAME TO hello_snowflake;
Copy

STREAMLIT 오브젝트의 스테이지 또는 주 파일 변경하기

STREAMLIT 오브젝트의 스테이지 경로를 변경하려면 다음 예와 같이 ALTER STREAMLIT 명령을 사용하여 오브젝트의 ROOT_LOCATION 속성을 설정하십시오.

ALTER STREAMLIT hello_streamlit SET ROOT_LOCATION '@snowflake_db.snowflake_schema.snowflake_stage'
Copy

STREAMLIT 오브젝트의 주 Streamlit 파일을 변경하려면 다음 예와 같이 ALTER STREAMLIT 명령을 사용하여 오브젝트의 MAIN_FILE 속성을 설정하십시오.

ALTER STREAMLIT hello_streamlit SET MAIN_FILE 'snowflake_main.py'
Copy

STREAMLIT 오브젝트에 할당된 쿼리 웨어하우스 변경하기

쿼리 웨어하우스를 추가하거나 STREAMLIT 오브젝트에 대한 현재 쿼리 웨어하우스를 변경하려면 다음 예와 같이 ALTER STREAMLIT 명령을 사용하여 오브젝트의 QUERY_WAREHOUSE 속성을 설정하십시오.

ALTER STREAMLIT hello_streamlit SET QUERY_WAREHOUSE my_new_warehouse;
Copy

사용 가능한 STREAMLIT 오브젝트 나열하기

현재 역할에서 사용할 수 있는 Streamlit 앱을 나열하려면 다음 예와 같이 SHOW STREAMLITS 명령을 실행하십시오.

SHOW STREAMLITS;
Copy

STREAMLIT 오브젝트 삭제하기

STREAMLIT 오브젝트를 삭제하려면 다음 예와 같이 DROP STREAMLIT 명령을 실행하십시오.

DROP STREAMLIT hello_streamlit;
Copy