데이터 웨어하우스의 클라우드 옵션
데이터 웨어하우스가 작을 때는 MySQL 을 사용해도 좋지만, 대용량일 경우 클라우드를 사용하는 것이 좋음
- 고정비용 옵션
매달 정해진 비용 지불. 비용 관리 측면에선 장점.
ex. Redshift (Redshift 서버리스는 가변 비용 옵션)
- 가변비용 옵션
사용한 만큼 비용 지불. 효율적이라는 것이 장점. 비용 예측이 어려움
ex. BigQuery , Snowflake
가변비용 옵션이 처리할 수 있는 데이터 크기가 고정비용 옵션보다 큼.
스토리지와 컴퓨팅 부분이 분리되어 있음. 따라서 더 효율적인 처리가 가능함
고정비용 옵션은 스토리지를 늘리려면 컴퓨팅 부분(CPU 등)을 같이 늘려야 함
Data Lake
- 스토리지에 가까운 개념으로 데이터 웨어하우스 보다 비용이 저렴. 비구조화 데이터를 저장 가능.
- 클라우드 업체의 스토리지를 데이터 레이크로 사용. (AWS 라면 S3가 대표적인 데이터 레이크)
- 로그파일처럼 크기가 크고 비구조화인 데이터 -> ETL을 통해 데이터 레이크에 적재 -> 필요할 때마다 데이터 웨어하우스에 가져오기
ETL(Extract, Transform, Load)
Extract: 데이터를 데이터 소스에서 읽어내는 과정. 보통 API 호출
Transform : 필요하다면 원본 데이터의 포맷을 원하는 형태로 변경
Load: 최종적으로 DW에 테이블로 적재
밖에 있는 데이터를 데이터 시스템 안에 넣는 것.
목적지는 데이터 레이크나 데이터 하우스.
잘 정재된 데이터는 바로 데이터 웨어하우스로 보낼 수 있음.
중요한 데이터를 다루는 ETL이 실패했을 경우 빨리 수정하여 다시 실행하는 것이 중요.
이를 적절하게 스케줄하고 관리하는 것이 중요해지며 ETL 스케줄러 혹은 프레임웍이 필요해짐 -> Airflow가 대표적임
데이터 엔지니어가 ETL을 수행함
ELT
데이터 시스템 안에 들어온 데이터 대상으로 정제 및 가공.
데이터 레이크에서 데이터 웨어하우스로 로딩, 데이터 웨어하우스의 데이터를 재가공해서 데이터 웨어하우스로 가져오기 등이 가능 -> DBT 툴을 사용
주기적으로 요약 데이터를 만들어 사용하는 것이 더 효율적.
ex. 다양한 소스를 통해 매출을 올리는 회사 - 매출 정보 여러 테이블에 나눠져있음. ELT로 매출을 일별, 날짜별로 정리.
다양한 데이터 소스의 예
프로덕션 데이터베이스 (웹/앱에서 사용하는 데이터베이스)의 데이터
MySQL, Postgress 등이 프로덕션 데이터베이스로 사용됨
이메일 마케팅 데이터
mailchimp, HubSpot, SendGrid..
크레딧카드 매출 데이터
Stripe
서포트 티켓 데이터
Zendesk, Kustomer ..
서포트 콜 데이터
ChannelTalk, RingCentral, Talkdesk ...
세일즈 데이터
Salesforce
사용자 이벤트 로그
Amplitude, MixPanel, 웹서버로그..
Airflow (ETL 스케줄러)
ETL 관리 및 운영 프레임웍의 필요성
- 다수의 ETL이 존재할 경우 이를 스케줄해주고 이들간의 의존관계를 정의해주는 기능 필요
- 특정 ETL이 실패할 경우 이에 관한 에러 메세지를 받고 재실행해주는 기능도 중요해짐
- Airflow는 오픈소스 프로젝트로 파이썬3 기반
- Airlfow에서는 ETL을 DAG라 부르며 웹 인터페이스를 통한 관리 기능 제공
- 크게 3가지 컴포넌트로 구성됨: 케줄러, 웹서버, 워커
데이터 소스 -> 다수의 ETL -> 데이터 웨어하우스 -> ELT 요약테이블 만들기 (dbt사용) -> 대시보드
Airflow가 ETL, 데이터웨어하우스 스케줄 관리
데이터 레이크에서 ELT 통해 데이터 웨어하우스에 데이터 전달할 때 빅데이터 처리 기술 필요해짐(Spark)
빅데이터 처리 프레임워크
분산환경 기반 (1대 혹은 그 이상의 서버로 구성)
-분산 파일 시스템과 분산 컴퓨팅 시스템이 필요
Falut Tolerance
- 소수의 서버가 고장나도 동작해야됨
- 비상시를 대비해 데이터를 여러 서버에 저장 ( 하나의 데이터를 세 개의 서버에 저장)
확장이 용이해야함
- Scale Out 용량을 늘리기 위해 서버를 사서 시스템에 추가하는 것
- Scale Up 용량을 늘리기 위해 이미 있는 서버의 사양을 높이는 것. CPU 추가, 메모리 확장
'DA' 카테고리의 다른 글
| Snowflake소개 및 특징 (0) | 2024.01.23 |
|---|---|
| 데이퍼 파이프라인이란 | 데이터 파이프 라인 만들 때 고려할 점 (0) | 2024.01.23 |
| [TIL] INNER JOIN | LEFT, RIGHT JOIN | Subquery (1) | 2023.12.05 |
| [TIL] SQL - DDL과 DML (0) | 2023.12.05 |
| [TIL]SQL ORDER BY| GROUP BY |DESC, ASC | HAVING | COUNT (0) | 2023.12.04 |