예: Snowflake에 쓰는 양식 빌드¶
이 예제에서는 양식을 통해 사용자 입력을 수집하여 Snowflake 테이블에 쓰는 Streamlit in Snowflake 앱을 빌드하는 과정을 안내합니다. 또한 앱은 데이터를 다시 읽어서 제출된 모든 항목을 표시하고 :code:`st.user`를 사용하여 각 항목을 제출한 사용자를 추적합니다.
이 앱은 Container Runtime을 사용합니다. 시작하기 전에 :ref:`전제 조건 <label-streamlit_prereqs>`을 완료했는지 확인합니다.
대상 테이블 설정¶
이 예제에서는 ``crud_demo``라는 데이터베이스를 사용합니다. SQL 및 앱 코드의 참조를 일치하도록 업데이트하기만 하면 액세스 권한이 있는 모든 데이터베이스와 스키마를 대체할 수 있습니다.
양식 제출을 저장할 테이블을 생성합니다. 워크시트 또는 SQL 세션에서 다음 SQL을 실행합니다.
앱 코드 작성¶
로컬 컴퓨터에서 다음 코드를 사용하여 이름이 :file:`streamlit_app.py`인 파일을 생성합니다. Snowsight 를 사용할 계획인 경우 앱을 생성한 후 이 코드를 편집기에 붙여넣을 수 있습니다.
이 앱은 다음을 사용합니다.
제출하기 전에 입력을 수집하여 모든 위젯 상호 작용에서 재실행을 방지하기 위한
st.form.데이터 쓰기를 위한 Snowpark 세션을 가져오는
st.connection("snowflake").session(). 자세한 내용은 시크릿 관리 및 Streamlit 앱 구성하기 섹션을 참조하십시오.제출한 내용을 다시 읽으려면
conn.query()대신 :code:`session.sql()`을 사용합니다. :code:`conn.query()`는 기본적으로 결과를 캐시하므로 캐시가 만료될 때까지 새 항목이 표시되지 않습니다. :code:`session.sql()`은 재실행할 때마다 새로운 쿼리를 실행합니다.각 항목을 제출한 사용자를 기록하는
st.user.user_name. 자세한 내용은 사용자 정보로 Streamlit 앱 개인 설정 섹션을 참조하십시오.
종속성 선언¶
이 앱은 ``streamlit``만 사용하여 기본 제공 Snowflake 연결을 다시 빌드하므로 추가 종속성이 필요하지 않습니다.
자세한 내용은 Streamlit 앱의 종속성 관리하기 섹션을 참조하십시오.
앱 배포¶
참고
Snowflake CLI 버전 3.14.0 이상이 필요합니다. 버전 3.14 이상에서는 기본적으로 최신 CREATE STREAMLIT 구문을 사용합니다.
다음 구조로 프로젝트 디렉터리를 생성합니다.
snowflake.yml파일을 생성합니다.앱을 배포합니다.
앱 사용해 보기¶
브라우저에서 앱을 엽니다.
양식 필드를 채우고 :ui:`Submit`을 선택합니다.
양식 아래의 피드백 테이블이 업데이트되어 이메일 주소와 타임스탬프를 포함하여 새로 제출한 내용이 표시됩니다.
항목을 몇 개 더 제출한 다음 테이블의 데이터를 필터링하거나 정렬해 봅니다.
앱 확장¶
각 행 옆에 삭제 버튼을 추가하거나 카테고리별 평균 평점을 보여주는 차트를 추가해 봅니다. 예를 들어, 데이터 프레임 뒤에 다음을 추가합니다.
``plotly``를 추가하면 requirements.txt 파일에서 선언합니다.
더 복잡한 종속성 시나리오의 경우 pyproject.toml 파일을 대신 사용할 수 있습니다. 자세한 내용은 Streamlit 앱의 종속성 관리하기 섹션을 참조하십시오.
정리¶
이 예제에서 생성된 리소스를 제거하려면 다음 SQL을 실행합니다.
다음에는 무엇을 해야 합니까?¶
Streamlit 앱 생성: 앱을 생성하기 위한 모든 옵션에 대해 알아봅니다.
사용자 정보로 Streamlit 앱 개인 설정: :code:`st.user`를 통해 사용할 수 있는 모든 사용자 특성을 살펴봅니다.
시크릿 관리 및 Streamlit 앱 구성하기: 앱에서 시크릿 및 외부 서비스에 액세스합니다.
Streamlit in Snowflake 앱 공유하기: 다른 사용자와 앱을 공유합니다.