ETL과 ELT
ETL과 ELT에 대해서 공부한 내용들을 정리합니다.
시작하기 전에
데이터 엔지니어링을 경험해봤다면 누구나 들어봤을 용어가 바로 ETL, ELT이다. 해당 용어들은 Extract(추출), Transform(변환), Load(적재)의 약자로 데이터 처리를 어떤 순서로 진행하는지를 나타낸다. 본격적으로 공부하기에 앞서 각 과정들이 어떤 작업인지 살펴보자.
단어 | 설명 |
---|---|
Extract(추출) | 원본 데이터베이스 또는 데이터 소스에서 소스 데이터를 가져오는 과정 |
Transform(변환) | 대상 데이터가 나머지 데이터와 통합할 수 있도록 구조를 변경하는 과정 |
Load(적재) | 데이터를 스토리지 시스템에 저장하는 과정 |
그럼 우리는 왜 위와 같은 작업들을 진행하는 걸까? 바로 데이터 분석을 하기 위해서는 의미있고 정제된 데이터들이 필요하기 때문이다. 우리가 일상적으로 수집할 수 있는 데이터들은 대부분 정형화되어 있지 않다. 따라서 원천 데이터베이스에서 필요한 데이터만 추출하여 분석에 사용될 형태로 변환하고 이를 적재하여 분석가에게 전달하는 것이다.
ETL
ETL은 추출 > 변환 > 적재 순으로 데이터를 처리한다. 추출 단계에서는 원천 데이터베이스에서 필요한 데이터를 추출하고 이를 스테이징 영역에 임시 보관한다. 그다음 왜 바로 적재하지 않고 변환을 먼저해야 할까? 그 이유는 OLAP 데이터 웨어하우스는 관계형 SQL 기반 데이터 구조를 사용하기 때문이다.
NOTE
OLAP 데이터 웨어하우스란?
OLAP란 Online Analytical Processing의 약자로 데이터 웨어하우스와 같은 대규모 데이터에 최종 사용자가 직접 접근하여 대화식으로 정보를 분석하고 의사결정을 지원하는 처리 방식이다. 즉, 분석가가 필요한 정보들을 데이터 웨어하우스에 직접 요청하고 받는 구조이다.
데이터 웨어하우스(DW)란 데이터 분석, 데이터 마이닝 등을 지원하기 위해 서로 다른 위치의 데이터를 카테고리 별로 통합하여 적재한 데이터 저장소이다.
따라서 데이터 웨어하우스에 적재(Load)되기 이전에 변환(Transform)을 거쳐 필요없는 데이터를 삭제하거나 데이터 타입을 변환하거나 민감정보에 필터링, 마스킹 등을 진행한 후에 적재로 넘어간다. 이렇게 구축된 데이터 웨어하우스는 분석가 등의 사용자들에게 지원된다.
ELT
ELT는 추출 > 적재 > 변환 순으로 데이터를 처리한다. 원천 데이터베이스에서 필요한 데이터를 추출한 후 이를 어떠한 정제과정 없이 바로 데이터 레이크(DataLake)에 적재를 진행하며 이후 필요하다고 요청된 데이터만 변환 저리를 하여 제공한다.
NOTE
데이터 레이크란?
데이터 레이크는 데이터 웨어하우스와 달리 정형, 비정형, 반정형 데이터를 모두 저장할 수 있는 특별한 저장소이다. 그렇기에 데이터 웨어하우스처럼 데이터를 적재하기 위해서 특정 포맷에 맞춰 변환할 필요가 없으며 원천의 Raw 데이터를 한번에 저장한다. 또한 데이터 레이크에 있는 데이터는 분석을 위해 필요할 때 변환되며 이러한 경우 스키마가 적용되어 데이터 분석이 가능해진다.
따라서 ELT에서는 스테이징 단계를 거치지 않으며, 변환 또한 필요한 일부 데이터만 이루어지기에 상대적으로 유연하게 데이터를 처리할 수 있다.
비교
ETL과 ELT를 비교하면 다음과 같다.
ETL | ELT | |
---|---|---|
순서 | 추출 > 변환 > 적재 | 추출 > 적재 > 변환 |
데이터 저장소 | 데이터 웨어하우스 | 데이터 레이크 |
데이터 형태 | 관계형 SQL 기반 구조 | 모든 데이터 타입(정형, 반정형, 비정형) |
장점 | - 효율적이고 안정적인 데이터 분석 가능 - 개인 정보 보호 및 보호 규정을 준수 가능 - 정교한 데이터 변환 수행 가능 |
- 모든 데이터 타입 활용 가능 - 대규모의 데이터 수집 가능 - 데이터 적재 시간이 상대적으로 짧음 |
단점 | - 데이터 변환 과정의 시간이 다소 소요 - 구축 초기 비용이 높고 유지보수가 필요 |
- 개인 정보 보호 및 보호 규정을 준수 어려움 - 데이터 접근 관련 보안 이슈 존재 |