오늘 배운 것🤓
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의 구조와 제약조건에 관한 전반적인 명세서이다.
- Star Schema
- 데이터를 논리적 단위로 나누어서 저장하는 schema
- 이렇게 표현하는 방법을 Data Modeling이라고 한다.
- 필요 시 join하여 사용할 수 있도록 나누어서 저장한다.
- 스토리지의 낭비를 줄이고, 업데이트가 쉽다는 장점을 가지고 있다.
- 주로 프로덕션 DB에서 사용한다.
- Denormalized Schema
- 단위 테이블로 나누지 않고 저장하는 schema
- 스키마를 더 사용하지만 join할 필요가 없기 때문에 빠른 연산이 가능하다.
- 주로 데이터 웨어하우스에서 사용한다.
3. 데이터 웨어하우스(Data Warehouse)
- SQL 기반의 RDB일종으로써 회사에 필요한 모든 데이터를 저장하고 있는 장소이다.
- 프로덕션 DB와는 별개로 생성해야하며, 프로덕션 DB의 복사본을 지니고 있어야 한다.
- 실습에서는 Redshift를 사용하지만 실제로는 Big Query와 SnowFloke 중 골라서 사용하는 것을 추천
- 고객이 아닌 내부 직원(특히, 데이터팀)을 위한 DB이기 때문에 처리 속도보다 원하는 작업을 수행할 수 있을 만큼의 데이터 크기가 중요하다.
느낀 점
데이터 웨어하우스와 일반적 RDB의 차이를 명확하게 설명해주셔서 정리하기 너무 좋았다. AWS를 사용할 생각에 많이 걱정되지만 차근차근 알려주시기 때문에 걱정하지 않고 먼저 뛰어들어야겠다!