[Data Engineering] 데이터 웨어하우스와 ETL/ELT는 어떻게 구성되는가?

2025. 5. 12. 22:55·📊 Data Engineering

데이터 웨어하우스와 ETL/ELT

데이터 레이크(Data Lake)란?

  • 구조화/반정형/비구조화 데이터를 원형 그대로 저장할 수 있는 저장소
  • 로그 파일, 이미지, JSON, CSV 등 다양한 형식의 데이터를 장기 보존 가능
  • 보통 데이터 웨어하우스보다 저장 용량이 훨씬 크고 비용 효율이 뛰어남
  • 대표적인 예시: Aamzon S3
💡 데이터 레이크 + 데이터 웨어하우스를 함께 사용하는 구조가 현대적인 데이터 플랫폼의 기본 형태이다.

 

 

ETL vs ELT

구분 ETL (Extract -> Transform -> Load) ELT (Extract -> Load -> Transform)
처리 위치 외부에서 가공 후 DW로 적재 DW에 먼저 적재한 뒤 내부에서 가공
주 사용자 데이터 엔지니어 분석가, Analytics Engieer
대표 도구 Airflow, Python, Spark dbt, SQL, Looker 모델링
주요 활용 원천 데이터 통합 및 정제 요약 테이블 생성, 분석 친화적 데이터 모델링

 

 

ETL/ELT 자동화: Apache Airflow

  • 파이썬 기반 워크플로우 스케줄러
    • ETL 간 의존성 정의 (DAG 구조)
    • 실패 알림, 재시도, 재실행 등의 운영 기능 제공
  • 구성 요소
    • Scheduler, WebServer, Worker
  • 대규모 ETL을 효율적으로 운영하기 위한 표준 도구

 

ELT가 강조되는 이유

  • 데이터 규모와 복잡도가 증가함에 따라, 단순 추출/적재보다도 분석 친화적 데이터 구조 생성이 핵심이 된다.
  • 예:
    • 고객 매출 요약 테이블
    • 제품 카테고리별 트렌드 요약

주요 데이터 웨어하우스 솔루션 비교

제품명 특징 요약
Redshift AWS 기반, MPP 구조, Serverless 옵션, S3/Athena 통합
Snowflake 모든 주요 클라우드 지원, 데이터 마켓/쉐어링 기능, 비구조화 처리 우수
BigQuery 구글 서버리스 DWH, 쿼리 최적화 우수, Nested/Repeated 필드 지원
Hive Hadoop 기반 전통 DWH, 처리량은 좋지만 속도는 느림
Presto 다양한 소스에 걸친 실시간 SQL 실행 가능, Athena 기반
Iceberg 테이블 포맷으로서 ACID 지원, Spark/Flink 연동, 타임트레블 가능
Spark 범용 빅데이터 처리 엔진 (ETL, ML, Streaming 등 다목적 활용)

 

 

데이터 플랫폼의 진화

초기 단계

  • 데이터 웨어하우스 + ETL로 시작
  • Redshift 또는 BigQuery 기반 단순 분석 환경

성장 단계

  • Spark, Hadoop 기반의 분산 처리 도입
  • 로그, 이벤트 기반의 대용량 데이터 -> 데이터 레이크 (S3)로 저장

성숙 단계

  • ELT 중심 구조로 전환 (dbt 기반 분석 모델링 도입)
  • 현업팀의 셀프 서비스 분석 가속화
  • MLOps 등 머신러닝 모델 운영 효율화 시도

'📊 Data Engineering' 카테고리의 다른 글

[Data Engineering] Batch Processing과 Stream Processing이란?  (2) 2025.06.02
[Data Engineering] Apache Airflow 기반의 데이터 파이프라인 Part.01  (0) 2025.05.28
[Data Engineering] 데이터 팀의 역할과 조직은 어떻게 구성되는가?  (1) 2025.05.12
[Data Engineering] 개인 사이드 프로젝트#01 복기 2편 (feat. influxdb란?)  (3) 2025.04.30
[Data Engineering] 개인 사이드 프로젝트#01 복기 1편 (feat. Kafka란?)  (2) 2025.04.30
'📊 Data Engineering' 카테고리의 다른 글
  • [Data Engineering] Batch Processing과 Stream Processing이란?
  • [Data Engineering] Apache Airflow 기반의 데이터 파이프라인 Part.01
  • [Data Engineering] 데이터 팀의 역할과 조직은 어떻게 구성되는가?
  • [Data Engineering] 개인 사이드 프로젝트#01 복기 2편 (feat. influxdb란?)
givemechocopy
givemechocopy
복잡성을 통제하는 것이 컴퓨터 프로그래밍의 본질이다. @Brian Kernighan (C언어 공동 창시자)
  • givemechocopy
    Develop Your Senses As a Developer
    givemechocopy
  • 전체
    오늘
    어제
    • 분류 전체보기 (19)
      • 🛠️ Backend Development (1)
      • 📜 Certification (3)
        • ADsP (3)
        • Information Processing (0)
        • SQLD (0)
      • ☁️ Cloud Computing (2)
      • 💻 Computer Science (1)
      • 📊 Data Engineering (9)
      • 🧩 Problem Solving (0)
      • 🧪 Software Engineering (2)
      • 📰 Tech Trends (1)
  • 블로그 메뉴

    • 태그
    • 방명록
    • 카테고리
  • 링크

    • Github
  • 인기 글

  • 태그

    데이터엔지니어
    파이썬
    datapipeline
    timeseries
    코테
    코딩테스트
    자격증
    dataengineering
    ADsP
    data
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
givemechocopy
[Data Engineering] 데이터 웨어하우스와 ETL/ELT는 어떻게 구성되는가?
상단으로

티스토리툴바