피드로 돌아가기
Lightweight ETL on AWS Lambda Using DuckDB and Snowflake Connector
Dev.toDev.to
Database

AWS Lambda와 DuckDB 조합으로 구축한 저비용 고효율 Snowflake ETL 파이프라인

Lightweight ETL on AWS Lambda Using DuckDB and Snowflake Connector

Aki2026년 4월 4일8intermediate

Context

Snowpipe는 자동 데이터 수집에 유용하나 복잡한 필터링과 데이터 변환에 한계 존재. 전처리 과정이나 다중 이벤트 통합이 필요한 경우 유연한 처리 환경 필요.

Technical Solution

  • S3 이벤트 트리거 기반의 AWS Lambda를 활용한 서버리스 ETL 아키텍처 설계
  • OLAP 전용 임베디드 엔진인 DuckDB를 Lambda 내부에 탑재하여 메모리 기반의 고속 데이터 처리 구현
  • DuckDB의 httpfs 확장 기능을 통해 S3에 저장된 Parquet 파일을 직접 읽고 SQL 기반으로 필터링 수행
  • Snowflake Connector for Python을 이용해 전처리된 데이터를 Snowflake 대상 테이블로 전송
  • Catalog-Linked Database(Iceberg) 작성 시 write_pandas 함수가 임시 스테이지 생성 문제로 실패하는 제약 확인
  • write_pandas 대신 INSERT 문을 직접 사용하거나 별도 데이터베이스에 스테이지를 생성하는 우회 전략 적용

Key Takeaway

임베디드 분석 엔진인 DuckDB를 서버리스 환경에 결합하면 무거운 인프라 없이도 유연하고 가벼운 데이터 전처리 파이프라인 구축 가능. 특히 Iceberg 테이블의 관리 방식(Snowflake-managed vs Catalog-Linked)에 따라 데이터 적재 전략을 다르게 설계하는 정밀함이 필요함.


Snowflake Iceberg 테이블 적재 시 write_pandas 실패하면 INSERT 문 직접 실행 또는 외부 스테이지 경유 방식을 검토할 것

원문 읽기