[데이터 파이프라인] 2. 일반적인 데이터 파이프라인

2025. 6. 17. 18:46·Data Engineering

ETL과 ELT

데이터 파이프라인의 세부 단계에는 세가지가 있다. Extract(추출), Transform(변환), Load(적재)이다. 세 단계의 순서를 어떻게 하느냐에 따라 ETL과 ELT로 나뉜다.

 

  • ETL

전통적인 데이터 파이프라인으로 데이터를 소스에서 추출하고, 회사 내부의 컴퓨팅 자원을 이용해 데이터를 변환하여 데이터베이스나 웨어하우스 저장하는 방식이다. 오랫동안 쓰여 왔고 변환된 데이터를 간편하게 쓸 수 있다는 장점이 있지만, 데이터 인프라가 변경되면 파이프라인을 다시 만들어야 하는 단점이 있다. 또 필요이상의 데이터를 미리 변환하는 바람에 컴퓨팅 자원이 낭비될 수 있다.

 

  • ELT

데이터의 저장과 분석을 동시에 할 수 있도록 컴퓨팅 자원이 구비된 웨어하우스의 등장으로 새롭게 생겨난 파이프라인 구조이다. 일단 여러 소스에서 데이터를 추출하면 저장한다음, 분석이나 모델에 적용하기 쉽도록 데이터를 변환한다. 이게 가능한 이유는 데이터 웨어하우스는 열 기반 데이터베이스를 사용하기 때문이다.

 

 

행 기반 데이터베이스 vs 열 기반 데이터베이스

출처 : https://www.couchbase.com/blog/ko/columnar-store-vs-row-store/

 

Column-Store vs. Row-Store: What’s The Difference?

This blog post from Couchbase provides an overview of the differences between columnar and row-oriented databases. Learn what works for your application.

www.couchbase.com

 

데이터베이스에 저장할 자료

 

다음과 같은 자료를 데이터베이스에 저장한다고 가정하자.

 

  • 행 기반 데이터베이스

MySQL, PostgreSQL 처럼 평소 사용하는 데이터베이스는 행을 기준으로 디스크에 저장한다. 테이블의 행을 레코드(Record)라 하는데, 디스크에는 한 레코드가 일렬로 저장된다. 하나의 행에는 여러 개의 열 정보가 들어간다.

 

Ann Boise 16 | Con Denver 15 | Kian Laramie 21 | Gene Hanford 0 (이런식으로 디스크에 순서대로 저장)

 

쇼핑몰에서 회원에 대한 정보를 저장하거나, 주문 내역을 저장한다면 이러한 저장 방식이 효율적일 수 있다. 문제는 데이터 분석을 위해 열 한개의 모든 데이터를 디스크에서 메모리로 가져올 때다. 데이터베이스에 있는 데이터를 페이지로 가져오기 때문에 모든 데이터 페이지를 메모리로 가져와야 한다. 이는 컴퓨팅 자원의 낭비이다.

 

  • 열 기반 데이터베이스

Amazon Redshitt, Snowflake와 같은 데이터 웨어하우스들은 열을 기반으로 데이터를 저장한다.

 

Ann Con Kian Gene | Boise Denver Laramie Hanford | 16 15 21 0

 

이렇게 저장하면 한 디스크 공간에 같은 열의 데이터들이 모여있게 된다. 분석을 위해 하나의 데이터 열을 가져올 때 소수의 페이지만 메모리로 가져오면 되기 때문에 행 기반 데이터베이스보다 더 효율적이다. 웨어하우스의 등장으로 ELT라는 비용 효율적인 파이프라인이 등장했다.

 

 

ELT의 세부 종류

 

  • EtLT

작은 부분의 변환 단계가 들어가 있는 구조다. 이 과정에는 누락 데이터 검증, 보안 등을 검사한다.

 

  • 데이터 분석 및 데이터 사이언스용 ELT

ELT의 등장으로 엔지니어는 분석에 사용될 데이터 모델에 대해 신경을 덜 쓰게 되었다. 엔지니어는 EL에 집중하고 분석가는 자기가 가진 툴을 이용해 T를 수행한다.

 

  • 머신러닝 ELT

단순히 분석을 넘어 머신 러닝 모델을 설계하고 배포하는 것까지 데이터 엔지니어링에 포함될 수 있다. 이 경우 데이터 파이프라인과 별개로 머신러닝 과정에 집중된 파이프라인을 따로 설계해야 한다.

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

[Airflow] Slack을 이용한 Airflow 실습 - 3 (Slack Webhook)  (0) 2025.07.01
[Airflow] Slack을 이용한 Airflow 실습 - 2 (Airflow와 DAG)  (0) 2025.06.25
[Airflow] Slack을 이용한 Airflow 실습 - 1 (Docker와 Airflow 연동)  (0) 2025.06.24
[데이터 파이프라인] 1. 데이터 파이프라인 소개 및 설명  (0) 2025.06.16
[Spark] RDD는 무엇인가?  (0) 2025.03.17
'Data Engineering' 카테고리의 다른 글
  • [Airflow] Slack을 이용한 Airflow 실습 - 2 (Airflow와 DAG)
  • [Airflow] Slack을 이용한 Airflow 실습 - 1 (Docker와 Airflow 연동)
  • [데이터 파이프라인] 1. 데이터 파이프라인 소개 및 설명
  • [Spark] RDD는 무엇인가?
BestTomaTo
BestTomaTo
  • BestTomaTo
    기록보관소
    BestTomaTo
  • 전체
    오늘
    어제
    • 분류 전체보기 (36) N
      • Algorithm (8)
      • Computer Science (3)
      • Backend (3)
      • DevOps (4)
        • Kubernetes (3)
        • Docker (0)
      • Data Engineering (8)
      • Cloud (2)
      • AI (1)
      • Security (3) N
        • SK Shieldus Rookies (3) N
      • Reference (2)
      • Project (1)
      • Experience (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    langchain memory
    langsmith
    airlfow
    해커톤 후기
    AWS
    3단계 모델링
    홈 서버
    sql 개발자
    SQLD
    동기 프로그래밍
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
BestTomaTo
[데이터 파이프라인] 2. 일반적인 데이터 파이프라인
상단으로

티스토리툴바