본문 바로가기
Snowflake

[Snowflake] 1. Snowflake Overview and Architecture

by heed159 2023. 6. 9.

Snowflake란?

Snowflake란 데이터 저장, 데이터 처리부터 시각화, 머신러닝까지 한 번에 할 수 있는 클라우드 기반 통합 데이터 플랫폼이다.

 

Traditional Data Architecture

기존의 데이터 아키텍쳐는 아래와 같다.

 

 

여러 데이터 소스들로부터 데이터를 가져와 데이터 수집/적재, 전처리, 정규화 및 집계, 분석, 시각화 등의 단계에 따라 각 S/W 시스템을 각각 구축하고 관리해야 한다. 또한 각 시스템마다 데이터 최신화에 대한 여러 관리 비용들도 발생할 것이다.

이러한 분리된 아키텍쳐에 대해 각 시스템과 데이터의 구축 및 관리, 확장에 대한 비용 이슈를 해결하기 위해 Snowflake가 등장했다.

 

Modern Data Architecture with Snowflake

다음은 Snowflake Cloud Data Platform의 아키텍쳐이다.

 

 

Snowflake Cloud Data Platform은 데이터의 Source와 데이터를 소비 하는 입장 사이에서 Data Warehouse, DataLake, Data Engineering, Data App, Data Science 모든 것을 제공한다. 이로 인해 소비자는 사일로화 된 데이터가 아닌 통합 데이터를 snowflake라는 하나의 플랫폼을 통해서 제공받고, 그 안에서 새로운 데이터를 만들 수 있다.

 

Snowflake 특징

Snowflake는 아래와 같은 특징이 있다.

 

  • 완전한 클라우드 네이티브 아키텍처 : Snowflake는 클라우드에 최적화된 완전한 클라우드 네이티브 아키텍처를 가지고 있다. 이는 클라우드 특성상 가변적인 수요에 대응할 수 있고 클라우드의 유연성과 확장성을 최대한 활용할 수 있도록 설계되었다는 것을 의미한다.
  • 분리된 컴퓨팅과 스토리지 레이어 : Snowflake는 컴퓨팅과 스토리지를 분리된 레이어로 구성하여 작업 부하와 데이터 저장을 분리한다. 이로 인해 데이터 처리 속도와 효율성이 향상되고 스토리지와 컴퓨팅 비용을 최적화할 수 있다.
  • 즉시 사용 가능한 데이터 : Snowflake는 데이터 로딩과 변환을 위한 ETL(Extract, Transform, Load) 프로세스를 필요로 하지 않는다. 대신 데이터는 즉시 사용 가능하며 쿼리와 함께 사용될 때 자동으로 변환된다. 이는 데이터 처리 시간을 단축하고 사용자들이 빠르게 데이터를 분석할 수 있도록 해준다.
  • 뛰어난 보안 기능 : Snowflake는 다양한 보안 기능을 제공한다. 데이터 암호화, 네트워크 보안, 인증 및 권한 부여, 이력 추적 등 다양한 보안 요소를 포함하고 있으며 규제 준수 및 데이터 손실 방지를 위한 기능을 제공한다.
  • 다양한 인터페이스 및 라이브러리 : Snowflake는 다양한 인터페이스 및 라이브러리를 지원하여 사용자들이 쉽게 데이터를 쿼리하고 분석할 수 있다. SQL, JDBC, ODBC, Python, R 등 다양한 프로그래밍 언어와 도구를 지원하며 간단하게 연결하여 사용할 수 있다.
  • 데이터 공유 기능 : Snowflake는 데이터를 쉽게 공유할 수 있는 기능을 제공한다. 이는 데이터 공유와 협업을 용이하게 하며 비즈니스 성과를 높이는 데 도움이 된다.
  • 경제성 : Snowflake는 사용한 만큼만 비용을 지불하도록 설계되어 있다. 이는 데이터 처리량과 사용자 수에 따라 비용이 동적으로 조정되므로 비즈니스 요구 사항에 따라 최적의 비용을 유지할 수 있다.

 

Snowflake Architecture

 

Snowflake 아키텍쳐는 그림과 같이 안쪽부터 중앙 집중식으로 모든 데이터가 저장되는 Storage Layer, Mulit Cluster로 서비스의 요청들을 수행하는 Compute Layer, 서비스들을 Scale-out 할수 있는 Service Layer 3가지 레이어로 구성되어 있고 이는 AWS, Azure, GCP 3가지 클라우드에서 실행된다.

각 레이어에 대한 특징들을 간략히 알아보자.

 

Storage Layer

Optimized Storage로 컴퓨팅과 완전히 분리되어 있는 통합/단일 저장소 계층이다.

  • 평균 압축률 : 70~90%
  • 컬럼형 스토리지
  • 자동으로 데이터 암호화
  • Encoding 지원
  • Native 반정형 데이터 지원
  • Time Travel
  • Zero-copy Clone

 

Compute Layer

Elastic Performance Engine으로 저장소와 완전히 분리되어 있는 컴퓨팅을 위한 가상 웨어하우스 계층이다.

  • 워크로드 유형 별 격리된 실행 환경
  • Elastic : 필요 시점에 즉시 실행
  • Scale up : 복잡한 쿼리 성능 개선
  • Scale out : 지연 없는 동시 처리
  • Scale across : 워크로드 간 리소스 경합 현상 방지
  • 비용 효율적인 구조 : WH 자동 시작 및 중지 (초 단위 비용 청구)
  • 모든 사용자와 기술 지원 : SQL, Java, Python, Scala

 

Service Layer

Intelligence Infrastructure인 완전 관리형 서비스로서 자동화를 통해 위험을 줄이고 효율성을 개선하여 사용자가 중요한 일에 더욱 집중할 수 있도록 도와주는 계층이다.

  • 쿼리 최적화 수행
  • 메타정보 관리 계층: 캐쉬
  • 용량 제한 없는 Result 캐쉬
  • SERVERLESS 기능
    • Auto Clustering
      • Search Optimization
      • Meterialized Views
      • Query Acceleration
      • Snowpipe

 

이러한 특징, 장점들로 인해 Snowflake는 다른 클라우드 데이터 웨어하우스와 구별되는 면이 있으며 대규모의 데이터 처리와 다양한 데이터 타입을 다루는 환경에서 선호되는 선택지 중 하나이다.

물론 Google BigQuery, AWS Athena, AWS S3, Delta Lake 등의 다른 서버리스 쿼리 서비스 및 데이터 웨어하우스 서비스들도 고성능, 고가용성, 보안성, 비용 효율성 등 다양한 장점들을 제공한다. 그러나 Snowflake는 이러한 장점들을 보다 강화한 아키텍쳐와 기능들을 제공하여 구별되는 특징들을 가지고 있다. 또한, Snowflake는 데이터 공유와 관리, 유지보수 등의 기능들을 통해 사용자들의 요구에 더욱 맞춘 서비스를 제공할 수 있다.

결국, 선택할 데이터 웨어하우스는 사용자의 요구사항과 운영환경에 따라 다를 것이다. 이에 따라 다양한 클라우드 데이터 웨어하우스를 비교해보고, 해당 서비스의 장단점을 파악한 후 최적의 선택을 할 필요가 있다.

'Snowflake' 카테고리의 다른 글

[Snowflake] 3. Compute Layer  (0) 2023.06.09
[Snowflake] 2. Storage Layer  (1) 2023.06.09
Snowflake 프로젝트 사전 준비 - 2  (0) 2023.05.23
Snowflake 프로젝트 사전 준비 -1  (0) 2023.05.23
Snowflake PoC  (1) 2023.05.23