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, 그리고 다른 패턴들이 조합되어 사용되며, 이를 통해 효율적이고 유연한 데이터 파이프라인을 구축할 수 있음.