본문 바로가기
ML | DL | Big data/Data Engineering

ETL, ELT의 4가지 주요 차이점

by 썽하 2021. 4. 26.

 

 

내가 생각하는 머신러닝, 데이터 엔지니어링/사이언스 분야에서의 가장 중요한 단계는 ETL이다. ETL은 정답이 없고 가장 많은 시간이 소요되기도 하고, 가장 많은 실수가 일어나기도 하며, 개발자의 통찰력에 따라 최종 결과물이 크게 좌우되기도 한다. 이렇게 중요한 ETL이 슬슬 ELT방식으로 변화하고 있다. 이번 글에서는 ETL과 ELT의 정의 및 주요 차이점과 방식의 변화가 생기는 이유 등을 정리해보고자 한다.

 

* 이 글에서 설명되는 ETL와 ELT는 각각 ETL 프로세스, ELT 프로세스와 동일한 의미를 가진다.

 

E, T, L 이란?

ETL / ELT은 모두 다음 세 가지 단계를 포함한다.

  • E/Extract(추출) : 원본 데이터베이스 또는 데이터 소스에서 데이터를 가져오는 것을 말한다. ETL을 사용하면 데이터가 임시 스테이징 영역으로 들어가고, ELT를 사용하면 즉시 데이터가 Lake 스토리지 시스템으로 이동한다.
  • T/Transform(변환) : 데이터의 구조를 변경하는 프로세스를 의미한다. 용도에 맞는 필터링, Resahping, 정재 등의 단계를 통해 필요한 형태로 변환한다.
  • L/Load(적재) : 데이터를 스토리지에 저장하는 프로세스를 의미한다.

 

ELT / ETL을 진행하는 이유

ETL과 ELT는 데이터 사이언스 영역에서 필요하다. 왜냐하면 데이터를 담고 있는 소스는 호환되는 형식으로 저장되어있지 않기 때문이다. 따라서 데이터를 분석 가능한 데이터로 통합하기 전에 Raw 데이터를 정리하고, 많은 정보를 담을 수 있도록 변환해야 한다. 변환한 후에 비로소 분석 도구나 플랫폼을 이용해 데이터가 담는 의미를 파악하고 통찰력을 얻을 수 있다.

 

ETL과 ELT의 주요 차이점

  1. ETL은 데이터를 추출(E) -> 변환(T) -> 적재(L) 순으로 데이터를 처리하는 프로세스이고, ELT는 추출(E) -> 적재(L) -> 변환(T) 순으로 데이터를 처리하는 프로세스이다.
  2. ETL은 데이터 스테이징 단계가 소스와 데이터 웨어 하우스 사이에 있다. ELT는 데이터 웨어하우스를 활용하여 기본 변환을 수행하며, 데이터 스테이징이 필요하지 않다.
  3. ETL은 데이터 웨어 하우스에 로드하기 전, 중요 보안 데이터를 처리하여 개인정보 보호 규정을 준수 지원할 수 있다.(실제로 큰 이슈이다. 해싱된 데이터 또한 개인정보 활용 동의 파기 시 활용할 수 없는데 ELT에서는 처리가 곤란하다.)
  4. ETL은 정교한 데이터 변환을 수행할 수 있고, ELT보다 비용 효율적이다.

 

이 정도의 차이점은 말로 설명하기는 쉽다. 하지만 근본적인 차이를 이해하기 위해서는 ETL이 데이터 웨어하우스에서 작동하는 방식 ELT가 데이터 레이크에서 작동하는 방식에 대한 깊은 지식이 요구된다. 아래 설명과 특성들을 읽어보자.

 

 

ETL!

OLAP 데이터 웨어하우스는 관계형 SQL 기반 데이터 구조를 지원한다. 그러므로 NoSQL 기반(혹은 관계형 SQL 기반 데이터가 아닌)의 데이터는 OLAP 데이터 웨어하우스에 삽입되기 전 무조건 변환되어야만 한다. 이러한 데이터 변환 프로세스의 일부로, 상관관계에 있는 정보를 기반으로 여러 데이터 소스를 결합하는 데이터 매핑이 필요할 수도 있다. 따라서 데이터 웨어하우스는 ETL이 필요하다. Load 단계 이전에 무조건 변환이 완료되어야 하기 때문이다.  

 

ETL 프로세스는 다음과 같은 특징이 있다.

  • 워크플로우가 잘 정의되어 있어야 하며 연속적이고 지속적인 프로세스를 가진다 : ETL은 동종 또는 이종의 데이터 소스에서 데이터를 추출하여, 스테이징 영역에 임시 보관한다. 그 영역에서 데이터는 필터링, Reshaping 등의 프로세스를 거치고 마지막으로 데이터 웨어 하우스에 저장된다.
  • 데이터 엔지니어 및 개발자의 상세 계획, 감독 및 코딩이 필요하다 : 데이터 웨어하우스에서 ETL을 손으로 코딩하는 구식 방법은 엄청난 시간이 소요된다. 프로세스를 설계한 후에도 새로운 정보로 데이터 웨어하우스를 업데이트할 때 각 단계를 거치는데 시간이 걸린다.
  • 최신 ETL 솔루션은 쉽고 빠르다 : 특히 클라우드 기반 데이터 웨어하우스 및 클라우드 기반 SaaS 플랫폼의 경우 ETL이 훨씬 더 빠르게 실행된다. Xplentity와 같은 클라우드 기반 ETL 솔루션을 사용하면 프로그래밍 전문 지식이 없어도 다양한 소스에서 데이터를 즉시 추출, 변환, 적재할 수 있다.

 

ETL의 가장 큰 장점

  • ELT에 비해 ETL의 가장 큰 장점 중 하나는 OLAP 데이터 웨어하우스의 특성과 관련이 있다. 데이터를 구조화/변환한 후 ETL을 통해 보다 효율적이며 안정적인 데이터 분석이 가능하다. 이와는 대조적으로, ELT는 빠른 분석이 필요할 때는 이상적인 방법이 아니다.
  • 또 다른 ETL의 장점은 보안 규정 준수와 관련이 있다. 로그 데이터에서 발생한 고객의 프라이버시 데이터는 특정 필드를 제거하거나 암호화해야 한다. ETL은 데이터를 데이터 웨어하우스에 넣기 전에 변환하기 때문에, 보안 규정 위반 위험성을 줄여준다. 이와는 반대로 ELT는 개인정보와 관련된 중요한 데이터를 먼저 적재해야 한다. 이로 인해 보안 규정을 위반할 수 있다. 
  • 마지막으로, 데이터 integration/transfroamtion 프로세스로서 ETL은 20년 넘는 기술 스택을 쌓아왔고, 이는 ETL을 진행하기 위해서 잘 개발된 도구와 플랫폼이 많이 있다는 것을 의미한다. 또한, ETL 파이프라인 구축에 숙련되고 경험이 풍부한 데이터 엔지니어가 많다는 뜻이기도 하다.

 

ELT?!

ELT란 데이터를 먼저 추출 적재한 이후 변환을 하는 프로세스를 의미한다. ELT에서는 데이터 웨어하우스에서 데이터 변환이 일어난다. 즉, 데이터 스테이징이 필요하지 않다. ELT는 클라우드 기반 데이터 웨어 하우스 솔루션을 사용하여 정형, 비정형, 반정형(semi-structured) 데이터 유형의 모든 데이터 타입을 활용할 수 있다.

 

ELT는 데이터 레이크(Data Lakes)에서 동작한다. Data Lakes란 OLAP 데이터 웨어하우스와 달리 정형, 비정형 데이터 모두를 수용하는 특별한 종류의 데이터 저장소이다. 데이터를 로드하기 전에 데이터를 변환할 필요가 없다. 형식이나 데이터 종류에 관계없이 모든 유형을 Raw 데이터 형태로 적재할 수 있다.

 

하지만 여전히 BI(Business intellgence) 플랫폼을 이용해 분석하기 위해서는 데이터 변환이 필요하다. 그래서 데이터 변환 과정은 데이터 레이크에 적재된 후에 수행된다. 

 

ELT는 다음과 같은 특징이 있다.

  • 기술의 발전 덕분에 가능해진 고속 클라우드 서버 기반 프로세스이다 : ELT는 최신 클라우드 기반 기술 덕분에 가능해진 비교적 새로운 기술이다. 클라우드 기반 데이터 웨어하우스는 거의 무제한에 가까운 스토리지 기능과 확장 가능한 처리 능력을 제공한다. Amazon Redshift와 Google BigQuery와 같은 플랫폼은 엄청난 처리 능력 덕분에 ELT 파이프라인을 가능하게 한다.
  • 모든 데이터를 수집 가능하다 : ELT를 사용하면 지속적으로 확장되는 Raw 데이터를 즉시 수집 가능하다. 데이터를 데이터 레이크에 저장하기 전에 데이터를 특수한 형태로 변환할 필요가 없다.
  • 필요한 데이터만 변환한다 : ELT는 특정 분석에 필요한 데이터만 변환한다. 데이터 분석 프로세스가 느려질 수 있지만, 다양한 방식으로 즉시 변환하여 다양한 유형의 메트릭, 예측 및 보고서를 생성할 수 있기 때문에 유연성이 향상된다. 반대로 ETL의 경우 OLAP 웨어하우스 전체 ETL 파이프 라인 및 데이터 구조에서 새로운 유형의 분석이 허용되지 않는 경우 전체 프로세스를 수정해야 할 필요할 수 있다.
  • ELT는 ETL보다 신뢰성이 낮다 : ELT의 툴과 시스템은 여전히 발전하고 있고, OLAP 데이터베이스와 결합된 ETL만큼 안정적이지는 않다. 또한 ELT 기술을 사용할 줄 아는 개발자는 ETL 개발자보다 찾기가 더 어렵다.

ELT의 가장 큰 장점

ETL에 비해 ELT의 주요 이점은 새로운 비정형 데이터에 대한 유연성 및 저장 용이성과 관련이 있다. ELT를 사용하면 먼저 정보를 변환하고 구성할 시간이나 기능이 없어도 모든 유형의 정보를 저장할 수 있으므로 원하는 경우 언제든지 모든 정보에 즉시 액세스 할 수 있다. 또한 데이터를 수집하기 전에 복잡한 ETL 프로세스를 개발할 필요가 없으며, 개발자와 BI 분석가가 새로운 정보를 처리하는데 소요되는 시간을 절약할 수 있다.

 

ELT를 사용할 때의 베네핏은 다음과 같다.

  1. 빠르다 - 데이터 가용성에 있어서는 ELT가 더 빠른 옵션이다. ELT는 모든 데이터를 즉시 시스템으로 전송할 수 있도록 하며, 거기서 사용자는 변환과 분석에 필요한 데이터를 스스로 결정할 수 있다.
  2. 유지 보수 비용이 낮다 - ELT를 사용하면 일반적으로 손이 많이 가는 유지 관리 계획을 수립할 필요가 없다. ELT는 클라우드 기반이므로 사용자가 수동 업데이트를 시작하지 않고 자동화된 솔루션을 활용한다.
  3. 짧은 적재(Load) 시간 - 변환 단계는 데이터 웨어하우스에 진입한 후에 발생하기 때문에, 데이터를 최종 위치에 로드하는데 걸리는 시간을 줄입니다. 데이터가 정리되거나 수정될 때까지 기다릴 필요가 없으며, 한 번만 이동하면 된다.

 

그렇다면 언제 ELT를 사용할까?

이 글에서 알 수 있듯 ETL과 ELT는 각각의 장단이 있다. ETL 대신 언제 ELT를 사용하는 게 좋을까?

  1. 방대한 양의 데이터를 보유했을 경우 - ELT는 정형 데이터와 비정형 데이터 모두에서 잘 작동한다. 시스템이 클라우드 기반인 한 ELT 프로세스를 통해 방대한 양의 데이터를 보다 신속하게 처리할 수 있다.
  2. 가능한 한 빨리 모든 데이터를 한 곳에 보관해야 할 경우 - 프로세스가 종료될 때 ELT는 전송 속도를 다른 모든 데이터보다 우선시한다.
  3. 데이터를 처리할 수 있는 리소스를 가지지 못했을 경우 - ETL를 사용하면 데이터 웨어하우스에 도착하기 전 파이프라인에서 데이터 변환이 일어나야 한다. 이때 요구되는 리소스는 상황에 따라 매우 클 수가 있는데, ELT 방식을 이용하면 추후 필요 데이터만 변환함으로써 경제적 유연성을 갖출 수 있다.

 

Reference

 

댓글