[Snowflake] 스노우플레이크란?(1)

Jaewon Lim·2025년 2월 2일
1

Snowflake❄️

목록 보기
1/7

데이터 웨어하우스란?

의사결정 지원 시스템으로 데이터를 저장, 처리, 분석 하도록 설계된 클라우드 기반 데이터베이스 시스템이다. 데이터 웨어하우스는 비즈니스 인텔리전스(BI), 데이터 마이닝, 에측 분석 등 다영한 분석 작업을 수행하는 데 사용된다.
최근 경영, 마케팅, 판매, 고객서비스 등 다양한 분야에서 데이터 활용이 중요해 지고 있기 때문에 데이터 웨어하우스 도입 또한 빠르게 증가하고 있다.
현재 시장에서 가장 인기 있는 데이터 웨어하우스 서비스는 클라우드 기반의 구글 빅쿼리, 아마존 레드시프트, 스노우플레이크 등이 있다.

스노우플레이크란?

클라우드 기반의 데이터 웨어하우스 서비스로, 데이터를 저장, 처리, 분석하는 현대적인 방법을 제공한다. 전통적인 데이터 웨어하우스와 달리, Snowflake는 클라우드 인프라 위에 구축되어 있어, 사용자는 하드웨어 관리나 소프트 웨어 업데이트에 신경 쓸 필요 없이 데이터에 집중할 수 있다.

장점

1. Scaling Made Simple

클라우드 기반 특성으로, 크기 조정을 쉽게 늘리거나 줄일 수 있다. 그래서 변동하는 데이터 필요성이 있는 비즈니스에 이상적이다. 즉, 비즈니스가 데이터 처리 요구사항이 변화함에 따라 필요한 리소스를 손쉽게 늘리거나 줄일 수 있도록 하는것을 말한다. 예를 들어, 사용자의 수가 증가하거나 데이터 처리 필요성이 늘어날 때, 기업들은 추가적인 서버 용량이나 컴퓨팅 파워를 쉽게 추가할 수 있다. 반대로, 요구 사항이 줄어들 때는 이러한 리소스를 줄여 비용을 절약한다.

2. Performance that Shines

큰 데이터셋에서도 매우 뛰어난 성능을 발휘하도록 만들어졌다. 그 결과로 기업들은 데이터에서 쉽고 빠르게 인사이트를 얻을 수 있다.

3. Budget-Friendly Brilliance

사용하지 않는 것에 대해 비용을 지불하지 않는다. 스노우플레이크의 사용량 기반 요금제를 사용하면 사용하지 않는 자원에 대한 거대한 비용 부담이 없다.

4 Data Security

암호화 및 접근 제한과 같은 보안 기능을 통해 데이터를 보호한다.

5. Data Flexibility

어떤 산업, 비즈니스 크기든 사용할 수 있다. 거래 기록, 의료 데이터 또는 제품 재고 처리에 이르기까지, 어떤 데이터 유형의 특성에도 맞게 자동으로 구조를 수정한다. 이는 효율적인 데이터 저장, 처리, 분석을 보장한다.

경쟁사

구분구글 빅쿼리스노우 플레이크아마존 레드 시프트마이크로소프트 애저 시냅스
비용최초 1TB/월 저장 비용 무료로 데이터 용량이 크지 않다면 가장 저렴데이터 저장 고정비 $23-$50/월 + 분석-계산 비용 별도 청구저장과 분석 비용이 가장 비쌈일반적인 데이터 저장 및 처리 비용적용
데이터 형식JSON, XML 기반 반정형 데이터 및 SQL 정형 데이터 지원JSON, XML, Avro, Parquet등 가장 다양한 형식 지원PostgreSQL 기반의 관계성 데이터를 JSON으로 지원다양한 데이터 형식 및 데이터베이스 지원
아키텍처데이터 저장과 계산을 분리하여 빠른 속도 제공데이터 저장과 계산이 분리되고, 병렬 계산이 가능해서 속도가 빠름데이터 양이 많은 경우 처리 속도가 느려질 수 있음고성능 분석 및 대규모 처리 지원
확장성사용하는 만큼 자동으로 용량 조절하여 편리함데이터가 매우 많을 때는 가장 적합하다는 평데이터 적응성과 확장성에 제한높은 확장성과 자동 스케일링 지원
사용 환경구글 클라우드 내에서만 사용 가능다양한 환경에서 사용 가능아마존 웹서비스 내에서만 사용 가능애저 클라우드 플랫폼 내에서 사용 가능

1. 공통점

  • 클라우드 기반 : 물리적 서버가 없는 클라우드 기반 서비스
  • SQL 쿼리 : SQL쿼리를 사용하여 데이터 처리
  • 데이터 분석 : 데이터 분석, BI, 머신러닝 등 다양한 분석 작업을 수행

2. Amazon Redshift

  • 아마존 웹 서비스(AWS)의 지원을 받으며, 데이터 처리와 저장을 확장 가능하게 제공하여 AWS 생태계를 사용하는 기업들에게 인기가 많다. AWS 서비스와의 연동이 장점이다.
  • 대용량 데이터를 가장 효율적으로 다룰 수 있음
  • 가장 비쌈
  • 복잡한 쿼리를 작성하기 어려움
  • JSON 형태만 지원해서 다양한 DB연동이 어려움

3. Google BigQuery

  • 빠른 쿼리 처리 능력과 GCP 서비스와의 쉬운 상호 작용을 자랑하며, 서버리스 설계와 사용량 기반 요금 모델로 유연성과 비용 효율성을 찾는 기업들에게 매력적이다.
  • JSON, XML 기반 반정형 데이터 및 SQL 정형 데이터 지원
  • 서버리스 아키텍처 : 서버 관리가 필요 없어서 운영이 간편
  • 지역 변경 불가 : 지역으로 구분된 데이터 저장소를 변경할 수 없음. 변경하려면 새로운 프로젝트를 생성해서 복사하거나 이전할 수 있지만, 별도 비용이 발생
  • 지역 간 통합 분석 불가 : 2개 이상 지역에 저장된 데이터셋을 통합하여 분석할 수 없다. 1개 지역으로 데이터를 모아서 분석해야 함

비용

스노우플레이크의 총 비용은 데이터 전송, 저장소, 컴퓨팅 리소스를 사용하는 합계이다.

1. 컴퓨팅 리소스

1.1 가상 웨어하우스 컴퓨팅(Virtual Warehouse)

데이터를 로딩하고 쿼리를 실행하고 다른 DML 작업을 수행할 때 크레딧을 사용하는 사용자 관리 컴퓨팅 리소스이다. 초당 청구(웨어하우스가 시작될 때마다 최소 60초)를 사용하므로 웨어하우스는 능동적으로 작동할 때 실제로 소비하는 크레딧에 대해서만 요금이 청구된다.

  • 회사가 매일 수행하는 대량의 변환 작업을 위해 큰 사이즈의 가상 웨어하우스를 사용하여, 짧은 시간 내에 작업을 완료할 수 있다.

1.2 서버리스 컴퓨팅(Serverless)

가상 웨어하우스가 아닌 스노우플레이크 관리 컴퓨팅 리소스를 사용하는 검색 최적화 및 Snowpipe 와 같은 기능이 있다. 비용 최소화를 위해, 이러한 서버리스 컴퓨팅 리소스는 자동으로 크기가 조정되며, 필요한 경우 워크로드에 대하여 확장하거나 축소한다.

1.3 클라우드 서비스 컴퓨팅(Cloud Service)

아키텍처의 클라우드 서비스 계층은 인증, 메타 데이터 관리, 액세스 제어와 같은 백그라운드 작업을 수행할 때 크레딧을 사용한다. 클라우드 서비스의 계층의 사용 요금은 클라우드 서비스 리소스의 일일 사용량이 일일 웨어하우스 사용량의 10%를 초과하는 경우에만 청구된다.(거의 발생x)

2. 저장소 리소스

계정에서 매일 저장되는 평균 디스크 바이트 수를 기준으로 매월 계산됨

3. 데이터 전송 리소스

데이터를 계정으로 가져오기 위한 데이터 수신 요금을 청구하지 않지만 데이터 송신 요금은 청구된다.
스노우플레이크에서 같은 클라우드 플랫폼의 다른 리전이나 완전히 다른 클라우드 플랫폼으로 데이터를 전송할 때 바이트당 요금을 청구한다.

비용 관리 프레임워크

비용 관리 프레임워크를 사용하면 스노우플레이크에서 발생하는 비용을 효과적으로 관리 가능하다.

1. 시각화(Visibility)

비용 패턴을 이해할 수 있고, 누가, 어떤 목적으로 비용을 발생시킨지 확인할 수 있다.

  • Dashboard -> Admin -> Cost Management 에서 확인가능

2. 모니터링(Control)

예산의 한도와 가드레일을 설정하고 모니터링 할 수 있다.

  • Resource Monitor 구성
    • 사용자 관리 가상 warehouse 및 cloud service 계층 별 크레딧 사용 모니터링 가능
    • 월별 한도 설정 및 사용자 지정 한도 설정하여 관리 가능
    • 지정한 임계값이 도달하면 이메일 알림 / Warehouse를 선택적으로 일시중지 기능 제공

Auto-Suspend & Auto-Resume duration 가이드

  • 스노우플레이크는 모든 쿼리 결과 캐싱
  • 반복적인 쿼리를 사용하는 쿼리 사용의 경우 캐시 사용시 성능 부분에 많은 혜택 제공
  • BI 및 select 쿼리 사용의 경우 Auto-Suspend 10분 이내로 설정 권장
  • DevOps, DataOps 및 DataScience 워크로드의 경우 약 5분 이내로 설정 권장

Auto-Suspend & Auto-Resume Check Query 가이드

-- Warehouse 목록 조회
SHOW WAREHOUSES;
-- Resource Monitor를 사용하지 않는 웨어하우스 조회
SHOW WAREHOUSES;
SELECT "name" AS WAREHOUSE_NAME, "size" AS WAREHOUSE_SIZE
  FROM TABLE(RESULT_SCAN(LAST_QUERY_ID()))
 WHERE "resource_monitor"=='null';
-- Auto suspend(자동중단)가 1시간 이상인 웨어하우스 조회
SHOW WAREHOUSES;
SELECT "name" AS WAREHOUSE_NAME, "size" AS WAREHOUSE_SIZE
  FROM TABLE(RESULT_SCAN(LAST_QUERY_ID()))
 WHERE "auto_suspend" >= 3600;  // 3600seconds=1hour
-- Auto resume값이 False인 웨어하우스 조회
SHOW WAREHOUSES;
SELECT "name" AS WAREHOUSE_NAME, "size" AS WAREHOUSE_SIZE
  FROM TABLE(RESULT_SCAN(LAST_QUERY_ID()))
 WHERE "auto_resume" = 'false';

3. 최적화(Optimization)

적절한 Warehouse tpye 선택, 크기 조정에 따라 최적화 가능
가상 warehouse type : 일반형(standard), 대량메모리(snowpark optimized warehouse)

결론

최근 가장 빠르게 확장되고 있는 서비스는 스노우플레이크이다. 다른 클라우드 서버와 연결이 가능하고, 다양한 분석 툴과 연계도 쉬운편이다. 또 구글, 아마존 생태계 내에 갇혀 있지 않아도 되는 것도 장점이다.

기업의 상황과 여건이 다르기 때문에 어느 시스템 하나가 정답이 될 수 없다. 데이터 웨어하우스를 새로 구축하고 이전한다면 여러가지 상황을 고려해야 한다는 점이다.

  • 어떤 종류의 데이터를 저장할 것인가?
  • 기존 데이터 시스템과 어떻게 결합/병합할까?
  • 얼마나 유동적으로 데이터 사이즈가 변화할까?
  • 얼마나 빠른 속도 데이터 처리가 필요할까?
  • 비용이 얼마들까?

반대로 만약 회사에서 주로 쓰는 서비스가 GA4라면 굳이 다른 서비스를 연결하기 보다는 빅쿼리를 쓰는게 쉽고 빠르다. 이럴 경우 굳이 스노우플레이크를 사용해야할까? 그래서 데이터 웨어하우스를 고를 때 조직의 데이터 활용 기능과 시스템, 확장 가능성 등을 고려하여 신중히 결정하자

용어 설명

🔎 가상 웨어하우스

  • 사용자가 직접 설정하고 관리하는 독립된 컴퓨팅 클러스터이다. 사용자는 웨어하우스의 크기를 선택하고, 실행 시간을 결정하며, 시용량을 기반으로 비용을 지불한다.
  • 사용 방식 : 사용자는 특정 작업이나 프로젝트에 필요한 만큼 웨어하우스의 크기를 조절하고, 웨어하우스를 시작하거나 중지할 수 있다. 이러한 컨트롤은 성능 최적화와 비용 관리에 유리하게 작용할 수 있다.
  • 종류 : 일반형(standard), 대량메모리(snowpark optimized warehouse)
  • 비용 : 컴퓨팅 리소스의 사용에 따라 비용
  • 예시 : 여러 부서에서 동시에 다양한 데이터 작업을 해야하는데, 각 부서는 독립적으로 작업을 수행할 수 있어야한다. 이때, 각 부서는 자신들의 '가상 웨어하우스'를 할당받아 사용할 수 있다. 실제 물리적인 무언가가 아니라 필요한 컴퓨팅 리소스(CPU, 메모리 등)를 클라우드에서 제공받는 것이다. 부서별로 각각의 가상 웨어하우스를 사용함으로써, 한 부서에서 데이터를 많이 처리하더라도 다른 부서의 작업에 영향을 주지 않고, 모두가 원활하게 자신들의 데이터를 작업할 수 잇다.

❓특이사항

1. 가상 웨어하우스

스노우플레이크에서 웨어하우스는 데이터를 저장하지 않는다. 대신 데이터를 처리하는 데 사용하는 작업 인력에 해당한다. 즉, 컴퓨팅 리소스 클러스터로 SELECT, DML 작업을 수행하기 위해 필요한 CPU, 메모리와 같은 컴퓨팅 리소스를 제공한다.
가상 웨어하우스는 필요에 따라 웨어하우스의 크기를 변경(Scaling Up/Down)하거나, 웨어하우스의 수를 변경(Scaling In/Out)할 수 있다)

참고 자료

https://docs.snowflake.com/ko/user-guide/cost-understanding-compute
https://nutanxt.com/how-snowflake-is-reshaping-data-management-and-business-strategy/
https://medium.com/@fpatano/how-best-to-use-databricks-fabric-and-snowflake-4b2d1e48afe9

0개의 댓글