제한 사항 및 라이브러리 변경 사항

이 항목에서는 Streamlit 기능이 오픈 소스 라이브러리와 Snowflake에서 다르게 작동할 때의 제한 사항과 기능 동작 변경에 대해 설명합니다.

지원되지 않는 Streamlit 기능

다음 Streamlit 기능은 Streamlit in Snowflake 에서 지원되지 않습니다.

Streamlit in Snowflake 에서 외부 리소스를 로드할 때의 제한 사항

모든 Streamlit in Snowflake 앱은 로드할 수 있는 리소스를 제한하는 내용 보안 정책(CSP) 내에서 실행됩니다. Snowflake는 스크립트, 스타일, 글꼴, iframe 임베딩을 포함한 모든 외부 도메인의 코드 로딩을 차단합니다. 하지만 Mapbox에서 리소스 하위 집합을 로드하는 것은 지원됩니다.

st.map 또는 st.pydeck_chart Streamlit 명령을 사용하는 경우 Mapbox는 지도 콘텐츠 렌더링 시 지도 타일을 제공합니다. Mapbox는 서드 파티 애플리케이션으로, Snowflake의 외부 제공 서비스 약관 이 적용됩니다.

외부 도메인에서 이미지 또는 미디어를 로드하는 것은 Streamlit in Snowflake 에서 지원되지만, Snowflake Native App Framework 에서는 지원되지 않습니다.

예를 들어 다음 코드는 Python 오류 없이 실행되지만 스크립트는 브라우저에서 로딩되거나 실행되지 않습니다.

# This will not work
import streamlit.components.v1 as components
components.html("""
<script src="http://www.example.com/example.js"></script>
""", height=0)
Copy

CSP는 eval() 와 같이 일반적으로 안전하지 않은 것으로 간주되는 프런트엔드 호출도 차단합니다.

참고

앱 개발자는 Snowflake의 공유 책임 모델 에 따라 Streamlit in Snowflake 앱 코드의 보안 검사 및 소프트웨어 공급망에 대한 책임이 있습니다.

추가 Streamlit in Snowflake 제한 사항

Streamlit in Snowflake 에는 다음과 같은 추가 제한 사항이 있습니다.

Streamlit 앱은 데이터 검색에 제한이 있습니다.

Streamlit in Snowflake 및 Snowflake Native App 에서 실행되는 Streamlit 앱은 백엔드와 프런트엔드 간에 교환되는 메시지 크기에 32MB 제한이 있습니다. 32 MB 를 초과하는 쿼리는 다음 오류를 반환합니다.

MessageSizeError: Data Size exceeds message limit

이 제한을 방지하려면 Streamlit 앱이 32 MB 보다 작은 증분 단위로 데이터를 불러오도록 설계하십시오.

Streamlit in Snowflake 는 클라이언트 측 암호화를 사용하는 내부 스테이지만 지원합니다.

Streamlit in Snowflake 편집기는 서버 측 암호화를 사용하는 명명된 스테이지의 파일에서 STREAMLIT 오브젝트 생성 을 지원하지 않습니다. 이 상황에서는 Snowsight 에서 오류를 반환합니다.

st.cache_datast.cache_resource 는 일부 지원되지 않습니다

st.cache_datast.cache_resource 는 Streamlit in Snowflake 에서 완전하게 지원되지 않습니다. 캐싱은 단일 세션 내에서만 동작합니다. 캐시된 값은 다른 세션으로 넘겨질 수 없고 Streamlit 앱의 여러 사용자 간에 공유될 수 없습니다.

st.file_uploader 는 200 MB 까지의 파일만 업로드할 수 있습니다.

st.file_uploader 를 사용하는 경우 각각 200 MB 로 제한된 파일을 업로드할 수 있습니다. 이 구성은 현재 Streamlit in Snowflake 에서 지원되지 않습니다. 대용량 파일의 경우 데이터를 더 작은 배치로 처리하거나 다른 업로드 방법을 사용하는 것이 좋습니다.

Streamlit in Snowflake 에서 쿼리 매개 변수로 작업할 때 변경되는 사항

Streamlit in Snowflake 에서 st.query_params 의 경우 streamlit- 접두사가 URL 의 각 쿼리 매개 변수 키에 추가됩니다. 이 접두사는 st.query_params를 사용하여 값을 가져오거나 설정할 때는 포함되지 않습니다.

예를 들어, 다음 URL 을 생각해 보겠습니다.

https://app.snowflake.com/org/account_name/#/streamlit-apps/DB.SCHEMA.APP_NAME?streamlit-first_key=one&streamlit-second_key=two

이 URL 의 매개 변수는 다음 키-값 페어로 st.query_params에서 액세스할 수 있습니다.

{
   "first_key" : "one",
   "second_key" : "two"
}
Copy

자세한 내용은 st.query_params 를 참조하십시오.