ROOT_LOCATION에서 FROM으로 앱 마이그레이션하기¶
Streamlit 오브젝트를 변환하려면 CREATE OR REPLACE STREAMLIT</sql-reference/sql/create-streamlit>`와 함께 FROM 매개 변수를 사용합니다. 단순화를 위해 이 절차에서는 웨어하우스 런타임을 사용한다고 가정합니다. 컨테이너 런타임(미리 보기)으로 업그레이드하려면 호환성을 위해 앱 코드를 변경해야 합니다. :doc:`runtime-migration 페이지를 참조하세요.
앱 코드가 컨테이너 런타임과 호환되는 경우 CREATE OR REPLACE STREAMLIT 명령에 다음 매개 변수를 추가하여 이 프로시저를 수정할 수 있습니다.
RUNTIME_NAME = 'SYSTEM$ST_CONTAINER_RUNTIME_PY3_11'
COMPUTE_POOL = my_compute_pool
EXTERNAL_ACCESS_INTEGRATIONS = (pypi_access_integration)
앱을 ROOT_LOCATION에서 FROM으로 마이그레이션하려면 다음 단계를 수행합니다.
앱의 현재 구성을 식별하려면 다음 명령을 실행합니다.
DESCRIBE STREAMLIT streamlit_db.streamlit_schema.my_app;
``streamlit_db.streamlit_schema.my_app``을 Streamlit 오브젝트로 바꿉니다.
이후 단계에서 사용하려면 텍스트 편집기를 열고 다음 값을 기록해 둡니다. 이후 단계에서 샘플 값을 식별하고 해당 값으로 바꿀 수 있도록 샘플 값이 표시됩니다.
열
값
namemy_apptitleMy Streamlit Approot_location@db1.schema1/my_app_foldermain_filestreamlit_app.pyquery_warehousemy_warehouseuser_packagesstreamlit==1.45.0, pandas==2.2.0import_urls@db2.schema2/packages/package1.zip, @db3.schema3/packages/package2.zipexternal_access_integrationeai_name_1, eai_name_2external_access_secretssecret1, secret2Streamlit 오브젝트가
root_location열을 반환하지 않은 경우 앱은 FROM 매개 변수를 사용하여 생성되었으므로 전환이 필요하지 않습니다.진입점 파일이 앱 소스 디렉터리의 루트에 있는지 확인합니다. (컨테이너 런타임을 사용하는 경우 이 단계를 건너뛸 수 있습니다.)
진입점 파일은 이전 단계의
main_file값에 의해 지정됩니다. FROM을 사용하여 앱을 생성하는 경우 ``main_file``은 소스 디렉터리의 루트에 있는 파일을 선언해야 합니다. 진입점 파일이 하위 디렉터리에 있는 경우 계속하기 전에 앱의 파일을 재정렬하고 그에 따라 앱의 코드를 업데이트해야 합니다.앱을 변환하려면 CREATE OR REPLACE STREAMLIT와 함께 FROM 매개 변수를 사용합니다.
가장 간단한 경우에는 앱에
title,user_packages,import_urls,external_access_integration, ``external_access_secrets``에 대한 null 값이 있을 수 있습니다. 이 경우 다음 명령을 실행하여 자리 표시자를 앱의 값으로 바꿀 수 있습니다.CREATE OR REPLACE STREAMLIT my_app FROM '@db1.schema1/my_app_folder' MAIN_FILE = 'streamlit_app.py' QUERY_WAREHOUSE = my_warehouse;
앱에 선택적 매개 변수에 대해 null이 아닌 값이 있는 경우 이를 CREATE OR REPLACE STREAMLIT 명령에 포함합니다. 예:
CREATE OR REPLACE STREAMLIT my_app FROM '@db1.schema1/my_app_folder' MAIN_FILE = 'streamlit_app.py' TITLE = 'My Streamlit App' QUERY_WAREHOUSE = my_warehouse IMPORTS = ('@db2.schema2/packages/package1.zip', '@db3.schema3/packages/package2.zip') EXTERNAL_ACCESS_INTEGRATION = ('eai_name_1', 'eai_name_2') SECRETS = ('secret1', 'secret2');
앱이 로드되지 않으면 종속성을 확인합니다.
종속성 관리에 대한 자세한 내용은 Streamlit 앱의 종속성 관리하기 섹션을 참조하세요.