Streamlit을 Snowflake에 연결하여 데이터 기반 웹 애플리케이션의 능력 해방하기
Published on
만약 데이터 분석, 소프트웨어 개발, 또는 Python을 사용하여 웹 애플리케이션을 구축에 흥미를 느끼는 기술 열성자라면, 이 포괄적인 가이드가 귀하에게 맞춤 설정되어 있습니다. 데이터의 영역이 커짐에 따라 유용한 통찰력을 추출하고 처리하는 효율적인 도구의 필요성도 증가합니다. 여기서 Streamlit과 Snowflake이 등장합니다.
Streamlit은 Python을 위한 빠르게 성장하는 로우코드 웹 프레임워크로, 최소한의 코딩으로 대화형 및 데이터 기반 웹 애플리케이션을 구축할 수 있게 해줍니다. 반면에, Snowflake은 클라우드 기반 데이터 웨어하우징 플랫폼으로, 데이터 저장, 계산, 분석에 대한 견고한 솔루션을 제공합니다. 이 두 가지는 데이터의 세계에서 편리함과 효율성을 가져다 줍니다.
Snowflake Native Application Framework
우리의 모험을 시작하기 전에, 먼저 Snowflake의 우주 허브인 Native Application Framework에 한 번 들르겠습니다. 저장된 프로시저, 작업, 스트림, UDF, Snowpark 등 다양한 기능으로 가득한 도구상자를 상상해보세요. 이 도구상자가 바로 이 Framework의 본질입니다!
이 도구상자 덕분에 애플리케이션 제공자는 다음을 할 수 있습니다:
- 자신의 애플리케이션을 구축하기 위해 Snowflake의 핵심 기능을 활용합니다.
- Snowflake Marketplace에 배포하고 이를 상업화할 수 있습니다 (마치 앱 스토어처럼 생각하면 됩니다!).
- 애플리케이션을 고객의 Snowflake 계정 내부로 직접 배포할 수 있습니다.
애플리케이션이 만들어지면 Snowflake의 견고한 보안 데이터 공유 기능을 통해 전 세계로 배포할 수 있습니다. 사용자는 이 애플리케이션을 Marketplace에서 직접 배포하여 자신의 Snowflake 계정에 사용할 수 있습니다.
Native Application Framework은 단순히 기능 집합이 아니라 가능성의 세계로의 관문입니다. Streamlit과 같은 로우코드 UX 프레임워크와 결합되면 이 혼합물은 마법을 일으킵니다.
Streamlit in Snowflake
Streamlit의 세계로 빠져드는 동안, 이 무료 오픈소스 프레임워크는 기계 학습 및 데이터 과학을 위한 아름다운 웹 앱을 구축하려는 사람들에게 상쾌한 바람입니다.
데이터 과학자나 기계 학습 엔지니어들의 삶을 단순화하기 위해 만들어진 Streamlit은 몇 줄의 코드로 훌륭한 애플리케이션을 손쉽게 만들 수 있게 해줍니다.
무료로 Streamlit을 사용하여 데이터 분석 및 데이터 시각화 앱을 만들고 싶으신가요?
PyGWalker (opens in a new tab)는 Python 라이브러리로서, 쉽게 Tableau와 유사한 UI를 자체 Streamlit 앱에 통합할 수 있도록 도와줍니다. Coding is Fun (opens in a new tab)의 Sven이 제작한 이 놀라운 비디오를 확인해보세요. 이 비디오에서는 이 강력한 데이터 시각화 Python 라이브러리를 사용하여 Streamlit 앱을 강화하는 방법에 대한 상세한 단계가 설명됩니다!
PyGWalker 커뮤니티에 기여한 Sven님에게 특별한 감사를 전합니다 (opens in a new tab)!
추가로, PyGWalker GitHub 페이지 (opens in a new tab)에서 PyGWalker 예제를 더 확인할 수도 있습니다.
이를 Snowflake와 통합하면 (SiS로 똑똑하게 명명됨), Python을 사용하여 Snowflake 내부에서 직접 Streamlit 코드를 작성할 수 있습니다. 단순히 스노우플레이크 내의 다른 스키마 객체와 마찬가지로 Streamlit 객체를 생성하고 앱의 이름을 지정하고 웨어하우스를 할당하고 앱의 위치를 결정하면 됩니다. 이는 스노우플레이크 내에 명확하게 구현되기 때문에 롤 기반 액세스 제어가 일관되게 적용됩니다.
더할 나위 없이 좋은 점? Streamlit 앱을 배포하고 링크를 통해 다른 사람과 공유하고 심지어 모바일 기기에서도 볼 수 있습니다. 멋지지 않나요?
Streamlit + Snowflake 통합을 위한 준비
Snowflake 데이터베이스 생성
웹 애플리케이션 생성으로 들어가기 전에, Streamlit 앱에 연결할 Snowflake 데이터베이스를 설정하는 것이 중요합니다. Snowflake 데이터베이스를 생성하는 단계를 진행해보겠습니다:
- https://signup.snowflake.com에서 (opens in a new tab) Snowflake 계정에 가입합니다.
- Snowflake 계정에 액세스할 계정 URL을 확인하기 위해 "Welcome to Snowflake!" 이메일을 확인합니다.
LOG IN TO SNOWFLAKE
버튼을 사용하거나 계정 URL을 브라우저에 복사하여 사용하세요. - Snowflake 자격증명을 입력하세요.
- 로그인한 후 Worksheets 패널에 착륙하게 됩니다.
- 새 SQL 워크시트를 생성하려면, Snowflake 인터페이스에서 제공하는 지침에 따르세요.
- 다음 SQL 쿼리를 쿼리 상자에 입력하여 간단한
PETS
데이터베이스를 생성하고 몇 가지 데이터를 채웁니다:
CREATE DATABASE PETS;
CREATE TABLE MYTABLE (
NAME varchar(80),
PET varchar(80)
);
INSERT INTO MYTABLE VALUES ('Mary', 'dog'), ('John', 'cat'), ('Robert', 'bird');
SELECT * FROM MYTABLE;
- 쿼리를 실행한 후,
PETS
데이터베이스가 생성됩니다. 메인 페이지로 돌아갑니다. - 메인 페이지에서 Data 탭을 클릭하여 새로 생성한
PETS
데이터베이스를 확인합니다.
환경 설정
이제 Anaconda를 사용하여 코딩 환경을 설정하는 과정으로 넘어갑시다.
conda create -n snowpark python=3.8
conda activate snowpark
pip install snowflake-snowpark-python streamlit
기억하세요, 코딩 세션 후에는 conda deactivate
명령을 사용하여 conda 환경을 비활성화할 수 있습니다.
이제 Streamlit 앱을 위한 디렉토리 및 파일을 설정하는 단계로 진행해봅시다:
먼저, 프로젝트를 위한 새 디렉토리를 생성합니다. 터미널을 열고 다음을 입력하세요:
mkdir streamlit-snowflake-app && cd streamlit-snowflake-app
touch main.py secrets.py .gitignore
main.py
파일은 Streamlit 애플리케이션을 작성할 위치입니다.secrets.py
파일은 Snowflake 액세스 자격 증명을 저장할 위치입니다..gitignore
파일을 사용하여 민감한 자격 증명을 실수로 공개 리포지토리에 커밋하지 않도록 합니다.
Snowflake와 함께 Streamlit 앱 만들기
이제 재미있는 단계인 Streamlit 애플리케이션을 만드는 과정에 도달했습니다. 여기서는 앞서 생성한 PETS
데이터베이스를 쿼리하고 결과를 Streamlit 앱에서 표시할 것입니다.
main.py
파일에서 필요한 라이브러리를 가져옵니다:
import streamlit as st
from snowflake.snowpark import Session
from secrets import SNOWFLAKE_ACCOUNT, SNOWFLAKE_USER, SNOWFLAKE_PASSWORD
secrets.py
에 저장된 자격 증명을 사용하여 Snowflake 세션을 설정합니다:
session = Session(url=SNOWFLAKE_ACCOUNT, user=SNOWFLAKE_USER, password=SNOWFLAKE_PASSWORD)
- Snowflake에서 데이터를 가져옵니다:
df = session.sql("SELECT * FROM PETS.MYTABLE").to_pandas()
4. Streamlit에서 데이터를 표시합니다:
```python
st.write(df)
secrets.toml
에 화면을 저장합니다.
touch secrets.toml
secrets.toml
에 Snowflake 자격 증명을 추가합니다:
[secrets]
SNOWFLAKE_ACCOUNT = "당신의_계정"
SNOWFLAKE_USER = "당신의_사용자_이름"
SNOWFLAKE_PASSWORD = "당신의_비밀번호"
main.py
파일을 업데이트하여 Streamlit의 시크릿 관리를 사용합니다:
session = Session(url=st.secrets["SNOWFLAKE_ACCOUNT"], user=st.secrets["SNOWFLAKE_USER"], password=st.secrets["SNOWFLAKE_PASSWORD"])
.gitignore를 업데이트하는 것을 잊지 마세요.
보세요! Snowflake 데이터베이스에 연결하는 첫 번째 Streamlit 앱을 만들었습니다. 앱을 실행하려면 터미널에서 streamlit run main.py
를 사용하십시오.
Streamlit 앱을 배포하는 방법
앱이 준비되고 시크릿이 안전하게 관리되었으면, 작업물을 세계와 공유할 준비가 되었습니다. Streamlit은 Streamlit Share라는 애플리케이션을 배포하기 위한 플랫폼을 제공합니다:
- 프로젝트를 공개 GitHub 저장소에 커밋합니다(
secrets.toml
파일은 제외). - share.streamlit.io (opens in a new tab)에 방문하고 앱 배포를 클릭합니다.
- GitHub 저장소와 브랜치를 선택한 후,
main.py
를 응용 프로그램 파일로 지정합니다. - 시크릿 섹션에서 비밀 추가를 클릭하고
secrets.toml
의 키-값 쌍을 입력합니다. - 배포를 클릭합니다. Streamlit Share가 나머지를 처리할 것입니다!
결론
Streamlit을 Snowflake와 연결하면 파이썬을 사용하여 효율적이고 대화식으로 작동하는 웹 애플리케이션을 만들 수 있는 다양한 가능성이 열립니다. 이 가이드는 Snowflake 데이터베이스와 Streamlit 애플리케이션을 설정하고 시크릿 관리와 앱 배포까지의 단계별 과정을 안내했습니다. 약간의 창의력으로이 프로세스를 다양한 응용 프로그램과 워크플로에 맞게 조정할 수 있습니다.
지금 이 지식을 갖고 데이터 주도 앱을 만들어 보세요.
Snowflake 데이터를 쉽게 시각화하고 싶나요? RATH (opens in a new tab)는 AI 기반 데이터 시각화 및 자동 데이터 분석을 위한 가장 쉬운 솔루션을 제공합니다!
다음 비디오를 시청하여 RATH로 데이터 인사이트를 쉽게 탐색하는 방법에 대해 알아보세요:
지금 Snowflake 데이터베이스를 RATH에 연결하고 싶으신가요? Snowflake 통합 단계별 가이드를 확인해보세요.
Snowflake 외에도, RATH는 다양한 데이터 소스를 지원합니다. RATH에 연결할 수 있는 주요 데이터베이스 솔루션 몇 가지는 다음과 같습니다:
관심이 있으신가요? RATH 웹사이트 (opens in a new tab)에서 지금 바로 RATH를 시도해보세요.
자주 묻는 질문
Streamlit에서의 Snowflake란 무엇인가요?
Streamlit에서의 Snowflake(SiS)은 Streamlit을 Snowflake 플랫폼 내에 통합하는 것을 의미합니다. SiS를 사용하면 사용자는 데이터 저장, 처리 및 보안을 위한 Snowflake의 기능을 활용하여 Snowflake 내에서 직접 Streamlit 코드를 작성할 수 있습니다.
Streamlit은 Snowflake에 소유되어 있나요?
아닙니다, Streamlit은 독립적인 오픈 소스 프로젝트로 Snowflake에 소유되어 있지 않습니다. Streamlit은 데이터 과학 커뮤니티에서 인터랙티브 웹 앱을 구축하기 위해 널리 사용되는 반면, Snowflake는 클라우드 기반 데이터 플랫폼입니다.
Python 및 Streamlit을 위한 Snowpark란 무엇인가요?
Snowpark는 다양한 프로그래밍 언어로 코드를 작성할 수 있는 Snowflake의 기능입니다. Python을 위한 Snowpark는 사용자가 Python 코드를 작성하고 Snowflake의 데이터 처리 기능과 통합할 수 있게 해줍니다. Snowflake 내에서 Streamlit은 Python용 Snowpark를 활용하여 사용자가 Snowflake 내에서 직접 Streamlit 코드를 작성하고 대화식 데이터 애플리케이션을 만들 수 있게 합니다.