반응형
이 글은 공부하며 정리한 내용입니다. 틀리거나 보완할 점이 있다면 댓글로 알려주시면 감사하겠습니다.
1. 핵심 요약
- ETL은 Extract(추출), Transform(변환), Load(적재)의 약자로, 데이터를 옮기고 바꾸고 저장하는 전체 흐름을 말한다.
- 예를 들어 여러 시스템(DB, 로그 등)에 흩어진 데이터를 하나로 모아서 분석용 테이블에 저장하는 게 전형적인 ETL 흐름이다.
- 흔히 데이터 웨어하우스(DW), 데이터 마트(DM) 같은 저장소에 데이터를 쌓기 위한 전처리 과정으로 활용된다.
2. 상세 내용 설명
ETL의 구성 요소
- Extract (추출)
- 다양한 원천 시스템에서 데이터를 가져오는 단계
- 예: MySQL, PostgreSQL, Excel, API, 로그 파일 등
- Transform (변환)
- 가져온 데이터를 목적에 맞게 가공하는 과정
- 예: 날짜 형식 통일, 불필요한 컬럼 제거, 그룹핑/집계, 컬럼 타입 변환 등
- Load (적재)
- 변환된 데이터를 목적지 시스템에 저장하는 단계
- 예: BigQuery, Redshift, Oracle, CSV 파일 등
예시로 살펴보는 일반적인 ETL 흐름
데이터 엔지니어가 DW(Data Warehouse)를 구성하기 위해 사내 서비스에서 발생한 데이터를 적재하는 작업을 생각해 보자
- Extract (추출)
- 사내 여러 시스템의 RDB(MySQL, PostgreSQL 등)에서 서비스 원장 데이터를 주기적으로 추출
- 배치 스케줄러(Airflow 등)를 통해 지정된 시간에 자동으로 실행
- Transform (변환)
- 데이터 정합성을 맞추기 위한 전처리 작업 수행: 날짜 포맷 정리, 불필요한 컬럼 제거, 코드 매핑 등
- 테이블 간 조인, null 처리, 중복 제거 등의 로직도 포함됨
- Load (적재)
- 가공된 데이터를 BigQuery 같은 DW로 적재
- 적재된 데이터는 분석가, 마케팅팀 등 다양한 부서에서 활용
이런 식의 흐름이 바로 전형적인 ETL 과정이다.
추가로 알아둘 점
- ETL 과정에서는 DBMS 간 호환성 문제로 인해 스키마 변환이나 데이터 타입 처리가 필요할 수 있다
- 데이터의 품질을 높이기 위해 중복 제거, 결측값 처리, 데이터 표준화도 자주 함께 수행된다
- 반대로, 데이터를 적재하면서 처리하는 구조는 ELT라고 부르기도 한다 (Transform이 Load 이후에 이루어짐)
3. 결론
ETL은 데이터를 어디선가 추출하고, 필요한 형태로 가공하고, 다른 곳에 저장하는 일련의 과정 전체를 의미한다. 단순히 데이터 이동만 하는 것이 아니라, 분석이나 운영을 위한 데이터 품질을 높이기 위한 핵심 절차다.
업무 중 만나는 DW, DM, 파이프라인, 배치 작업 등은 거의 모두 ETL이라는 큰 틀 안에 포함된다고 보면 된다.
4. 참고 자료
- 위키백과: ETL (Extract, Transform, Load)
- IBM: What is ETL?
- Microsoft Learn: Data movement in Azure Data Factory
반응형
'DATA' 카테고리의 다른 글
ODS란 무엇인가 – 개념 (0) | 2022.05.08 |
---|---|
ELT란 무엇인가 – ETL과의 차이와 선택 기준 (0) | 2021.07.31 |
댓글