[Snowflake] Snowpark

차지예·2026년 6월 3일

Snowflake

목록 보기
14/49
post-thumbnail

1️⃣ Snowpark란? (Domain 1 — 아키텍처)

항목내용
정의Python / Java / Scala 코드로 Snowflake 내부에서 직접 데이터 처리하는 라이브러리
핵심 원칙데이터를 외부로 이동하지 않고 Snowflake 서버 내에서 실행 (Pushdown)
지원 언어Java, Python, Scala (3개 고정 암기!)
실행 환경Snowflake의 탄력적(Elastic) 서버리스 엔진 위에서 실행
💡 암기: "Snowpark = 코드를 Snowflake 안으로 가져간다"

2️⃣ DataFrame — 핵심 추상화 객체 (Domain 5 — 데이터 변환)

항목내용
DataFrame이란데이터를 표현하고 조작하는 Snowpark의 핵심 객체
실행 방식Lazy Evaluation — 명령을 모아두다가 액션 호출 시 한번에 실행
실행 트리거.collect(), .show(), .write() 등 액션 메서드 호출 시
SQL 변환DataFrame 연산이 자동으로 SQL로 변환되어 Snowflake로 전송
# DataFrame 생성 → 아직 실행 안 됨 (설계도)
df = session.table("orders").select(col("id"), col("amount"))

# .collect() 호출 시 실제 실행
results = df.collect()
💡 암기: "collect() 전까지는 실행 안 된다 = Lazy"

3️⃣ UDF (User-Defined Functions) (Domain 5 — 자주 출제!)

항목내용
UDF 지원 언어JavaScript, Python, SQL, Java
Snowpark UDF 특징앱 코드 안에 인라인으로 작성 가능
실행 위치코드가 Snowflake 서버로 Push되어 서버에서 실행
장점데이터를 클라이언트로 이동할 필요 없음 → 대규모 병렬 처리 가능
# Python lambda로 UDF 인라인 작성
add_one = udf(lambda x: x+1,
              return_type=IntegerType(),
              input_types=[IntegerType()])
💡 암기: "UDF도 Snowflake 서버 안에서 실행"

4️⃣ Stored Procedures (Domain 5 — 자주 출제!)

항목내용
지원 언어JavaScript, Snowflake Scripting, Python (via Snowpark)
Snowpark Stored ProcPython으로 작성, Snowflake 내부에서 실행
UDF와 차이점Stored Proc은 DDL/DML 실행 가능, UDF는 값 반환에 특화
💡 암기: "Stored Proc = Python도 가능 (Snowpark 덕분에)"

5️⃣ Snowpark vs Spark Connector 비교 (자주 출제!)

비교 항목SnowparkSpark Connector
별도 클러스터❌ 불필요✅ 필요
데이터 이동❌ Snowflake 내부 처리✅ 외부로 데이터 이동
Pushdown✅ 모든 연산 (UDF 포함)일부만
개발 환경Jupyter, VS Code, IntelliJ별도 Spark 환경
💡 암기: "Snowpark = 클러스터 없이, 데이터 이동 없이"

6️⃣ 포인트 요약

✅ 중요!!

1. 지원 언어 → Java, Python, Scala
2. 핵심 객체 → DataFrame
3. 실행 방식 → Lazy Evaluation (collect()로 트리거)
4. 연산 위치 → 항상 Snowflake 서버 내부 (Pushdown)
5. UDF 지원 언어 → JS / Python / SQL / Java
6. 별도 클러스터 불필요

✅ 포인트

문제 유형키워드
"Snowpark에서 코드가 실행되는 위치는?"Snowflake 서버 내부
"DataFrame이 실제로 실행되는 시점은?"액션 메서드 호출 시 (collect 등)
"Spark Connector 대비 Snowpark 장점은?"별도 클러스터 불필요, 모든 연산 Pushdown
"Snowpark가 지원하는 언어는?"Java, Python, Scala
"Snowpark로 UDF를 만들면 어디서 실행?"Snowflake 서버에서 실행

📊 도메인별 Snowpark 출제 비중

Domain 1 (25%) — AI Data Cloud & Architecture
  └─ Snowpark 개념, 지원 언어, Pushdown 원칙

Domain 5 (17%) — Data Transformations  
  └─ DataFrame, UDF, Stored Procedures, Lazy Evaluation

0개의 댓글