먼저 ETL과 ELT에 대한 설명에 들어가기에 앞서 각각 E, T, L의 개념을 정리해 보자.
Extract
: 외부의 데이터 소스에서 데이터를 추출하는 단계 Transform
: 데이터 포맷을 원하는 형태로 변환 Load
: 변환된 데이터를 최종적으로 데이터 웨어하우스에 적재
(사진 출처: https://rivery.io/blog/etl-vs-elt/)
외부에 있는 데이터를 가져다 데이터 웨어하우스에 로드하는 작업
일반적인 단계는
ETL
의 수는 회사의 성장에 따라 쉽게 100+ 개 이상으로 발전
중요한 데이터를 다루는 ETL
이 실패했다면 빨리 수정해 다시 실행하는 것이 중요하다.
ETL
을 적절하게 스케줄하고 관리하는 것이 중요해지면서 ETL 스케줄러
혹은 프레임워크
가 필요해진다.
가장 많이 사용되는 프레임워크는 Airflow
Airflow
는 오픈 소스 프로젝트Python 3
기반AWS
와 구글 클라우드
에서도 지원 ETL
관련 SaaS(Software as a Service)도 출현하기 시작
- 아직까지 기능이 강력하지 않음
- FiveTran, Stitch Data 등
(사진 출처: https://rivery.io/blog/etl-vs-elt/)
데이터 웨어하우스 내부 데이터를 조작해 보통은 조금 더 추상화되고 요약된 새로운 데이터를 만드는 프로세스를 말한다.
일반적인 단계는
데이터 웨어하우스
에 저장하거나 분석에 사용ELT
의 과정은 왜 필요해지는가?
ETL
은 다양한 데이터 소스를 읽어오는 일을 수행하지만 이를 모두 이해해 조인해 사용하는 것은 데이터가 다양해지고 커지면 불가능해진다.DBT
가 되며, 이를 ELT
라고 부른다.Airflow
를 통해 스케줄링은 하지만 새로운 데이터를 만들 때는 DBT
라는 툴을 많이 쓴다.
보통 데이터 분석가
들이 수행한다.
상황에 따라 데이터 파일이 로그 파일이라면 데이터 레이크
를 사용하기도 한다.
📌 특정 ETL, ELT가 실패했을 때 나중에 그 원인을 분석하고 재실행해 주어야 하는 것을 Backfill이라고 부름. (데이터 엔지니어에게는 악몽) -> Backfill을 좀 더 쉽게 해결할 수 있도록 도와주는 것이 Airflow
다음과 같이 다양한 외부 데이터들을 ETL
을 통해 데이터 웨어하우스
로 적재해 준다.
이후 Airflow
를 통해 ELT
과정으로 요약 테이블을 만들어 다시 데이터 웨어 하우스
에 요약 데이터를 적재해 준다.
이때 외부 데이터에 로그 파일
이 있는 경우에는 데이터 레이크
를 파이프라인에 추가해 주어야 한다.
로그 파일
은 크기가 크고 비구조화된 데이터기 때문에 다음과 같이 스토리지에 가까운 데이터 레이크를 두고, 하루에 한 번 혹은 한 시간에 한 번씩 데이터를 ETL해 두는 게 일반적이다.
그리고 이 데이터를 사용하기 쉽게 요약하여 데이터 웨어하우스
에 적재하거나 데이터 웨어하우스
의 데이터를 다시 요약하여 적재하기도 한다. 이 과정이 ELT이다.
데이터 레이크
에 굉장히 큰 로그 파일들이 적재되게 되면 데이터 레이크
에서 데이터 웨어하우스
로 ELT 해 줄 때 Python
만으로 프로세싱이 되지 않는 경우가 많다. 시간이 오래 걸리거나 메모리 초과가 되거나 이슈들이 발생할 수 있다.
이런 로그 파일을 처리하기 위해 빅데이터 처리 프레임워크들이 필요하게 된다. 대표적인 것으로는 Spark가 있다.
하지만 ETL, ELT를 처리해 주는 프레임워크로는 Airflow
를 사용해 준다.
📌 빅데이터 처리 프레임워크
- 분산 환경 기반 (1 대 혹은 그 이상의 서버로 구성)
- 분산 파일 시스템(큰 데이터를 저장할 수 있는 방법 필요)과 *분산 컴퓨팅 시스템(큰 데이터를 읽어서 프로세싱하고 새로운 데이터를 쓰는 기술 필요)이 필요하다.
- Fault Tolerance: 소수의 서버가 고장이 나더라도 동작되어야 한다.
- Replication Factor: 데이터가 있다면 한 서버에만 저장하는 게 아니라 비상 상황에 대비해 여러 서버에 저장하게 된다.
- Replication Factor는 보통 3으로 구성되어 있다.
- 확장이 용이해야 한다. 이를 Scale Out이라고 부르며 용량을 증대하기 위해서는 서버 추가를 해 주어야 한다.
- Scale Up은 서버의 사양을 높이는 것을 말한다. Scale Up + Scale Out을 병행하기도 한다.
📌 대표적 빅데이터 처리 프레임워크
- 1 세대 -> 하둡 기반의 Mapreduce, Hive/Presto (SQL 기반) 하둡에서는 분산 파일 시스템을
HDFS
을 사용- 2 세대 -> Spark (SQL, DataFrame, Streaming, ML, Graph) 하둡에서
HDFS
, AWS에서는S3
사용
This web site definitely has all of the information and facts I needed concerning this subject and didn’t know who to ask.
https://infocampus.co.in/ui-development-training-in-bangalore.html
https://infocampus.co.in/web-development-training-in-bangalore.html
https://infocampus.co.in/mern-stack-training-in-bangalore.html
https://infocampus.co.in/reactjs-training-in-marathahalli-bangalore.html
https://infocampus.co.in/javascript-jquery-training-in-bangalore.html
https://infocampus.co.in/data-structure-algorithms-training-in-bangalore.html
https://infocampus.co.in/angularjs-training-in-bangalore.html
https://infocampus.co.in/
https://infocampus.co.in/web-designing-training-in-bangalore.html
https://infocampus.co.in/front-end-development-course-in-bangalore.html