본문 바로가기

Research

DW Solution Snowflake

Snowflake?

- SaaS 플랫폼으로 제공되며 AWS, Azure, GCP 세가지 공용 클라우드 서비스에 사용 가능한 데이터웨어 하우징 솔루션

- 기존의 DB나 빅데이터 플랫폼 소프트웨어(대표적으로 하둡)을 사용하지 않는다는 특징이 있음

- 컴퓨팅과 스토리지가 분리되어 독립적으로 확장, 축소 가능하여 비용 절감 (비용도 따로 과금)

- 데이터는 스토리지에 저장하고 쿼리를 실행할 때 캐시하여 데이터를 컴퓨팅 리소스에 가깝게 가져옴

- 데이터 로드 중, 후 모두 변환을 지원함

- 클라우드 별 가격 정책을 따라가며 region별로 비용이 달라짐

 

Snowflake 아키텍처

세 가지 주요 계층으로 구성되는 Snowflake 아키텍처

- Storage : 중앙 저장소(Database storage) 사용 (데이터 관리 용이)

- Data processing : 클러스터의 각 노드가 전체 데이터의 일부를 로컬에 저장하는 대규모 병렬 컴퓨팅 클러스터를 활용함 (성능, 확장에 이점)

- 위의 두 구조를 하이브리드로 사용하여 성능과 데이터 관리의 이점을 지원

- Cloud services : snowflake의 설정, 활동 조정하는 서비스를 모아 클라우드 서비스로 분류. 인증, 인프라관리, 메타데이터관리 등 이 있으며 해당단의 서비스들은 CSP(클라우드 공급자)로부터 snowflake가 프로비저닝한 컴퓨팅 인스턴스에서 실행

 

BigQuery와 Snowflake와의 차이

- BigQuery는 Google에서 제공하는 솔루션으로, Dremel(Compute) 쿼리 엔진을 기반으로 Borg(Orchestration), Colossus(Storage) 등의 클라우드 기술을 지원 받으며 GCP 기반

BigQuery Architecture

- 그것에 비해 Snowflake는 클라우드 인프라에 구애받지 않고, 멀티클라우드에서 사용 가능

- Snowflake를 사용하면 관리자가 컴퓨팅 및 스토리지 리소스를 독립적으로 확장 및 축소할 수 있는데, BigQuery는 '서버리스'여서 모든 확장 문제는 자동으로 처리

- 가격 책정 모델이 달라 일반적으로 BigQuery는 가끔씩 폭발적인 양의 쿼리를 실행할 때, Snowflake는 지속적이고 안정적인 사용 패턴에 적합

 

그렇다면... BigQuery와 함께 각광받는 DW Solution으로 회자되는 이유?!

- 둘 다 대규모 조직의 분석 요구 사항을 지원할 수 있는 엔터프라이즈 급 데이터웨어 하우스이며 클라우드 전용 솔루션

- 관리 오버헤드가 크지 않다! BigQuery는 서버리스 형태로 사용자 친화적이며 대규모 데이터 워크로드를 처리할 때 필요한 추가 컴퓨팅 리소스를 자동으로 프로비저닝. Snowflake는 사용자가 컴퓨팅과 스토리지 리소스를 독립적으로 확장/축소 가능하고 자동성능튜닝과 모니터링을 지원. 기존에 AWS Redshift가 있지만 snowflake가 각광받게 된 것이 바로 이것.

=> 기존의 하둡이나 Spark와 같은 빅데이터 솔루션의 경우에는 인스톨, 설정, 클러스터의 유지 보수가 보통 일이 아니며 운영 조직까지 필요할 정도의 많은 리소스가 소요되지만 BigQuery와 Snowflake는 소프트웨어의 인스톨, 설정, 클러스터 과정이 없으므로 운영 조직이 필요 없다.

※ AWS RedShift는 성능 튜닝을 직접 해야하며, Snowflake는 자동으로 지원함.