더 나은 데이터 파이프라인 구축: Snowflake에서 SQL 및 Python으로 구성 및 오케스트레이션하기

데이터 변환은 최신 데이터 운영의 핵심 엔진으로서, AI, 분석 및 애플리케이션 분야의 혁신을 이끄는 원동력입니다. 모든 효과적인 데이터 전략의 핵심 요소인 데이터 변환은 강력하고 확장 가능한 데이터 파이프라인을 구축하는 데 매우 중요합니다. 이에 Snowflake는 데이터 파이프라인을 구축 및 오케스트레이션하기 위한 제품 개선 사항을 소개해드릴까 합니다.
오늘날 빠르게 변화하는 AI 시대에 파이프라인은 다운스트림 데이터 성공의 기반입니다. 이에 따라 데이터 엔지니어는 매우 중요한 위치에 서 있으나, 많은 경우 다음과 같은 상충하는 우선순위들을 동시에 감당해야 하는 상황에 처해 있습니다.
컴퓨팅 리소스 및 인프라의 구성과 관리
서로 다른 스택 전반에 걸친 디버깅
업스트림 데이터 변경 사항 추적 및 대응
개발 민첩성 및 보안 보장
데이터 볼륨 증가(특히 비정형 데이터)와 관련된 복잡성 탐색
그리고 이러한 마찰 지점들에서 Snowflake는 그동안 탁월한 역량을 보여왔습니다. Snowflake는 지난 수년간 이러한 복잡성을 해소하는 데 집중해 왔으며, 조직 워크플로우를 간소화하고 데이터 팀이 진정으로 중요한 것, 즉 혁신 주도에 집중할 수 있도록 지원하는 플랫폼을 설계했습니다. 가공 전 원시 데이터 계층으로 더 깊이 들어가, 데이터가 소스에서 출발하여 큐레이션된 데이터 세트라는 최종 목적지에 도달하기까지 안전하게 이끌어줌으로써 데이터 엔지니어가 운영 오버헤드에 얽매이지 않고 혁신의 주체가 될 수 있도록 역량을 강화하고 있습니다.
이를 위해 Snowflake는 협업 지원 SQL 워크플로우부터 Python 기반의 복잡한 파이프라인에 이르기까지, 전체 데이터 엔지니어링 환경에서 복잡한 워크플로우를 단순화하는 새롭고 향상된 여러 기능을 발표했습니다.

SQL을 통한 데이터 파이프라인 접근성 개선
많은 조직에서 SQL 파이프라인은 데이터 변환에 가장 쉽게 접근할 수 있는 방법을 제공하여 데이터 분석가와 같은 더 넓은 범위의 팀 구성원에게 역량을 부여하고 데이터 엔지니어의 부담을 줄일 수 있습니다. SQL 숙련도에 크게 구애받지 않고 다양한 사용자가 구축할 수 있는 이러한 파이프라인은 모듈식 특성으로 인해 수백 개의 워크플로우를 확장 가능하고 안정적으로 실행할 수 있습니다. 이처럼 민주화된 접근 방식은 강력하고 적응 가능한 기반을 보장하는 데 도움이 됩니다.
Snowflake에 dbt 프로젝트 도입(PuPr 예정)
전 세계 데이터 팀들은 데이터 웨어하우스 내 SQL 및 Snowpark 데이터 변환 워크플로우에 소프트웨어 엔지니어링 모범 사례와 효율성을 적용한다는 이유로 dbt를 선호합니다. dbt를 Snowflake의 자동화 및 관리형 서비스에 직접 통합함으로써, 데이터 엔지니어는 이제 인프라를 관리하거나 여러 시스템에 걸쳐 옵저버빌리티를 연결하는 데 매달리는 대신, 이러한 파이프라인을 구축, 배포 및 모니터링하는 데 집중할 수 있습니다.
Snowflake 사용자는 이제 새로운 Workspaces 인터페이스 내에서 Snowflake에서 네이티브 방식으로 dbt 프로젝트를 생성, 업로드, 편집 및 실행할 수 있습니다(PuPr). 이러한 네이티브 통합은 개발을 간소화하고 변환된 데이터의 전달을 가속화합니다.
Dynamic Table 업데이트
Dynamic Table은 배치 및 스트리밍 파이프라인을 위한 선언적 처리 프레임워크를 제공합니다. 이 접근 방식은 파이프라인 구성을 단순화하여 자동 오케스트레이션과 연속적인 증분 데이터 처리를 지원합니다. 사용자는 DAG 시각화를 통해 포괄적인 가시성을 확보하고, 실시간 알림을 받으며, 통합된 데이터 품질 기능의 이점을 누릴 수 있어, 보다 효율적이고 신뢰할 수 있는 데이터 파이프라인 관리를 실현할 수 있습니다. 업데이트 내용에는 다음 사항이 포함됩니다.
Apache Iceberg 지원(현재 GA로 제공): Dynamic Table은 이제 Apache Iceberg 등의 개방형 테이블 형식에 대한 확장된 기능을 지원합니다. 사용자는 선언적 정의, 자동 오케스트레이션 및 증분 처리를 통해 Apache Iceberg™ 테이블(Snowflake 또는 외부 카탈로그 사용)에 대한 배치 및 스트리밍 처리 파이프라인을 구축할 수 있습니다. 결과 데이터는 모든 Iceberg 엔진으로 쿼리할 수 있습니다.
지연 시간 단축(PrPr): 수집부터 변환까지 엔드투엔드 지연 시간이 약 15초에 불과한 실시간 파이프라인을 생성합니다.
성능 개선 사항(GA): OUTER JOIN, QUALIFY RANK () = 1, 윈도우 함수 및 클러스터링된 테이블에 대한 증분 새로 고침 기능이 향상되었으며, CURRENT_TIMESTAMP 및 IS_ROLE_IN_SESSION에 대한 새로운 증분 최적화 기능이 추가되었습니다.
완전성 정의(GA): 새로운 SQL 확장 기능인 IMMUTABLE WHERE 및 INSERT ONLY는 데이터 완전성에 대한 더 많은 제어 기능을 제공합니다. 이를 통해 사용자는 업데이트 또는 삭제를 방지하고 조건에 따라 데이터 수정을 제한할 수 있으며, 마이그레이션을 위해 기존 파이프라인에서 데이터를 백필할 수 있습니다.
엔터프라이즈 Python 개발
Snowpark는 Snowflake에서 직접 데이터 파이프라인을 구축하고 규모를 확장할 수 있도록 엔터프라이즈급 Python 개발을 지원합니다. 친숙한 Python 구문과 pandas DataFrames를 사용하여 Snowflake의 탄력적인 엔진이 복잡한 변환을 원활하게 실행하므로, 대규모 데이터 처리를 효율적으로 수행하기 위해 데이터를 이동할 필요가 없습니다. Snowpark는 인프라 오버헤드 없이, 데이터 볼륨 증가와 처리 요구 사항에 대응하고 확장 가능한 Python 솔루션을 제공합니다.
pandas on Snowflake 업데이트
pandas on Snowflake는 pandas의 유연성과 Snowflake의 확장성을 통합하여 견고한 Python 데이터 파이프라인의 개발을 간소화합니다. 이번 업데이트로 가능한 사항은 다음과 같습니다.
다양한 데이터 소스와 통합: Snowflake 테이블, 뷰, Iceberg Table, Dynamic Table, 그리고 일반적인 파일 형식(CSV, Parquet, Excel, XML)에 접근하고 저장할 수 있습니다.
코드 변경 없이 pandas 파이프라인 개발: 초기 프로토타입부터 전체 프로덕션 배포까지 확장 가능한 pandas 파이프라인을 개발할 수 있습니다.
친숙한 pandas 구문 활용: Snowflake Cortex AI LLM 함수를 비롯한 Snowflake의 분석 기능을 활용하여 데이터 변환을 유연하게 수행하고 AI 기반 워크플로우를 개발할 수 있습니다.
개발자는 pandas on Snowflake를 사용하여 Iceberg Table에서 데이터를 읽고, pandas로 데이터를 변환하고, 그 결과를 동적인 Iceberg Table로 저장하여 엔드투엔드 Python 데이터 파이프라인을 구축할 수 있습니다.
Snowflake는 모든 데이터 규모에서 pandas 파이프라인을 지원하기 위해 하이브리드 실행(PrPr) 기능을 갖춘 pandas on Snowflake를 선보입니다. 이 혁신적인 신기능은 pandas 쿼리를 실행할 최적의 백엔드를 지능적으로 결정합니다. 대규모 데이터 세트의 경우 Snowflake로 푸시다운하거나, 빠른 인터랙티브 테스트 및 개발을 지원하기 위해 표준 pandas를 사용하여 인메모리로 실행합니다.

Snowpark 업데이트
Snowpark는 Snowflake 내에서 Python 및 기타 언어로 데이터 변환을 지원하여 데이터 개발 속도를 높입니다. 이러한 확장성은 Snowflake 플랫폼의 보안 및 확장성과 긴밀하게 통합되므로 개발자는 데이터 이동이나 별도의 인프라 관리 없이도 익숙한 도구를 사용할 수 있습니다.
Snowpark 실행을 통해 고객들은 기존 Spark 대비 평균 5.6배 더 빠른 성능과 41%의 비용 절감 효과를 경험했습니다. [1]
Snowpark는 이제 데이터 통합, 패키지 관리, 보안 연결 전반에 걸쳐 확장된 지원을 통해 다양한 언어로 코드를 데이터에 안전하고 효율적으로 가져올 수 있는 향상된 기능을 제공합니다. 업데이트 내용에는 다음 사항이 포함됩니다.
데이터 통합: Python DB-API 지원(PrPr)을 통해 개발자는 이제 Snowpark를 사용하여 외부 관계형 데이터베이스에서 Snowflake로 직접 데이터를 가져올 수 있습니다. Python XML RowTag Reader(PrPr)를 사용하면 간단한 rowTag 옵션을 사용하여, 중첩된 대규모 XML 파일을 로드할 수 있습니다. 사용자는 XML 문서의 관련 부분만 수집하고 다운스트림 처리를 위한 정형 테이블 형식의 출력을 받을 수 있습니다.
패키지 관리: Snowflake의 유연한 패키지 지원은 Artifact Repository(GA)를 통해 패키지 관리를 간소화하여 Snowpark 사용자 정의 함수(UDF) 및 Stored Procedure 내에서 PyPI 패키지를 손쉽게 다운로드하고 설치할 수 있습니다. 사용자 지정 패키지의 경우, 이제 네이티브 코드가 포함된 패키지를 업로드하여 UDF 또는 Stored Procedure의 일부로 가져올 수 있습니다.
Python UD(T)F(현재 GA로 제공)를 통한 파일 쓰기: 이 기능의 도입은 데이터 엔지니어링 사용 사례, 특히 UDF로 사용자 정의 파일을 병렬로 쓰는 작업이 필요한 경우에 Snowpark의 전반적인 기능을 확장합니다. 예를 들어, 함수에서 스테이지로 사용자 지정 파일(예: 모델 파일, PDF 및 이미지와 같은 비정형 파일, JSON과 같은 반정형 파일)을 쓰고, 스테이지에서 데이터 파이프라인의 일부로 파일을 변환하는 작업 등이 있습니다. 이제 행 중심의 avro 파일을 JSON 파일로 변환하고, 큰 파일을 더 작은 파일로 분할하여 다운스트림 애플리케이션의 일부로 사용할 수 있습니다.
Snowpark는 외부 데이터 소스와 엔드포인트에 더 쉽게 접근할 수 있도록 기능을 강화했습니다. 여기에는 네트워크 규칙에서 와일드카드 지원, 네트워크 규칙에서 모든 엔드포인트에 대한 '모두 허용' 접근 지원, 그리고 AWS IAM과의 통합을 통해 AWS 리소스 연결을 간소화하는 기능 등이 포함됩니다. 또한, 이제는 External Access Outbound Private Connectivity를 AWS Gov(GA로 제공), Azure Gov(GA로 제공), Google Cloud Platform(PrPr) 등의 추가적인 리전에서도 사용할 수 있습니다.
파이프라인 자동화
자동화된 오케스트레이션은 Dynamic Table과 같은 기능을 통해 변환 워크플로우에 내장되어 있으며, Snowflake Tasks를 사용한 추가적인 네이티브 지원을 통해 운영 오버헤드 없이 일관된 실행을 위한 안정적이고 확장 가능한 프레임워크를 제공합니다.
Snowflake Tasks 및 서버리스 태스크 업데이트
Snowflake Tasks와 서버리스 태스크는 오케스트레이션에서 탁월한 성능을 발휘합니다. 복잡한 워크플로우를 Snowflake 내에서 직접 실행하는 일련의 종속 SQL 구문 또는 Python 코드로 정의할 수 있으므로 외부 오케스트레이션 도구가 필요하지 않습니다. 이러한 긴밀한 통합은 관리를 단순화하고 Snowflake의 강력한 컴퓨팅 리소스를 활용하여 안정적이고 비용 효율적인 자동화를 가능하게 합니다. 지난 한 해 동안 Snowflake는 다음과 같은 네이티브 오케스트레이션 기능을 지속적으로 개선해 왔습니다.
Task Graph 개선 사항: 새로운 뷰와 알림 기능을 통해 더 풍부한 워크플로우 정의로 데이터 파이프라인을 모델링할 수 있습니다. 이제는 Task Graph가 성공적으로 완료되면 클라우드 메시징 서비스로 알림을 전송(다운스트림 작업을 트리거 수 있음)할 수 있으며, 태스크에 대한 메타데이터 정보를 포함한 태스크 실행 종속성 그래프를 볼 수 있습니다.
트리거 기반 태스크: SQL 및 Snowpark를 위한 이벤트 기반 처리를 통해 소스 테이블에 새로운 데이터가 도착하면 즉시 태스크를 실행합니다. 일정이나 가상 웨어하우스를 지정하지 않고도 태스크를 생성할 수 있습니다. 또한, 데이터 공유 또는 Directory Table(테이블, 뷰, Dynamic Table 및 Iceberg에 대한 기존의 지원 외)에서 데이터가 도착하면 태스크가 자동으로 실행되도록 설정할 수 있습니다.
저지연 태스크 스케줄러: 10초 간격으로 데이터를 처리하도록 데이터 파이프라인을 안정적으로 오케스트레이션할 수 있습니다.
최적화 및 거버넌스 제어: 서버리스 태스크의 비용 및 성능 최적화를 제어할 수 있습니다.
Snowsight에서 태스크 편집: 작업(action) 메뉴에서 기존 태스크를 편집하여, 스케줄, 컴퓨팅, 매개변수 또는 주석을 변경할 수 있습니다.
Python/JVM 자동화: 서버리스 태스크를 통해 UDF(Python 및 JVM) 및 Stored Procedure를 자동화할 수 있습니다.
Snowflake와 함께 실현하는 더욱 포괄적인 파이프라인 경험
Snowflake는 최신 데이터 운영의 핵심 엔진으로 지속적으로 진화하면서 데이터 파이프라인을 쉽게 구축하고 오케스트레이션 할 수 있는 포괄적인 제품군을 제공하고 있습니다. SQL의 접근성과 dbt의 강력한 기능에서부터 Snowpark 및 pandas를 통한 Python의 유연성 이르기까지 최근 Snowflake가 구현한 발전 사항은 데이터 엔지니어가 운영 복잡성을 극복하고 혁신을 추진하는 데 집중할 수 있도록 지원합니다. Snowflake는 코드를 데이터에 더 가깝게 가져와 워크플로우를 간소화하고 다양한 사용 사례와 스킬 세트 전반에서 성능을 향상함으로써, 오늘날 급변하고 있는 AI 중심 환경에서 데이터 잠재력을 최대한 활용할 수 있도록 데이터 팀을 지원합니다.
이 새로운 기능들에 대해 더 자세히 알아보고 싶으시다면 2025년 7월 29일에 열리는 Data Engineering Connect에 참여해 보시기 바랍니다.
미래 전망 진술
이 페이지에는 당사의 향후 제품 제공에 대한 미래 전망 진술이 포함되어 있으며, 이는 제품 제공에 대한 보장이 아닙니다. 실제 결과 및 제공 내용은 다를 수 있으며, 알려지거나 알려지지 않은 위험 및 불확실성에 영향을 받을 수 있습니다. 자세한 내용은 최신 10-Q를 참조하세요.
1 2022년 11월부터 2025년 5월까지 Snowpark와 관리형 Spark 서비스의 속도 및 비용을 비교한 고객의 프로덕션 사용 사례 및 개념 증명(POC) 기준. 모든 조사 결과는 실제 고객 데이터 기반의 실제 성과를 요약한 것이며, 벤치마크를 위해 가공된 데이터 세트를 반영하지 않습니다.