DATA
ELT란 무엇인가 – ETL과의 차이와 선택 기준
오늘은강박사갈거야~~
2021. 7. 31. 00:56
반응형
이 글은 공부하며 정리한 내용입니다. 틀리거나 보완할 점이 있다면 댓글로 알려주시면 감사하겠습니다.
1. 핵심 요약
- ELT는 Extract → Load → Transform의 순서로 처리되는 데이터 처리 방식이다.
- ETL은 데이터를 추출한 뒤 변환하고 저장하는 반면, ELT는 먼저 적재하고 나중에 저장소 내에서 변환한다.
- 대용량 처리에 최적화된 MPP 기반 DW(BigQuery, Snowflake 등) 환경에서는 ELT가 더 적합한 경우가 많다.
2. 상세 내용 설명
ELT란?
- ELT는 데이터를 먼저 저장소에 적재(Load) 한 뒤, 그 안에서 쿼리나 작업을 통해 변환(Transform) 하는 방식이다.
- 전통적인 ETL과는 처리 순서가 다르며, 특히 저장소 자체가 고성능 연산을 지원하는 경우에 사용된다.
ETL vs ELT – 비교 정리
항목 ETL (Extract → Transform → Load) ELT (Extract → Load → Transform)
처리 위치 | 변환은 외부 시스템에서 수행 | 변환은 저장소 내부에서 수행 |
적합 환경 | 일반 RDB 기반 DW, 전통적인 시스템 | MPP 기반 DW (BigQuery, Snowflake 등) |
처리 성능 | 처리량이 많아지면 확장에 한계 있음 | 대량 병렬 처리에 유리 |
유연성 | 정형화된 처리에 유리 | 쿼리 기반 유연한 변환 가능 |
예시로 살펴보기
제가 실제로 업무를 수행하면서 경험한 흐름을 예시로 들어보자면 다음과 같습니다:
예시 1: 사내 원장 데이터 수집 → BigQuery 적재
- 사내 마이크로서비스에서 발생하는 원장 데이터를 주기적으로 추출
- 변환을 수행하지 않고, 그대로 GCP BigQuery에 로드
- 이후 BigQuery 내에서 SQL로 가공하여 분석 마트 테이블 생성
→ 이 흐름은 데이터를 먼저 적재(Load)한 후, 분석 목적에 따라 BigQuery 내부에서 변환(Transform)을 수행하므로 ELT 방식에 가깝다.
예시 2: 외부 로그 수집 및 마트 적재 (Braze 로그)
- Braze에서 사용자 행동 로그를 AWS S3에 저장
- 이 로그를 GCP BigQuery의 임시 테이블로 적재
- 이후 이 임시 테이블을 기준으로 쿼리 기반 가공을 수행하고, DW 테이블로 정제된 데이터를 재적재
→ 이 구조는 원천 데이터 → 저장소 적재 → 저장소 내 변환 → 최종 저장이라는 흐름으로, ELT의 전형적인 구성이다.
왜 ELT인가?
- 과거에는 외부에서 데이터를 정제한 뒤 저장하는 ETL이 일반적이었지만, BigQuery, Snowflake 같은 MPP DW가 등장하면서 저장소 자체가 변환 기능을 갖추게 됐다
- 따라서 데이터를 일단 DW에 적재한 후 SQL이나 dbt 등으로 변환하는 구조가 더 유연하고 확장성이 높아졌다
- 특히 로그 데이터나 비정형 데이터처럼 사전에 일괄 처리하기 어려운 경우, ELT 구조가 유리하다
3. 결론
ETL과 ELT는 데이터 처리 순서의 차이지만, 실제로는 데이터 환경과 기술 스택에 따라 자연스럽게 선택되는 전략이다.
- 고정된 프로세스와 복잡한 비즈니스 로직 처리에는 ETL이 적합
- 반면, 대규모 데이터를 빠르게 분석하고 유연하게 변형하려면 ELT가 효율적이다
요즘처럼 분석 플랫폼이 강력해진 시대에는 ELT를 사용하는 경우가 점점 많아지고 있다.
4. 참고 자료
- Google Cloud: ETL vs. ELT
- dbt Docs: What is ELT?
- Snowflake: Modern Data Architecture with ELT
반응형