관계형 데이터베이스
- 구조화된 데이터를 저장하고 질의할 수 있도록 해주는 스토리지
- 엑셀 스프레드시트 형태의 테이블로 데이터를 정의하고 저장
- 관계형 데이터 베이스를 조작하는 프로그래밍 언어가 SQL
- DDL (Data Definition Language) - 테이블 정의를 위함
- DML (Data Manipulation Language) - 테이블 데이터 조작/질의를 위함
- 프로덕션 데이터베이스 - MySQL, PostgreSQL, Oracle...
- OLTP (OnLine Transaction Processing)
- 빠른 속도에 집중. 서비스에 필요한 정보 저장
- 데이터 웨어하우스 - Redshift, Snowflake, BigQuery, Hive...
- OLAP (OnLine Analyical Processing)
- 처리 데이터 크기에 집중. 데이터 분석 혹은 모델 빌딩 등을 위한 데이터 저장
(보통 프로덕션 데이터베이스를 복사해서 데이터 웨어하우스에 저장)
- 관계형 데이터베이스의 구조
- 가장 밑단에는 테이블들이 존재 (데이블은 엑셀의 시트에 해당)
- 테이블은 레코드들로 구성 (행)
- 레코드는 하나 이상의 필드 (컬럼)로 구성 (열)
- 필드 (컬럼)는 이름과 타입과 속성 (primary key)로 구성
- 테이블들은 데이터베이스 (혹은 스키마)라는 폴더 밑으로 구성 (엑셀에서는 파일)
- 가장 밑단에는 테이블들이 존재 (데이블은 엑셀의 시트에 해당)
SQL (Structured Query Language)
- 관계형 데이터베이스에 있는 데이터를 질의하거나 조작해주는 언어
- SQL은 1970년대 초반에 IBM이 개발한 구조화된 데이터 질의 언어
- 구조화된 데이터를 다루는 한 SQL은 데이터 규모와 상관없이 쓰임
- 모든 대용량 데이터 웨어하우스는 SQL 기반
- Redshift, Snowflake, BigQuery, Hive
- 데이터 분야에서 일하고자 하면 반드시 익혀야 할 기본 기술
- 단점
- 구조화된 데이터를 다루는데 최적화 되어있음
- 관계형 데이터베이스마다 SQL 문법이 조금씩 상이
데이터 웨어하우스 - 회사에 필요한 모든 데이터를 저장
- SQL 기반의 관계형 데이터 베이스
- 데이터 웨어하우스는 고객이 아닌 내부 직원을 위한 데이터베이스
- 처리속도가 아닌 처리 데이터의 크기가 더 중요
- ETL 혹은 데이터 파이프라인
- 외부에 존재하는 데이터를 읽어다가 데이터 웨어하우스로 저장해주는 코드들이 필요해지는데 이를 ETL 혹은 데이터 파이프라인이라고 부름
- 데이터 인프라
- 데이터 엔지니어가 관리
- 데이터를 데이터 웨어하우스까지 적재하기 위한 과정
Redshift - Scalable SQL엔진
- 2PB까지 지원
- Still OLAP - 응답속도가 빠르지 않기 때문에 프로덕션 데이터베이스로 사용불가
- Columnar storage - 컬럼별 압축이 가능, 컬럼을 추가하거나 삭제하는 것이 아주 빠름
- 벌크 업데이트 지원
- 고정 용량/비용 SQL 엔진
- 다른 데이터 웨어하우스처럼 primary key uniqueness를 보장하지 않음
728x90
'ssung_데이터 엔지니어링 > 5주차_데이터 웨어하우스, SQL, 데이터분석' 카테고리의 다른 글
데이터 웨어하우스, SQL, 데이터분석 (4) (1) | 2023.12.07 |
---|---|
데이터 웨어하우스, SQL, 데이터분석 (3) (0) | 2023.11.15 |
데이터 웨어하우스, SQL, 데이터분석 (2) (0) | 2023.11.14 |