ETL과 ELT의 차이, 데이터는 어떻게 옮겨질까

ETL이란 무엇인가

ETL은 Extract(추출), Transform(변환), Load(적재)의 줄임말입니다. 여러 시스템에 흩어진 데이터를 가져온 뒤, 분석에 적합한 형태로 미리 가공하고, 그 결과를 데이터 웨어하우스 같은 저장소에 저장하는 방식입니다. 예를 들어 쇼핑몰의 주문 데이터를 옮긴다고 하면, 주문 시스템에서 데이터를 뽑아내고(Extract), 날짜 형식을 통일하거나 중복을 제거하는 등 별도의 변환 서버에서 가공한 후(Transform), 최종적으로 분석용 DB에 저장(Load)하는 순서로 진행됩니다. 마치 이삿짐을 옮기기 전에 짐을 미리 정리하고 라벨을 붙여서 트럭에 싣는 것과 비슷합니다.

ELT는 무엇이 다를까

ELT는 순서가 다릅니다. Extract(추출), Load(적재), Transform(변환) 순으로, 데이터를 가공 없이 먼저 타겟 저장소에 그대로 적재한 뒤, 필요할 때 저장소 내부에서 변환 작업을 수행합니다. 이삿짐 비유로 보면, 짐을 정리하지 않고 일단 새 집으로 옮긴 다음, 그 집 안에서 필요한 만큼 정리하는 방식입니다. 이 방식이 가능해진 이유는 클라우드 데이터 웨어하우스(예: BigQuery, Snowflake, Redshift)가 대용량 데이터를 빠르게 처리할 수 있는 강력한 연산 능력을 갖추게 되었기 때문입니다. 원본 데이터를 그대로 저장하기 때문에 나중에 다른 방식으로 재가공하기도 쉽습니다.

실무에서는 왜 ELT를 많이 쓸까

최근 데이터 엔지니어링 현장에서는 ELT가 점점 더 선호되고 있습니다. 그 이유는 다음과 같습니다.

  • 변환 로직을 SQL로 저장소 안에서 바로 처리할 수 있어 유연성이 높음
  • 원본 데이터를 그대로 보관해 데이터 손실이나 재처리 문제에 대응하기 쉬움
  • 클라우드 인프라의 확장성 덕분에 대량 데이터도 빠르게 처리 가능

반면 ETL은 변환 로직이 미리 정해져 있고 구조가 단순한 환경, 혹은 저장소의 연산 자원이 제한적인 경우에 여전히 유용합니다. 결국 어떤 방식을 선택할지는 데이터 규모, 인프라 환경, 변환 로직의 복잡도에 따라 달라지며, dbt와 같은 도구는 ELT 구조에서 변환 단계를 체계적으로 관리하는 데 널리 쓰이고 있습니다.

댓글 남기기