<aside>
💡 ETL : Extract, Transform, Load의 약자로 다양한 데이터 소스로부터 데이터를 수집 및 처리하는데 사용되는 파이프라인
</aside>

Source : https://docs.microsoft.com/ko-kr/azure/architecture/data-guide/relational-data/etl
- 데이터 분석가들이 분석에 사용할 데이터를 정의하게 되면, 데이터 엔지니어에게 요청을 해서 해당 데이터를 처리해주길 원한다.
- 대용량 데이터(e.g. 10,000,000 rows)를 한번에 처리하는걸 데이터베이스 요청을 했다면 어떻게 처리해야될까?
- 만약에 데이터 분석가가 Pandas(Python에서 정형데이터를 다루는 오픈소스 라이브러리)를 이용해서 데이터를 처리하기로 정했다. Pandas에서 데이터를 처리할 수 있게 요청을 했다면 어떻게 처리해야할까?
Extract(추출)
- 데이터를 원본 소스로부터 가져오는 작업.
- SQL의 SELECT와 같다. (아직, SQL을 모르신다면 Excel의 VLOOKUP과 같다.)
- 원본 소스가 꼭 RDB일 필요는 없습니다. (RDB가 효율은 가장 좋다.)
- 분석가가 정의한 모든 데이터를 다 가져온다.
Transform(변환)
- 추출한 데이터를 분석에 필요한 형태로 변환한다.
- 데이터의 포맷을 통일시켜주는 작업이다.
- 분석 요청 사항에 맞는 형태로 저장된다. (Data Warehouse의 schema 정의)
Load(적재)
- 변환된 데이터를 Data Warehouse에 저장한다.
- 저장된 데이터를 분석가가 편의에 따라 자유롭게 사용할 수 있다. (주로 application 형태로 제공됨)
- 원본 데이터에 정보를 모두 나타내고 있어야 한다.