Skip to content

data-pipeline-etl-elt-pattern

TL;DR

  • ETL(Extract, Transform, Load)과 ELT(Extract, Load, Transform)는 데이터 파이프라인의 두 가지 주요 설계 패턴임.
    • ETL : 원시 데이터는 일종의 파일 스토리지(S3, 로컬 등)에 저장, python / spark / scala 등 SQL 이 아닌 다른 언어로 변환된 후 최종 사용자가 사용할 수 있도록 테이블에 로드
    • ELT : 원시 데이터를 데이터웨어하우스에 로드하고 SQL을 사용하여 최종 사용자가 사용할 수 있는 최종 테이블로 변환
  • ETL은 데이터를 먼저 변환한 후 로드하는 전통적인 방식이며, ELT는 데이터를 원시 형태로 로드한 후 나중에 변환하는 방식임.
  • ETL은 데이터 품질과 정합성에 강점이 있으며, ELT는 클라우드 환경에서의 유연성과 확장성에 유리함.

ETL (Extract, Transform, Load)

  • 전통적인 데이터 파이프라인 설계 패턴
  • 데이터를 소스에서 추출한 후, 파일 스토리지 ( S3, 로컬 등 ) 저장 후, 스테이징 영역에서 변환하고 나서 최종적으로 데이터 웨어하우스나 데이터 마트에 로드.
  • 데이터 변환 시 복잡한 로직을 처리할 수 있어, 데이터 품질과 일관성을 높일 수 있음.
  • 대량의 데이터를 배치 처리하는 동안 시간이 소요될 수 있으며, 스토리지와 처리 성능에 부담이 클 수 있음.
  • 비즈니스 인텔리전스(BI) 도구와의 통합이 용이하여, 전통적인 데이터 분석 환경에 적합함.

ELT (Extract, Load, Transform)

  • 현대적인 데이터 처리 방식으로, 클라우드 기반 솔루션과 데이터 레이크에서 점점 더 인기를 끌고 있는 패턴임.
  • 데이터를 원시 형태로 로드한 후, SQL을 사용해 데이터 웨어하우스 내에서 변환 작업을 수행함.
  • 초기 데이터 로드가 빠르며, 데이터를 다양한 방식으로 분석하거나 변환할 수 있음.
  • 데이터를 원시 형태로 저장하기 때문에 후속 분석이나 다른 변환 작업에 유용하지만, 높은 스토리지 비용이 발생할 수 있음.
  • 데이터 변환을 데이터 웨어하우스에서 수행하기 때문에, 복잡한 변환 작업을 위해서는 높은 컴퓨팅 자원이 필요함.
Criteria Notes ELT ETL
Running cost 데이터 웨어하우스 내에서 변환 작업을 수행하는 하는 것이 Kubernete Task 또는 serverless 를 사용하는 것 보다 비쌀 수 있음 ✔️
Engineering expertise 두 방법 모두 분산 시스템, 코딩, 유지 보수, 디버깅, SQL 등의 기술적 전문 지식이 필요 ✔️ ✔️
Development time Fivetran이나 dbt와 같은 도구를 사용하면 ELT의 개발 시간이 단축될 수 있음. ✔️
Transformation capabilities 프로그래밍 언어(예: Python, Scala, Spark)를 통해 복잡한 변환 작업을 처리할 수 있음. SQL은 이보다 단순한 변환 작업에 적합함. ✔️
Latency between data generation and availability ELT의 경우, SQL이 스트리밍 변환을 지원하지 않기 때문에 변환 작업은 배치 처리로 수행됨. 반면, ETL은 배치, 마이크로 배치, 스트리밍 방식 모두 처리 가능함. ✔️
SAAS tools Fivetran, Airbyte 등 EL 도구의 활용으로 데이터 기능을 빠르게 제공할 수 있음. ✔️

CDC (Change Data Capture) 및 ETLT (Extract, Transform, Load, Transform)

  • CDC는 실시간으로 데이터 소스의 변경 사항을 캡처하여, 데이터 웨어하우스에 최신 상태로 반영하는 방식임.
  • ETLT는 ELT의 하위 패턴으로, 초기 변환을 추가하여 데이터를 더 효율적으로 처리함.
  • CDC는 실시간 데이터 동기화에 유리하며, ETLT는 데이터 품질과 보안을 향상시키는 데 유리함.
  • 복잡한 데이터 파이프라인 설계에서는 ETL, ELT, CDC, ETLT 패턴이 혼합되어 사용될 수 있음.

결론

  • ETL과 ELT는 각각의 장단점이 명확하며, 데이터의 특성과 요구사항에 따라 적절한 방법을 선택하는 것이 중요함.
  • CDC와 ETLT는 각각의 특수한 요구 사항을 충족시키기 위한 추가적인 패턴임.
  • 현대의 데이터 환경에서는 종종 ETL과 ELT, 그리고 다른 패턴들이 조합되어 사용되며, 이를 통해 효율적이고 유연한 데이터 파이프라인을 구축할 수 있음.