오늘은 딜라이트룸 기술 블로그에서 작성한 'ELT vs ETL'에 대해 리뷰해보고자 한다. 딜라이트룸은 알라미라는 글로벌 알람앱을 운영하고 있는 회사로, 누적 다운로드가 7,500만이 넘고 상위 알람앱 중 평점 1위를 기록하는 등 다양한 기록을 가지고 있다. 나도 아침을 잘 활용하기 위해 이 어플을 사용해 본 적이 있는데 단순히 알람 기능만 있는 것이 아닌 질 높은 수면을 위한 기능들이 있어 유용했다. 역시 이렇게 퀄리티 있는 어플을 만들고 유지하기 위해서는 수준 높은 전문가들이 있어야 하는 거 같다. 딜라이트룸에서는 기술블로그를 운영하고 있고 글도 꾸준히 올라온다. 이 중 데이터 엔지니어로서 이목을 사로잡은 ETL vs ELT에 대해 알아보자.
기술 블로그 출처
ETL
ETL은 Extract(추출), Transform(변환), Load(적재)의 3가지 단계로 구성된다.
- Extract(추출): ETL의 첫 번째 단계로, 원본 데이터 소스에서 필요한 데이터를 추출하는 과정이다. 데이터는 다양한 소스에서 추출될 수 있는데, 이는 관계형 데이터베이스, 텍스트 파일, 웹 API, 클라우드 서비스 등 다양한 형태 일 수 있다.
- Transform(변환): 추출된 데이터는 다양한 형식과 구조를 가질 수 있으며, 이를 목표 스키마에 맞게 변환해야 한다. 이 과정에서 데이터의 정제, 필터링, 집계, 조인 등의 작업이 수행된다. 또한 데이터의 품질을 개선하기 위해 누락된 값의 처리, 중복 제거, 오류 수정 등의 작업이 포함될 수 있다.
- Load(적재): 변환된 데이터는 목적지로 적재되어야 한다. 이 단계에서는 데이터를 데이터 웨어하우스, 데이터 레이크, 데이터 마트 등의 저장소에 적재하게 된다. 적재는 주기적으로 이루어지는 배치 작업일 수 있고, 실시간으로 데이터를 전달하는 프로세스 일 수 있다.
여기서 중요한 단계는 Transform(변환) 단계이다. ETL은 데이터를 가공한 후 목적지에 저장하기 때문에 우리가 필요한 데이터만을 선택적으로 저장하고, 저장소를 효율적으로 활용하기 위한 과정이다.
ETL 장점
- 효율적인 저장 공간 사용: 꼭 필요한 데이터만 저장소에 쌓이게 되므로 효율적으로 저장 공간을 사용할 수 있다.
- 보안과 규정 준수: 변환 과정에서 민감한 정보를 제거하거나 GDPR, HIPAA 등 다양한 규정에 맞추기 용이하다.
- 검증된 기술: ETL 역사가 오래 됐기 때문에 관련 지식이나 도구가 많다.
역시 각 장점들이 데이터의 품질과 안정성을 유지하는 데 필수적이라서 오래도록 ETL이 사용되어 온 거 같다.
ETL 단점
- 까다로운 유지보수: 데이터의 종류와 양이 늘어나면 유지보수 하기 어려워진다.
- 높은 변환 단계 운용 비용: 대량의 데이터를 처리하기 위해서는 변환 단계에서 상당한 컴퓨팅 자원이 필요하다.
- 낮은 유연성: 변환 단계에서 데이터의 최종 형태가 정해져 있기 때문에 다른 형태의 데이터가 필요할 땐 대응하기 어렵다.
ELT
ELT는 데이터 웨어하우스나 데이터 레이크와 같은 중앙 집중식 데이터 저장소에 데이터를 처리하는 방법이다. ELT는 ETL과 유사하지만 데이터 변환 단계를 적재한 후에 수행하는 점에서 차이가 있다.
- Extract(추출): 원본 데이터 소스에서 필요한 데이터를 추출한다. 이 단계에서는 원본 데이터 베이스, 파일 시스템, 클라우드 스토리지 등 다양한 소스에서 데이터를 추출한다.
- Load(적재): 추출한 데이터를 중앙 집중식 데이터 저장소로 로드한다. 추출된 데이터를 변환하거나 전처리하지 않고 그대로 저장소로 이동한다. 이는 주로 클라우드 기반의 저장소를 활용한다.
- Transform(변환): 데이터가 저장소에 로드된 이후에 변환 작업을 수행한다. 데이터를 필요한 형식으로 변환하거나 정제하고, 분석이나 보고를 위한 추가적인 계산이 수행된다.
ELT 장점
- 간단한 시스템 구성: 데이터 변환 작업은 데이터 웨어하우스에서 진행되기 때문에 컴퓨팅 자원 관리가 좀 더 수월하다.
- 높은 유연성: 원본 데이터를 보유하고 있어 필요할 때 언제든지 재가공이 가능하다.
- 적재 외주화: 원본 데이터를 적재 해두고 변환만 내부적으로 진행하므로 적재 과정을 외부에 맡기기 용이하다. 특히 다양한 소스의 데이터를 받아오는 경우 적재 부분을 직접 구현하지 않아 비용을 아낄 수 있다.
ELT 단점
- 보안과 규정 준수: 원본 데이터를 모두 적재하기 때문에 보안에 굉장히 유의해야 한다.
- 비효율적인 저장 공간 사용: 꼭 필요한 데이터보다 더 많은 데이터를 적재해 두고 사용하므로 저장 공간을 더 많이 사용하게 된다.
딜라이트룸에서 ELT를 도입한 이유
딜라이트룸은 ETL방식을 사용하다가 변환 레이어의 복잡성과 운영 비용이 증가하는 문제를 경험했다. 이를 해결하기 위해 ELT 방식을 도입하여 데이터를 먼저 적재하고 필요에 따라 데이터를 처리하는 방식으로 전황했다. 이로써 관리해야 할 요소가 줄어들고, 데이터 모델링에 있어서도 더 많은 유연성을 얻을 수 있었다. 개발자의 자원을 효율적으로 활용하기 위해 EL 파트를 외주화 하고, Fivetran과 같은 서비스를 통해 안정적으로 데이터를 적재했다. 데이터를 모두 받아두었기 때문에 데이터 웨어하우스 내에서 변환할 수 있어 저장 공간에 비용을 절약하고 개발 비용과 운영 복잡도를 감소시키는 효과를 얻었다.
* Fivetran: 클라우드 기반의 데이터 통합 플랫폼으로, 다양한 데이터 소스로부터 데이터를 추출하여 데이터 웨어하우스나 데이터베이스로 신속하고 안정적으로 전송하는 서비스를 제공한다. 이를 통해 사용자는 ETL 프로세스를 간소화하고 데이터를 효율적으로 관리할 수 있다. Fivetran은 사용자가 설정한 주기에 따라 데이터를 자동으로 동기화하고, 데이터의 변환 및 정제 작업을 지원하여 데이터 분석 및 시각화에 필요한 정형화된 데이터를 제공한다.
후기
ETL과 ELT의 장단점이 뚜렷하기 때문에 각 회사 상황에 맞는 방법을 도입해야 하는 거 같다. 딜라이트룸은 저장 공간에 비용을 더 들이는 대신, 개발 비용과 운영 복잡도를 감소시키고 유연성을 얻는 일석삼조의 효과로 ELT 방식으로의 전환을 선호했다. 흥미로웠던 점은 EL 파트를 외주화 한다는 점이다. 내가 다녔던 회사나 다른 동료들 얘기를 들었을 땐 주로 사내 엔지니어나 인턴을 고용해 직접 추출했는데 딜라이트 룸은 개발자의 자원을 아끼고자 외주화 한다고 한다. ELT 방식에서는 단순히 추출하고 적재하는 EL파트에 개발자의 시간을 쓰지 않도록 하는 것이 인상 깊고 엔지니어의 가치를 생각해 주는 거 같아 너무 호감 가는 부분이다.