ETL vs ELT, 데이터 파이프라인 설계는 어떻게 다를까?

ETL과 ELT의 정의

데이터 파이프라인을 설계할 때 가장 먼저 마주치는 개념이 ETL과 ELT입니다. 둘 다 여러 시스템에 흩어진 데이터를 모아 분석 가능한 형태로 만드는 과정이지만, 순서와 처리 위치가 다릅니다. ETL은 Extract(추출), Transform(변환), Load(적재)의 약자로, 데이터를 원본 시스템에서 뽑아낸 뒤 별도의 처리 서버에서 정제하고 나서야 데이터 웨어하우스에 적재합니다. 반면 ELT는 Extract, Load, Transform 순서로, 일단 원본 데이터를 그대로 적재한 뒤 데이터 웨어하우스 내부에서 변환 작업을 수행합니다.

비유하자면 ETL은 ‘재료를 집에 가져오기 전에 미리 손질해서 냉장고에 넣는 방식’이고, ELT는 ‘재료를 일단 냉장고에 통째로 넣어두고 요리할 때마다 필요한 만큼 꺼내 손질하는 방식’이라고 볼 수 있습니다.

동작 원리와 예시로 살펴보기

ETL 방식에서는 예를 들어 여러 나라의 매출 데이터를 모을 때, 통화 단위를 통일하고 결측치를 제거하는 작업을 별도의 변환 서버에서 먼저 처리한 뒤에야 최종 데이터베이스에 저장합니다. 코드로 표현하면 대략 이런 흐름입니다.

  • extract() → transform() → load()
  • 변환 로직이 파이프라인 코드 안에 존재
  • 적재되는 데이터는 이미 정제된 상태

ELT 방식은 반대로 원본 데이터를 있는 그대로 BigQuery나 Snowflake 같은 클라우드 데이터 웨어하우스에 먼저 적재합니다. 이후 SQL 쿼리나 dbt 같은 도구를 활용해 웨어하우스 내부에서 변환을 수행합니다.

  • extract() → load() → transform()
  • 변환 로직이 SQL 쿼리나 별도 모델링 도구에 존재
  • 원본 데이터가 보존되어 나중에 다시 가공 가능

실무에서 ELT를 선호하는 이유

과거에는 저장 공간과 컴퓨팅 자원이 비쌌기 때문에 ETL처럼 미리 변환해서 필요한 데이터만 저장하는 방식이 효율적이었습니다. 하지만 클라우드 데이터 웨어하우스가 보편화되면서 저장 비용이 낮아지고 병렬 처리 성능이 크게 향상되었습니다. 이런 환경에서는 원본 데이터를 그대로 적재해두고, 분석 요구사항이 바뀔 때마다 웨어하우스 안에서 유연하게 변환하는 ELT 방식이 훨씬 실용적입니다.

또한 ELT는 원본 데이터를 그대로 보관하기 때문에 나중에 변환 로직에 오류가 있었다는 사실을 발견하더라도 원본부터 다시 처리할 수 있다는 장점이 있습니다. 다만 데이터 웨어하우스의 컴퓨팅 자원을 변환 작업에도 사용하게 되므로, 비용과 쿼리 성능을 함께 고려한 설계가 필요합니다.

관련 글

댓글 남기기