[SNOWFLAKE] 주요 개념 및 아키텍처

NaSC·2023년 2월 7일
2

SNOWFLAKE

목록 보기
2/5

🐱‍🏍 시작

  • 스노우플레이크 공부 중 참고할만한 한글자료가 많이 없어보여 글로 남김.

👀 Snowflake란?

  • 클라우드 컴퓨팅 기반 데이터웨어하우징 회사
  1. 단일 플랫폼: Snowflake는 사용자가 데이터를 생성하고 분석할 수 있는 단일 플랫폼을 제공합니다.

  2. 엔드 투 엔드 솔루션: Snowflake는 데이터에 대한 엔드 투 엔드 솔루션을 제공하기 때문에 사용자가 데이터를 저장, 변환, 분석하고 이를 사용해 시각화할 수 있습니다.

  3. 간소화된 관리: Snowflake는 관리 작업을 간소화하기 위해 기존 데이터 솔루션의 복잡함과 번거로움을 줄여줍니다.

  4. 확장 가능한 스토리지: Snowflake는 사용자가 일괄 처리, 분석, 데이터 웨어하우스 및 다른 작업을 수행할 수 있는 확장 가능한 스토리지를 제공합니다.

  5. 가상화된 인프라: Snowflake는 사용자가 데이터를 처리하고 이를 시각화하고 공유할 수 있는 가상화된 인프라를 제공합니다.


☝ 주요개념

자체관리형 서비스로서의 데이터플랫폼

  • 설치, 구성 또는 관리 할 하드웨어(가상 또는 물리적)가 없습니다.
  • 설치, 구성 또는 관리할 소프트웨어가 거의 없습니다.
  • 지속적인 유지관리 및 업그레이드는 Snowflake에서 처리합니다.

✌ 아키텍처

1. Database Storage

  • 데이터가 Snowflake에 로드되면 Snowflake는 해당 데이터를 내부에 최적화하고 압축된 열 형식으로 재구성합니다. Snowflake는 이 최적화된 데이터를 클라우드 스토리지에 저장합니다.
  • 데이터가 저장되는 방식의 모든 측면을 관리합니다.
    • 조직, 파일크기, 구조, 압축, 메타데이터, 통계 및 기타 데이터 스토리지 측면을 snowflake에서 처리하는 등..
  • Snowflake가 저장한 데이터 개체는 고객이 직접 볼 수 없으며 액세스 할 수 없습니다.
    • Snowflake를 사용하여 실행되는 SQL Query를 통해서만 액세스 할 수 있습니다.

2. Query Processing

  • Snowflake는 "virtual warehouses"를 사용하여 쿼리를 처리합니다.
  • 각 virtual warehouse는 클라우드 공급자의 Snowflake가 할당한 여러 컴퓨팅 노드로 구성된 MPP 컴퓨터 클러스터입니다.

    MPP란 프로그램을 여러 부분으로 나누어 여러 프로세서가 각 부분을 동시에 수행시키는 것을 말한다. 이때 각 프로세서는 각기 운영체계와 메모리를 따로 가지고 일을 수행하며 각 프로세서간에는 메시지 패싱과 같은 기법을 이용하여 통신을 한다. 따라서 하나의 프로그램을 수행하는데 수 백 혹은 수 천개의 프로세서를 이용할 수 있다. MPP의 성능을 제대로 발휘하려면, 프로그램을 독립적으로 수행되는 여러 부분으로 나누고, 각 프로세서가 다른 프로세서와 정보를 주고받는 일을 최대한 효율적으로 할 수 있는 하드웨어 구조와, 이를 뒷받침하는 운영체계의 성능이 잘 조화를 이루어야 한다.

  • 각 virtual warehouse는 다른 virtual warehouse와 컴퓨팅 리소스를 공유하지 않는 독립적인 컴퓨팅 클러스터입니다. 결과적으로 각 virtual warehouse는 다른 virtual warehouse의 성능에 영향을 미치지 않습니다.

3. Cloud Services

  • Snowflake에서 활동을 조정하는 서비스 모음입니다. 이러한 서비스는 로그인에서 쿼리 발송에 이르기까지 사용자 요청을 처리하기 위해 Snowflake의 다양한 구성 요소를 모두 연결합니다.
  • 이 계층에서 관리되는 서비스는 다음과 같습니다.
    • 인증 & 액세스 제어
    • 인프라관리
    • 쿼리 분석 및 최적화
    • 메타데이터 관리

👍 참고
https://docs.snowflake.com/en/user-guide/intro-key-concepts.html

profile
데이터엔지니어 😘

0개의 댓글