Snowflake란?

yjbenkang·2024년 11월 5일

Snowflake가 클라우드 데이터웨어하우스로 갖는 특징에 대해 알아보는 글이다.

Snowflake란?

  • 2014년에 클라우드 기반 데이터웨어하우스로 시작됨 (2020년 상장)

    • 지금은 데이터 클라우드라고 부를 수 있는 정도로 발전
    • 글로벌 클라우드위에서 모두 동작 (AWS, GCP, Azure) - 멀티클라우드
  • 스토리지와 컴퓨팅 인프라가 별도로 설정되는 가변 비용 모델

    • Redshift 고정비용처럼 노드 수를 조정할 필요가 없고 distkey등의 최적화 불필요
  • SQL 기반으로 빅데이터 저장, 처리, 분석을 가능하게 해줌

    • 비구조화된 데이터 처리와 머신러닝 기능도 제공
  • CSV, JSON, Avro, Parquet 등과 같은 다양한 데이터 포맷을 지원

    • S3, GC 클라우드 스토리지, Azure Blog Storage도 지원
  • 배치 데이터 중심이지만 실시간 데이터 처리 지원

  • Time Travel : 과거 데이터 쿼리 기능으로 트렌드를 분석하기 쉽게 해줌

  • 웹 콘솔 이외에도 Python API를 통한 관리/제어 가능

    • ODBC/JDBC 연결도 지원
  • 자체 스토리지 이외에도 클라우드 스토리지를 외부 테이블로 사용 가능

  • 대표고객: Siemens, Flexport, Iterable, Affirm, PepsiCo, ...

  • 멀티 클라우드와 다른 지역에 있는 데이터 공유 (Cross-Region Replication) 기능 지원

  • Snowflake의 계정 구성도 : Organization -> 1 + Account => 1 + databases

Organizations & Accounts & Databases

  • Organizations:
    • 한 고객이 사용하는 모든 Snowflake 자원들을 통합하는 최상위 레벨 컨테이너
    • 하나 혹은 그 이상의 Accounts들로 구성되며 이 모든 Account들의 접근권한, 사용트래킹, 비용들을 관리하는데 사용됨
  • Accounts:
    • 하나의 Account는 자체 사용자, 데이터, 접근권한을 독립적으로 가짐
    • 한 Account는 하나 혹은 그 이상의 Database로 구성됨
  • Databases:
    • 하나의 Database는 한 Account에 속한 데이터를 다루는 논리적인 컨테이너
    • 한 Database는 다수의 스키마와 거기에 속한 테이블과 뷰등으로 구성되어 있음
    • 하나의 Database는 PB단위까지 스케일 가능하고 독립적인 컴퓨팅 리소스를 갖게 됨
      • 컴퓨팅 리소스를 Warehouses라고 부름. Warehouses와 Databases는 일대일 관계가 아님

Data Marketplace and Data Sharing

  • Data marketplace
    • 데이터 메시 용어가 생기기 전부터 "데이터 마켓플레이스"라는 서비스 제공
  • Data Sharing ("Share, Don't Move")
    • "Data Sharing" : 데이터 셋을 사내 혹은 파트너에게 스토리지 레벨에서 공유하는 방식

Snowflake의 기본 데이터 타입

Numeric: TINYINT, SMALLINT, INTEGER, BIGINT, NUMBER, NUMERIC, DECIMAL, FLOAT, DOUBLE, REAL.
Boolean: BOOLEAN.
String: CHAR, VARCHAR, TEXT, BINARY, VARBINARY.
Date and Time: DATE, TIME, TIMESTAMP, TIMESTAMP_LTZ, TIMESTAMP_TZ.
Semi-structured data: VARIANT (JSON, OBJECT).
Binary: BINARY, VARBINARY.
Geospatial: GEOGRAPHY, GEOMETRY.
Array: ARRAY.
Object: OBJECT.

profile
keep growing

0개의 댓글