예: 개인 설정 데이터 대시보드 빌드¶
이 예제에서는 Snowflake 데이터를 쿼리하고, 서드 파티 차트 라이브러리를 추가하고, 각 뷰어에 맞게 디스플레이를 개인 설정하는 Streamlit in Snowflake 앱을 빌드하는 과정을 안내합니다. 이 과정을 완료하면 핵심 개발 주기인 생성, 배포, 편집, 재배포를 이해하게 됩니다.
이 앱은 Container Runtime을 사용합니다. 시작하기 전에 :ref:`전제 조건 <label-streamlit_prereqs>`을 완료했는지 확인합니다.
샘플 데이터 설정¶
이 예제에서는 ``dashboard_demo``라는 데이터베이스를 사용합니다. SQL 및 앱 코드의 참조를 일치하도록 업데이트하기만 하면 액세스 권한이 있는 모든 데이터베이스와 스키마를 대체할 수 있습니다.
샘플 수익 데이터가 포함된 테이블을 생성합니다. 워크시트 또는 SQL 세션에서 다음 SQL을 실행합니다.
앱 코드 작성¶
로컬 컴퓨터에서 선택한 프로젝트 디렉터리에 다음 코드를 사용하여 :file:`streamlit_app.py`라는 파일을 생성합니다. Snowsight 를 사용할 계획인 경우 앱을 생성한 후 이 코드를 편집기에 붙여넣을 수 있습니다.
이 앱은 다음을 사용합니다.
Snowflake에서 데이터를 쿼리하기 위한
conn.query(). 결과는 자동으로 캐시되므로 캐시가 만료될 때까지 쿼리가 한 번만 실행됩니다. 자세한 내용은 시크릿 관리 및 Streamlit 앱 구성하기 섹션을 참조하십시오.현재 뷰어를 환영하는
st.user.user_name. 자세한 내용은 사용자 정보로 Streamlit 앱 개인 설정 섹션을 참조하십시오.다음 단계에서 선언하는 외부 종속성인 대화형 차트의 경우
plotly.
종속성 선언¶
Container Runtime은 requirements.txt 파일에 나열된 패키지를 설치합니다. streamlit_app.py`와 함께 :file:`requirements.txt 파일을 생성합니다.
앱이 시작되면 Container Runtime이 선언된 패키지를 자동으로 설치합니다. 더 복잡한 종속성 시나리오의 경우 pyproject.toml 파일을 대신 사용할 수 있습니다. 자세한 내용은 Streamlit 앱의 종속성 관리하기 섹션을 참조하십시오.
앱 배포¶
Snowsight 에 로그인합니다.
탐색 메뉴에서 Projects » Streamlit 를 선택합니다.
+ Streamlit App 를 선택합니다.
앱 이름으로 ``revenue_dashboard``를 입력합니다.
데이터베이스와 스키마를 선택합니다.
:ui:`Run on container`를 선택한 다음 컴퓨팅 풀과 쿼리 웨어하우스를 선택합니다.
Create 를 선택합니다.
편집기에서 스타터 코드를 위의 앱 코드로 바꿉니다.
+`(추가) |raa| :ui:`Create new file`을 선택하고, ``requirements.txt``를 입력하고, 해당 내용을 붙여넣어 :file:`requirements.txt 파일을 업로드하거나 생성합니다.
Run 을 선택합니다.
참고
Snowflake CLI 버전 3.14.0 이상이 필요합니다. 버전 3.14 이상에서는 기본적으로 최신 CREATE STREAMLIT 구문을 사용합니다.
다음 구조로 프로젝트 디렉터리를 생성합니다.
snowflake.yml파일을 생성합니다.앱을 배포합니다.
변경¶
앱을 편집하여 개발 주기가 실제로 작동하는지 확인합니다. 다음 두 줄을 filtered = ... 줄과 fig = px.bar(...) 줄 사이의 :file:`streamlit_app.py`에 삽입하여 요약 메트릭을 추가합니다.
브라우저에서 편집하는 경우 해당 줄을 편집기에 붙여넣고 :ui:`Run`을 선택합니다.
업데이트된 파일을 스테이징한 다음 앱의 라이브 버전 위치에 복사합니다.
파일을 로컬에 저장하고 다시 배포합니다.
편집 워크플로에 대한 자세한 내용은 Streamlit 앱 편집 섹션을 참조하세요.
정리¶
이 예제에서 생성된 리소스를 제거하려면 다음 SQL을 실행합니다.
다음에는 무엇을 해야 합니까?¶
예: Snowflake에 쓰는 양식 빌드: Snowflake에 데이터를 다시 쓰는 양식으로 앱을 빌드합니다.
사용자 정보로 Streamlit 앱 개인 설정: :code:`st.user`를 사용한 앱 개인 설정에 대해 자세히 알아봅니다.
Streamlit in Snowflake 의 외부 네트워크 액세스: 앱을 외부 APIs에 연결합니다.