ETL vs ELT 비교하기
ETL vs ELT 비교하기

ETL vs ELT 비교하기

설명
ETL vs ELT: key Differences
Last Updated
Last updated May 3, 2023
태그
ETL
ELT
DE
Data Engineering

E, L, T의 의미

  • ETL과 ELT는 둘다 DA(데이터 분석), BI(Business intelligence), DS(Data science)를 위해 데이터를 정재하고, 질을 높이고, 변형하는데 사용된다.

Extract

  • 데이터를 가져오는것
  • Database(NoSQL, SQL 상관 없이), XML file, cloud platform, API 등 다양한 소스 가능

Transform

  • 데이터를 원하는 목적에 맞게 변형시키는 것
  • DA(데이터 분석), BI(Business intelligence), DS(Data science) 등의 목적

Load

  • 데이터를 타겟 시스템에 저장하는것
  • 타겟 시스템: Data Lake, Data Warehouse, Lakehouse, Data Mart 등 목적에 따라
 

ETL

  • 데이터를 추출(E) -> 변환(T) -> 적재(L) 순으로 데이터를 처리하는 프로세스

ELT

  • 추출(E) -> 적재(L) -> 변환(T) 순으로 데이터를 처리하는 프로세스
 

배경

1960후반

  • 디스크 스토리지가 펀치 카드를 대체하여 데이터에 직접 액세스 하게 됨
  • IBM과 같은 회사들이 데이터(적재/추출/변형/제거/제약 등) 관리에 최적화된 DBMS(데이터 베이스 관리 시스템)를 개척했다.

1970년대

  • 데이터를 통합하는 최초의 표준화된 방법 ETL의 등장
  • 트랜잭션, 급여 시스템, 재고 로그 및 ERP 에서 데이터를 집계하고 중앙 집중화 하는 방법이 필요하게 됨

1980~1990년대

  • DW가 증가함에 따라 ETL이 더욱 중요해짐
    • DW는 다양한 소스의 데이터를 통합할 수 있지만, 일반적으로 각 데이터 원본에 대해 사용자가 직접 ETL 개발을 해야한다.
    • ETL Tool들의 폭발적인 진화
      • 싸고 효율적으로 ETL 개발할수 있는 tool들이 증가했다.

2000년대

  • 클라우드 컴퓨팅 등장
  • 대량의 데이터 발생
  • 리소스들의 가격 인하
 
  • ETL처럼 적재하기전에 먼저 변형하지 말고, 일단 모든 데이터를 한 공간에 저장 후, 용도에 따라 필요할 경우에 데이터를 변형해 사용하자 (ELT)

ETL

특징

  • ETL 은 소스시스템에서 raw데이터를 추출하고, 데이터를 변경한 뒤, DW로 로드하는 데이터 통합 방법론 이다.
    • 성공적으로 변경된 이후에만 DW에 적재
  • 타겟 DB의 정책에 맞게 데이터를 가공하여 적재
    • 관계형 Database로 구성된 OLAP 성격의 DataWarehouse에 주로 사용
    • 이로인해 소스가 관계형 Database가 아닌 경우엔 무조건 변환 후 적재 되어야 한다
  • 주로 유한한 메모리 및 처리 능력을 가지고 온프라미스 데이터베이스에 주로 사용
  • 개발시 데이터 엔지니어의 상세계획 및 유지보수 중요
    • 데이터 엔지니어가 비즈니스 및 요구사항을 이해하고 이를 쿼리로 구현하는 것은 매우 큰 시간이 소요된다
    • 기존 개발된 내용을 새로운 요구사항으로 변경하기 위해서는, 기존의 로직을 이해하고 새로운 목적에 맞게 수정해야하기에 이 또한 오랜 시간이 걸린다.

장점

  • 분석에 필요한 데이터들로만 적재되어 있기에 효율적이고 안정적인 데이터 분석이 가능하다.
  • 데이터를 로드하기 전, 중요 보안데이터를 처리하여 개인정보 보호 규정을 준수할 수 있다.
  • 잘 개발된 도구와 플랫폼이 많다. 경험이 많은 엔지니어가 많다.
 

ELT

특징

  • ETL과 다르게 Load전에 데이터 변환이 필요하지 않다.
  • Row 데이터를 그대로 적재, 이후 목적에 따라 Transform 하여 활용
 

장점

  • Real time: 변환을 위한 step이 없기에 (경우에 따라 이는 다른 서버로 데이터를 전송하고 처리하기도 한다) 빠른 데이터 수집 가능
  • Lower cost, lower maintenance: 데이터를 수집하기 전 비즈니스, 요구사항을 이해하고 개발하는 ETL 처럼 손이 많이 가는 유지관리 계획을 수립할 필요가 없다.
 

사견

사실 ETL/ELT구분이 크게 의미가 있는지 모르겠다.
ETL은 DW/DM스럽게 효율적으로 적재하기 위한 방법, ELT는 Lake스럽게 일단 데이터 다 넣어놔 정도 느낌만 알아도 될듯하다.
 
ETL은 데이터가 추가적으로 필요할시, 데이터 엔지니어가 비즈니스를 이해하고 소스시스템과 컨택하여 모든 데이터, 로직을 확인해보고 새롭게 쿼리를 기반으로 ETL 개발해야하는 비효율이 컸다.
ELT는 일단 모든데이터가 Lake에 적재되어있다는 가정하에 위와같은 비효율을 어느정도 개선할수 있었고,
Hadoop이후에는 Lake내에서 분산처리등을 활용한 powerful 처리 성능을 통해 Data engineering 작업들을 효율적으로 처리하는 흐름으로 흘러갔다.
이러한 흐름속에서 결국 Lake에서도 어떤 데이터가 어떤식으로 적재되었는지 Data governace, lineage, quality등이 중요하게 될것이다
또한 Data mash 등의 탈 Lake 정책들 또한 대두되고 있으니 주의깊게 살펴보아야 할듯하다.
 

Reference