ETL
IT 위키
더 많은 작업
(ETT에서 넘어옴)
- Extraction, Transformation, Loading
- Extraction, Transformation, Transportation
- ETL과 ETT는 같은 용도로 사용되는 동의어
- Extraction: 추출
- Transformation: 가공
- Transportation: 전송
- Load: 저장
ETL은 여러 원천 시스템에서 데이터를 꺼내(추출) 분석에 맞는 형태로 바꾼 뒤(변환) 데이터 웨어하우스, 데이터 마트, ODS 같은 대상 저장소에 넣는(적재) 데이터 통합 과정이다. Oracle 데이터 웨어하우징 문서는 ETL이 뚜렷이 나뉜 세 단계라기보다 넓은 과정을 가리키며, 약어에는 원천에서 대상으로 데이터를 옮기는 전송(transportation) 단계가 빠져 있다고 설명한다. ETT라는 이름은 이 전송 단계를 드러낸 표현이다.
ADP 필기 2과목 '데이터 처리 프로세스'는 ETL을 CDC, EAI와 함께 대표적인 데이터 처리·통합 기술로 다룬다.
| 단계 | 내용 |
|---|---|
| 추출 | |
| 가공 |
|
| 전송/저장 |
|
- 일괄(Batch) ETL
- 실시간(Real Time) ETL
| 방식 | 설명 | 특징 |
|---|---|---|
| 전체 추출(Full Extraction) | 원천 시스템의 데이터를 통째로 꺼낸다. 테이블 전체를 내보낸 파일이나 테이블 전체를 읽는 SQL 문이 예이다 | 지난 추출 이후 무엇이 바뀌었는지 추적할 필요가 없지만 데이터가 많으면 시간과 부하가 크다 |
| 증분 추출(Incremental Extraction) | 정해 둔 시점(보통 지난 추출 시각) 이후에 바뀐 데이터만 꺼낸다 | 변경분을 알아낼 수단(수정 시각 컬럼, 변경 로그, CDC 등)이 있어야 한다 |
원천은 대개 추출을 위해 고치거나 성능을 조정할 수 없는 업무 시스템이므로, 추출 방식은 원천 부하를 고려해 정한다.
| 작업 | 내용 |
|---|---|
| 정제(Cleansing) | 누락·중복·오류 값을 찾아 고치거나 걸러 낸다 |
| 통합(Integration) | 여러 원천에서 같은 대상을 가리키는 데이터를 하나로 묶고 충돌을 해소한다 |
| 표준화(Standardization) | 코드, 단위, 형식을 하나의 기준으로 맞춘다 |
| 집계(Aggregation) | 분석 단위에 맞게 합계·평균 등을 미리 계산한다 |
| 비정규화(Denormalization) | 조회 성능을 위해 정규화된 테이블을 합쳐 중복을 허용한다 |
- 초기 적재: 대상 저장소를 처음 만들 때 과거 데이터를 한꺼번에 넣는다. 원문 표의 초기 추출(Migration)에 대응한다.
- 전체 적재: 대상 테이블을 비우고 전체를 다시 넣는다.
- 증분 적재: 바뀐 데이터만 추가하거나 갱신한다.
ADP 교재(데이터분석 전문가 가이드)는 ETL 작업을 다음 순서의 단계로 나누어 설명한다.
| 단계 | 하는 일 |
|---|---|
| Interface | 이기종 DBMS, 파일, 스프레드시트 등 다양한 원천에서 데이터를 받아 오는 인터페이스를 구현한다 |
| Staging | 정해진 일정에 따라 원천 데이터를 받아 스테이징 테이블에 그대로 저장한다 |
| Profiling | 스테이징 데이터의 특성을 살피고 품질을 측정한다 |
| Cleansing | 프로파일링 결과를 바탕으로 잘못된 데이터를 보정한다 |
| Integration | 정제된 데이터를 통합하고 데이터 간 충돌을 해소해 대상 테이블(ODS 등)에 적재한다 |
| Denormalizing | 보고서 작성이나 데이터 웨어하우스·데이터 마트 적재를 위해 비정규화한다 |
| 구분 | 배치(일괄) ETL | 실시간(근접 실시간) ETL |
|---|---|---|
| 처리 시점 | 하루 1회, 매시 등 정해진 주기 | 변경이 생기는 대로 짧은 지연 후(CDC로 변경 감지) |
| 장점 | 대량 처리에 효율적 | 데이터가 최신 상태에 가까움 |
| 단점 | 다음 주기까지 데이터가 늦음 | 순서 보장·중복 처리 설계가 복잡함 |
과거 데이터는 배치로 초기 적재하고 이후 변경분은 CDC로 따라잡는 식으로 함께 쓰는 경우가 많다. 자세한 비교는 데이터 연계 및 통합 기법 문서를 참고한다.
| 구분 | ETL | ELT |
|---|---|---|
| 순서 | 추출 → 변환 → 적재 | 추출 → 적재 → 변환 |
| 변환 위치 | 별도의 ETL 서버나 도구 | 대상 저장소(데이터 웨어하우스, 데이터 레이크) 안에서 SQL 등으로 |
| 적합한 환경 | 적재 전에 품질 통제가 필요할 때 | 대상 저장소의 병렬 처리 능력이 크고 원본을 보존하고 싶을 때 |
| 도구 | 성격 |
|---|---|
| Apache NiFi | 시스템 사이의 데이터 흐름을 브라우저 화면에서 설계·운영하는 도구. 데이터 출처 추적(provenance), 전달 보장을 지원한다 |
| Apache Airflow | 작업 흐름을 파이썬 코드로 정의해 일정에 따라 실행·감시하는 오케스트레이션 플랫폼. 여러 ETL 작업의 순서와 일정을 관리한다 |
- ETL은 추출·변환·적재의 약자로, 데이터 웨어하우스·데이터 마트·ODS를 채우는 일괄 처리 중심의 통합 기술이다.
- 전체 추출과 증분 추출의 차이, 증분 추출에 CDC가 쓰인다는 점을 연결해 기억한다.
- ADP 교재의 ETL 작업 단계 순서(Interface → Staging → Profiling → Cleansing → Integration → Denormalizing)가 순서 맞히기로 나올 수 있다.
- ETL과 ELT는 변환 위치(별도 서버 대 대상 저장소)로 구분한다.