Snowflake?

CHAN LIM·2023년 12월 25일
0

Snowflake

목록 보기
1/19

Snowflake

클라우드 기반 데이터 웨어하우징 솔루션 및 소프트웨어을 제공하는 서비스


1. 특징

  • 클라우드 기술 지원
    • 클라우드 기반으로 공개 클라우드 저장소를 사용한다.
    • 무한정적인 저장용량과 연산을 가지고 있다.
  • ANSI SQL 지원
    • 즉, 모든 데이터베이스 구조를 제공
    • 트랜젝션 성격 (윈도우 함수 및 위계 함수 가능)
  • Third Party 연결 가능
    • 100여개 이상의 기술들과 연결 가능 (커넥터 개발)
    • CLI도 지원 (SnowSQL)
  • 간접 유지 비용 없음
    • 시스템 유지 및 관리가 필요하지 않다.
      • 자기 혼자 조절하기 때문이다.
    • Index나 파티션을 갖고 있지 않기에
      모든 것이 자체적으로 관리된다.
  • 온 디맨드 구조
    • 저장 또는 연산을 사용한 만큼 비용을 지불한다.
  • 유연하고 고가용성
    • 클라우드 기반이기 때문이다.
  • Time Travel
    • 시간 역행 기능
    • 데이터의 특정한 시점에 접근할 수 있게 해줘
      데이터 손실이 발생했을 때 회복할 수 있게 해준다.
  • 지속적인 데이터 로딩 가능
    • 데이터 스트리밍과 지속적인 데이터 처리를 지원한다.
  • 관리 작업이 용이
    • 유지 관리 및 그와 관련된 대부분의 작업은 알아서 처리된다.
      • 사용자 접근 관리
      • 인증
      • 데이터베이스 오브젝트 복사
  • 데이터 암호화 및 보안이 뛰어남
    • 휴면중이거나 활용중인 모든 데이터 집합들은
      AES256 강력 암호로 암호화되어 있다.
    • IP 화이트리스트MFA를 지원
    • key Rotation도 지원

2. 전체 흐름


3. Architecture

Snowflake는
공유 디스크 아키텍처비공유 아키텍처의 하이브리드 아키텍처
이다.

공유 디스크 아키텍처와 유사하게,
Snowflake는 플랫폼 내의 모든 컴퓨팅 노드에서 액세스할 수 있는 영구 데이터의 경우 중앙 데이터 리포지토리를 사용합니다.
그렇지만 비공유 아키텍처와 유사하게,
Snowflake는 클러스터 내의 각 노드가 전체 데이터 집합의 일부를 로컬에 저장하는 MPP(대규모 병렬 처리) 컴퓨팅 클러스터를 사용하여 쿼리를 처리합니다.

이러한 접근 방식을 통해,
공유 디스크 아키텍처의 단순한 데이터 관리
비공유 아키텍처의 성능 및 확장성 이점을 모두 활용할 수 있다.


3.1 Snowflake의 3계층

Snowflake는 3계층으로 구성된다.

  • 클라우드 서비스 레이어
  • 쿼리 프로세싱 레이어 (컴퓨팅 레이어)
  • 데이터베이스 스토리지 레이어 (저장소 레이어)

3.2 클라우드 서비스 레이어

Snowflake의 뇌

  • 저장과 연산 단계들의 연결을 관리

  • 사용자 인증접근 통제를 관리하고 데이터를 보호

  • 사용자 세션 관리쿼리 컴파일링, 쿼리 최적화

  • 가상 웨어하우스 관리

  • 트랜젝션 완료 후, 모든 작동중인 웨어하우스에서 데이터의 새로운 버전에 접속할 수 있게 해준다.

  • 메타 데이터 관리

    • 모든 메타 데이터를 유지 관리한다. <매우 중요>
    • Zero-Copy 복제Time Travel, 데이터 쉐어링 등이 메타 데이터 상점을 통해 동작한다.
  • 모든 클라우드 서비스들은 높은 가용성을 보장


3.3 쿼리 프로세싱 레이어 (컴퓨팅)

  • 여기서 쿼리는 클라우드 자원을 이용해 실행된다.

    • Snowflake의 고유한 구성 방식
  • 서로 다른 쿼리들은 가상 웨어하우스라고 불리는 서로 다른 연산 컨테이너를 통해 처리된다.

    • 웨어하우스 설정은 매우 단순하다.
      • S, M, L, XL 처럼 여러 사이즈를 제공
    • 사용자는 직접 사이즈 및 클러스터 개수를 선택
      • 상황에 따라 알맞게 지정하면 된다.
  • 스스로 Auto Scaling프로비저닝한다.

    • 가상 웨어하우스에서 여러 쿼리를 동시에 진행하면,
      추가된 쿼리들은 처리 대기 상태로 들어갈 수 있다.
      • 이는 위에 언급된 자동 확장프로비저닝을 통해 빠르게 처리 가능
      • 처리 후에는 자동으로 축소하여 인프라를 영구적으로 유지할 필요 없다.

3.4 데이터베이스 스토리지 레이어 (저장소)

모든 데이터가 저장되는 곳

  • 고유한 마이크로파티션을 이용해 데이터를 고도로 압축되고 최적화된 열식 조각들로 변환된다.

    • 이것을 S3에 저장한다.
      • S3는 파일을 업데이트하는 것을 허용하지 않는다.
      • 데이터가 업데이트 되면,
        매번 새로운 파일을 작성하고 데이터의 새로운 버전을 유지
        한다.
  • AES 256의 강한 암호화 사용

    • 유통되는 데이터가 매우 철저하게 보호된다.

4. Query Life Cycle

profile
클라우드, 데이터, DevOps 엔지니어 지향 || 글보단 사진 지향

0개의 댓글