[데이터 엔지니어링 데브코스] TIL 21일차 - 데이터 웨어하우스와 SQL과 데이터분석(1)

박단이·2023년 11월 14일
0

데브코스 TIL

목록 보기
20/56

오늘 배운 것🤓

1. SQL(Structured Query Language)

  • SQL은 구조화된 데이터(RDBMS)를 다루기 위해 개발된 언어
  • 데이터 직군에서는 SQL은 필수이다. 데이터 직군에서는 데이터 요약과 데이터 분석에 초점을 맞춘다.
  • 종류
    • DDL(Data Definition Language) : 테이블을 정의한다.
      ex) CREATE, ALTER, DROP, ...
    • DML(Data Manipulation Language) : 테이블 데이터를 조작하고 질의한다.
      ex) SELECT, INSERT, UPDATE, ...
  • 대표 RDBMS
    • 프로덕션 데이터베이스
      빠른 속도에 집중, 서비스에 필요한 정보를 저장한다.
      OLTP; OnLine Transaction Processing
      ex) MySQL, PostgreSQL, Oracle, ...
    • 데이터 웨어하우스
      속도보다 처리 데이터 크기에 집중하며, 데이터 분석 혹은 모델 빌딩 등을 위한 데이터를 저장한다.
      OLAP; OnLine Analytical Processing
      ex) RedShift, Big Query, SnowFlake, Hive, ...
  • 단점
    • 구조화된 데이터를 다루는데 최적화
      정규표현식을 이용할 수 있지만 제약이 많다.
      비구조화된 데이터를 다루는데 Spark, Hadoop과 같은 분산 컴퓨팅 환경이 필요하다.
    • RDBMS마다 SQL 문법이 조금씩 다름

2. Schema

스키마는 DB의 구조와 제약조건에 관한 전반적인 명세서이다.

  1. Star Schema
    • 데이터를 논리적 단위로 나누어서 저장하는 schema
    • 이렇게 표현하는 방법을 Data Modeling이라고 한다.
    • 필요 시 join하여 사용할 수 있도록 나누어서 저장한다.
    • 스토리지의 낭비를 줄이고, 업데이트가 쉽다는 장점을 가지고 있다.
    • 주로 프로덕션 DB에서 사용한다.
  2. Denormalized Schema
    • 단위 테이블로 나누지 않고 저장하는 schema
    • 스키마를 더 사용하지만 join할 필요가 없기 때문에 빠른 연산이 가능하다.
    • 주로 데이터 웨어하우스에서 사용한다.

3. 데이터 웨어하우스(Data Warehouse)

  • SQL 기반의 RDB일종으로써 회사에 필요한 모든 데이터를 저장하고 있는 장소이다.
  • 프로덕션 DB와는 별개로 생성해야하며, 프로덕션 DB의 복사본을 지니고 있어야 한다.
  • 실습에서는 Redshift를 사용하지만 실제로는 Big Query와 SnowFloke 중 골라서 사용하는 것을 추천
  • 고객이 아닌 내부 직원(특히, 데이터팀)을 위한 DB이기 때문에 처리 속도보다 원하는 작업을 수행할 수 있을 만큼의 데이터 크기가 중요하다.

느낀 점

데이터 웨어하우스와 일반적 RDB의 차이를 명확하게 설명해주셔서 정리하기 너무 좋았다. AWS를 사용할 생각에 많이 걱정되지만 차근차근 알려주시기 때문에 걱정하지 않고 먼저 뛰어들어야겠다!

profile
데이터 엔지니어를 꿈꾸는 주니어 입니다!

0개의 댓글