[전공자가 써본 Snowflake] Snowflake란? | 주요 기능, 장단점
Snowflake란?
클라우드 기반 데이터 웨어하우징
Snowflake란 클라우드 기반의 가상 웨어하우스를 제공하는 서비스이다. 이는 의사결정을 위한 데이터들을 저장하는 중앙저장소의 역할을 한다.
쉽게 말하면 데이터를 저장하고 관리하는 서비스이다. 데이터 플랫폼을 SaaS(서비스로서의 소프트웨어)로 제공하여 따로 관리를 위한 리소스가 들지 않는다. 또한 중앙집중식 관리 방식을 사용하여 ETL 과정 없이 데이터 원본에 직접 접근하여 작업할 수 있다.
Snowflake는 워렌 버핏이 투자한 기업으로 많이 알려져있다. 나도 사둘걸...
Snowflake 주요 기능 6가지

• 데이터 엔지니어링(Data Engineering)
정형/비정형/반정형 데이터 형태 모두 지원, 탄력적 파이프라인 설계을 통해 성능은 높이고 비용은 절감
SQL 및 Snowpark를 통해 확장 가능한 파이프라인 구축
데이터 엔지니어링에서 가장 주목할 부분은 데이터 형태 지원이다. 정형/비정형/반정형 데이터 형태를 모두 지원한다. 소셜 미디어, 이미지 파일, 문서 스캔본, 콜센터 녹음 같은 데이터도 저장할 수 있다고 한다.
• 데이터 레이크(Data Lake)
모든 데이터를 단일 플랫폼에서 관리하기 때문에 데이터 사일로에서 자유롭다
데이터 레이크는 사용하는 모든 데이터를 저장하는 장소이다. Snowflake는 정형/비정형/반정형 데이터를 저장할 때, 분리된 플랫폼이 아니라 단일 플랫폼에서 관리한다. 따라서 일반적으로 각 플랫폼에서 동시에 데이터를 사용하려고 할 때 발생하는 데이터 사일로 문제가 생기지 않는다.
• 데이터 웨어하우스(Data Warehouse)
JSON, XML등 모든 데이터 형태를 즉시 쿼리 가능한 원본 형태로 저장 가능
웨어하우스의 크기를 즉시 확장하거나 축소 가능
데이터 웨어하우스로써의 역할을 보면, 가장 매력적인 부분은 웨어하우스 크기 조정이다. 웨어하우스의 크기를 원하는 즉시 변경 가능하다. 이를 통해 유동적으로 작업 조건에 따라 웨어하우스를 변경해가며 최적의 사이즈로 작업할 수 있다. 리소스와 작업 효율 사이의 균형을 자유롭게 조절할 수 있는 것이다.
• 데이터 사이언스(Data Science)
Snowflake 직접 사용하면서 데이터 사이언스 관련된 기능을 자주 사용하진 않았다. 내가 매력적으로 본 기능은 쿼리 결과를 간단한 플롯이나 히스토그램으로 바로 볼 수 있는 기능이었다. 이 기능을 통해 쿼리나 테이블에 문제가 있거나, 대략적인 분포를 파악해야 할 때 매우 빨리 해결할 수 있었다.
• 데이터 어플리케이션(Data Applications)
멀티 클러스터를 사용하여 동시 사용자나 워크로드에도 성능 저하 없음
인프라 복잡성에 대해 고민할 필요 없음
멀티 클러스터라는 기능으로 동시에 작업을 병렬적으로 처리할 수 있다. 멀티 클러스터를 3개 사용하면, 3명의 동시 사용자가 각각 작업을 수행해도 전혀 성능 문제가 발생하지 않는다. 멀티 클러스터를 많이 사용하면 그만큼 비용 문제가 생기긴 하지만, Snowflake는 리소스를 투자하기만 하면 무궁무진한 성능을 보여준다는 생각이 들었다.
• 데이터 교환(Data Sharing)
Snowflake는 매우 파워풀한 공유 기능을 가지고 있다고 한다. 앞서 말한 중앙집중식 관리를 사용하여 데이터를 공유하기 때문이다. 기존의 데이터 공유 방식은 대부분 A가 B에게 데이터를 공유하면 B는 데이터의 복사본을 갖게 되는 형식이었다. 이렇게 되면 원본 데이터가 업데이트 되어도 B가 가진 복사본에는 영향을 줄 수 없다. 하지만 Snowflake에서는 A가 B에게 데이터를 공유하면 B는 원본 데이터에 대한 접근 권한을 갖게 되는 형식으로 공유가 이루어진다. 따라서 A와 B가 같은 데이터를 보고 있는 것이다. 사실 우리나라에는 아직 Snowflake로 데이터를 공유하기에는 어려움이 있지만, 추후에 점유율이 높아지고 파트너사가 많아지면 아주 유용한 기능일 것 같다.
정리
Snowflake는 새로운 세대의 데이터 플랫폼으로 정말 많은 장점을 가지고 있다. 빠르고 유연한 데이터 스토리지부터 중앙집중식 관리, 멀티 클러스터, 파워풀한 공유 기능까지 데이터 실무에서 겪고있는 이슈들에 대한 실질적인 솔루션이다. 개인적으로 사용성도 좋다고 느꼈다. AWS와 Google Bigquery가 많은 자리를 차지하고 있지만 Snowflake도 점점 자리를 잡을 수 있을 거라고 생각한다.