ETL vs ELT, 당신의 선택은?

ELT의 장단점과 딜라이트룸에서의 도입 후기

Chris Lee
DelightRoom
6 min readJan 29, 2024

--

여러분, 데이터를 수집하고 처리하여 분석할 수 있는 상태로 만드는 데에도 여러가지 접근 방식이 있다는 것을 알고 계셨나요? 오늘은 데이터 파이프라인에서 취할 수 있는 두가지 주요한 동작 방식인 ELT와 ETL에 대해 이야기해보려고 합니다. 특히, 딜라이트룸이 왜 ELT 방식을 택했는지, 그로 인해 어떤 이점을 기대할 수 있는지 살펴보겠습니다.

ETL(Extract — Transform — Load) 이란 무엇일까요?

데이터 처리의 맥락에서 ETL은 데이터를 추출(Extract), 변환(Transform), 그리고 적재(Load)하는 전통적인 방식을 말해요. 각 단계는 말 그대로, 데이터를 소스에서 가져오는 ‘추출’, 원하는 형태로 가공하는 ‘변환’, 그리고 최종 목적지에 저장하는 ‘적재’로 이루어져 있죠.

그런데 여기서 중요한 포인트는 ‘변환’ 단계입니다. ETL은 데이터를 목적지에 저장하기 전에 먼저 가공합니다. 이는 우리가 필요한 데이터만을 선택적으로 저장하고, 우리의 저장소를 효율적으로 활용하기 위한 과정이에요.

ETL은 다음과 같은 장점이 있습니다:

  • 효율적인 저장 공간 사용: 꼭 필요한 데이터만 최종적으로 우리의 목적지 데이터 저장소에 쌓이게 되므로 효율적으로 저장 공간을 사용하게 됩니다.
  • 보안과 규정 준수: 변환 과정에서 원본 데이터에 있던 민감한 정보를 제거하거나 GDPR, HIPAA 등 다양한 규정에 맞추기 용이합니다.
  • 검증된 기술: 역사가 오래된 만큼 지금까지 많은 관련 지식이 쌓였고 도구나 전문가들도 더 쉽게 찾을 수 있습니다.

하지만 다음과 같은 단점도 가지고 있죠:

  • 까다로운 유지보수: 데이터의 종류와 양이 늘어나면서, 변환 과정을 맞춤 설정하고 유지하는 일이 점점 더 복잡 해 집니다.
  • 높은 변환 단계 운용 비용: 대량의 데이터를 처리 하려면, 변환 단계에서도 상당한 컴퓨팅 자원이 필요합니다. 이를 위한 별도의 시스템이 필요하고, 그만큼 운영 비용도 올라갑니다.
  • 낮은 유연성: 변환 단계에서 이미 데이터의 최종 형식을 정해두기 때문에, 나중에 다른 형태의 데이터가 필요할 때 대응하기 어렵습니다.

ELT(Extract — Load — Transform)는 어떤 방식일까요?

ELT는 ETL과는 다르게, 데이터를 추출한 다음 바로 적재(Load)하고, 그 후에 변환(Transform)하는 방식이에요. 이 방식은 최근에 현대적인 클라우드 데이터 웨어하우스의 발전과 함께 더욱 주목받기 시작했습니다.

ELT의 장점은 다음과 같아요:

  • 간단한 시스템 구성: 데이터를 변환하는 작업은 데이터 웨어하우스에서 이루어지기 때문에, 복잡한 네트워킹이나 컴퓨팅 자원 관리에 대한 걱정이 줄어듭니다.
  • 높은 유연성: 원본 데이터를 보유하고 있어서, 필요할 때 언제든지 재가공이 가능합니다.
  • 적재 외주화: 완전히 정리된 형식의 데이터가 아니더라도 일단 원본 데이터를 그대로 적재를 해두고 변환만 내부적으로 하면 되므로, 적재 과정을 외부에 맡기기 용이합니다. 특히 다양한 소스로부터 데이터를 받아와야 하는 경우 추출, 적재 부분을 직접 구현, 유지보수하는 비용을 아낄 수 있습니다.

반면에 ELT는 다음과 같은 단점도 있습니다:

  • 보안과 규정 준수: 아무래도 원본 데이터를 모두 적재해두고 사후에 변환하기 때문에 준수해야할 규정에 맞지 않는 데이터까지 적재하게 될 수도 있습니다.
  • 비효율적인 저장 공간 사용: 실제 당장 꼭 필요한 데이터보다 더 많은 데이터를 미리 적재해두고 사용 하므로 아무래도 저장 공간을 더 많이 사용하게 됩니다.

딜라이트룸에서 ELT를 도입한 이유는 무엇일까요?

딜라이트룸은 초기에 ETL 방식을 사용했었습니다. 하지만 시간이 지나면서, 변환 레이어의 복잡성과 운영 비용이 증가하는 것을 체감했어요. 또한, 데이터 양이 많아지면서 변환 과정과 적재 과정에서 발생하는 트래픽 비용, 시간 소요, 네트워크 전송 실패 등 여러 문제가 발생했습니다.

이러한 문제들을 해소하고자 저희는 ELT 방식을 도입해 보았습니다. ELT 방식은 기본적으로 데이터를 먼저 적재하고, 필요에 따라 데이터 웨어하우스 내에서 처리를 합니다. 이로 인해 관리해야 할 요소가 줄어들고, 데이터 모델링에 있어서도 더 많은 자유와 유연성을 가질 수 있게 되었습니다.

개발자의 자원이 매우 소중한 소규모 스타트업의 특성상 EL(추출-적재) 파트를 외주화 할 수 있는 점도 중요한 요인이었습니다. Fivetran과 같은 서비스를 사용하여 직접 개발을 최소화 하며 다양한 데이터 소스로부터 안정적으로 데이터 적재가 가능하였습니다. 혹은 서드파티에 따라서 우리의 데이터 레이크(AWS S3)로 데이터를 푸쉬해주는 기능이 있다면 적극 활용하여 파이프라인을 단순화 시키고 있습니다.

이미 모든 데이터를 받아두었으므로, 변환은 단일 데이터 웨어하우스내에서 수행할 수 있습니다. 이때는 dbt와 같은 도구의 도움을 받아 데이터 모델링 및 변환 수행 과정을 일관적인 코드(SQL + a)로 정의하고 표준적인 방법으로 문서화 및 변화 추적을 할 수 있습니다. 이에 대해서는 별도의 글에서 더 자세히 소개하여 보겠습니다.

요약하면, 저장 공간에 비용을 더 들이는 대신, 개발 비용과 운영 복잡도를 감소시키고 유연성을 얻는 일석삼조의 효과가 있었습니다. 현대의 클라우드 환경에서 저장공간은 매우 저렴한 편이므로 이러한 트레이드오프를 감수할 만 한 가치가 있었다고 볼 수 있습니다.

결론

ELT 방식은 현대 데이터 환경의 복잡성과 비용 문제에 대한 한 가지 해답을 제시하고 있습니다. 데이터 관리의 유연성을 높이고, 비용을 절감하며, 시스템의 복잡성을 줄이는 데 큰 도움이 되죠. 하지만 모든 상황에 맞지는 않을 수 있기 때문에 장단점을 잘 따져 볼 필요가 있습니다. 파이프라인 일부에 대해 점진적으로 시험삼아 적용해보는 것도 방법입니다. 데이터를 중심으로 하는 비즈니스를 운영하신다면, 그리고 아직 ETL 방식을 고수하고 계신다면 ELT의 도입을 시도해 보시는 것을 추천드립니다!

⏰ 딜라이트룸에서 알라미와 함께 아침을 바꿀 분들을 모십니다

🙌딜라이트룸의 다양한 채널들을 팔로우하고 빠르게 소식을 받아보세요!

--

--