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

Jaewon Lim·2025년 2월 2일
2

Snowflake❄️

목록 보기
2/7
post-thumbnail

특징1

  1. 데이터 판매를 통한 매출을 가능하게 해주는 Data Sharing/Marketplace 제공
  2. 배치 데이터 중심이지만 실시간 데이터(Streams) 처리 지원
  3. Time Travel
  • 과거 데이터 쿼리 기능으로 트렌드를 분석하기 쉽게 해줌
  • 스냅샷 잡는다
  1. Zero Copy Cloning
  • 데이터 공유를 아주 효율적으로 제공
  • 실제로 모든 데이터가 카피 되는게 아니라 한번 카피 해 놓으면 다음부터는 바뀐 부분만 복사가 되기 때문에 데이터 공유시 오버헤드가 적음
  1. 별도 인프라를 갖지 않고 글로벌 클라우드(AWS, GCP, Azure) 위에서 모두 동장

특징2

  1. Snowflake 계정 구조
  • 조직(Organization) -> 1개 이상의 계정(Account) -> 1개 이상의 DB
  • 하나의 DB는 페타바이트(PB) 규모로 확장 가능하며, 스키마와 테이블로 구성
  1. 데이터 마켓플레이스
  • 스노우플레이크 있는 데이터를 광고하고 이를 유료로 판매 가능
  1. 데이터 공유(Data Sharing : "Share, Don't Move")
  • Zero Copy Cloning을 사용하여 데이터를 복사하거나 클론하지 않고 스토리지 레벨에서 직접 공유 가능
  1. 멀티클라우드와 다른 지역에 있는 데이터 공유(Cross-Region Replication) 기능 지원
  • 자체 인프라 없이 클라우드 업체를 사용. 글로벌 클라우드 업체가 제공해주는 스토리지,서버를 활용하여 자체 DB를 만듦. 업체간 연동이 가능한 멀티 클라우드
  • 가장 밑에는 Cloud Services(AWS, Google Cloud, Azure)
  • 중간에 스노우플레이크의 Storage Layer(DB, Schemas, Tables)
  • 맨 위에 Compute Layer(다수의 Virtual Warehouses)

Compute Layer(=Virtual Warehouse)
테이블의 데이터 적재, 데이터를 기반으로 연산, SQL 명령, Dataframe 명령
Virtual Warehouse

  • 다수의 Virtual Warehouse를 동시 유지 가능
    • 다수의 Virtual Warehouse들간에 동일한 스토리지(DB/Tables)를 공유 가능
  • 단위로 관리 : X-small부터 6X-Large까지 여러가지 크기를 가지며 크기에 따라 과금 달라짐
  • 두 가지 유형 존재
  1. Regular(기본 SQL로 조작)
  • Worksheet(Web UI)이나 Notebook 등에서 대화형으로 조작
  • Snowflake의 웹 UI에 있는 기능을 Snowsight라고 부름
  • Snowflake-connector-python을 통해 파이썬으로 조작
  1. Snowpark(Pandas Datagram과 흡사하게 조작)
  • python, Java, Scala 등을 사용 가능
  1. 과금
  • 크레딧 : 컴퓨팅 리소스 사용 비용을 측정하는 단위 예) SQL쿼리 실행 및 기타 계산 작업
    • 1크레딧 비용은 선택한 요금제에 따라 변동
      • Standard : $2
      • Enterprise : $3
      • Business-critical : $4
    • 가상 웨어하우스 크기에 따라 크레딧 소비량 결정
      • X-small : 1크레딧 / 시간
      • 스탠다드로 한시간 사용하면 2불
CREATE OR REPLACE TABLE dev.raw_data.nps(
	id int PRIMARY KEY, 
    created timestamp, 
    score smallint
 );
  • 관계형 데이터베이스에서는 PK로 지정되면 기본키 유일성이 보장되어서 같은 id 값을 갖는 레코드는 적재 불가능하지만 모든 빅데이터 기반 데이터 웨어하우스는 일반적으로 기본키 유일성(PK Uniqueness)을 보장하지 않음
    • 기본키 유일성이 보장되지 않는데 왜 PK가 존재하느냐? 이 테이블을 만드는 사람이 PK 필드가 유일함을 보장해줄거니 믿고 사용해라 라는 뜻. 테이블을 만드는 엔지니어가 PK로 지정된 필드의 유일성을 보장해야하고 기본키로 지정된 필드가 유일함을 보장해야한다.
    • 테이블의 기본키가 잇다라고하면 그 값이 유일함을 보장해야한다. (by UPSERT)
  • 즉 동일한 기본키를 갖는 레코드를 중복 적재해도 문제가 없으며 기본키 유일성을 보장하는 것은 데이터 인력의 책임

0개의 댓글