개요
2024.06.14-Snowflake 란에서 Snowflake에 대해서 간단히 적어보았는데, 이번 글에서는 Snowflake의 구조에 대해서 적어보려고 한다.
구조
Snowflake는 크게 4개 계층 구조로 구성되어 있다.
기존에는 클라우드 서비스, 컴퓨팅, 스토리지 계층으로 구성되어 있었는데, 비교적 최근에 snowgrid라는 기능이 추가된 것 같다.
그리고 아주 최근에는 AI 관련 계층이 하나 더 추가된 것처럼 보이는데…… 이 부분은 잘 몰라서 다루지 않으려고 한다.
각 계층에 대해서 적어본다.
Snowgrid
지역과 클라우드에 걸쳐 비즈니스 생태계를 상호 연결하는 Snowflake의 크로스 클라우드 기술 계층
ETL 없이 데이터 복제본 하나로 데이터를 쉽게 공유하고 협업할 수 있게 하는 플랫폼이다. Snowgrid는 클라우드 간 거버넌스 제어와 유연한 정책을 자공하여 최신 데이터 공유 및 협업을 보장한다.
Cloud Services
로그인부터 쿼리 전달까지 Snowflake 작업을 조율 서비스의 모음
사용자 요청을 처리하기 위한 Snowflake의 여러 구성 요소를 묶은 것으로, 인증, 인프라 관리, 메타 데이터 관리, 쿼리 분석 및 최적화, 접근 제어 등의 서비스를 관리하다.
Elastic Multi-cluster Compute
Snowflake라 클라우드 공급자로부터 할당한 여러 컴퓨팅 노드로 구성된 컴퓨텅 클러스터
Snowflake는 컴퓨팅 리소스 클러스터를 가상 웨어하우스라고 하는데, 사용자는 웨어하우스를 통해 Python, SQL, Java 등의 언어로 데이터를 다룰 수 있다. 즉, 사용자의 요청을 수행하는 컴퓨터라고 할 수 있다.
Optimized Storage
Snowflake에 적재한 데이터가 저장되는 데이터 저장소
Snowflake는 데이터를 최적화되고 압축된 열 형식으로 재구성하여 클라우드 저장소에 저장한다. 그리고 Snowflake는 유기적 구성, 파일 크기, 구조, 압축, 메타데이터, 통계 등 데이터 저장 방법과 관련된 모든 영역과 Snowflake가 다루는 데이터 저장소 영역을 관리한다. 사용자는 Snowflake가 저장한 데이터 객체를 직접 접근하는 대신 Snowflake 상에서 SQL 쿼리를 통해서만 접근할 수 잇다.
참고 문서
https://medium.com/snowflake/snowflake-building-a-data-cloud-8995627ce785
https://www.getbluesky.io/glossary/what-is-snowgrid