ELT (Extract, Load, Transform) - 클라우드DW 내부에서撬起こす 데이터 변환의革命
⚠️ 이 문서는 ETL(Extract, Transform, Load)의 병목(ETL 서버 과부하)을 해결하기 위해 등장한 대용량 데이터 변환 방법론인 ELT(Extract, Load, Transform)의 탄생 배경, 클라우드 DW의 MPP(Massively Parallel Processing) 엔진을活用した高速 변환 아키텍처, 그리고 dbt(Data Build Tool)를 통한 현대적 ELT 구현을 심층 분석합니다.
핵심 인사이트 (3줄 요약)
- 본질: ELT는 추출(Extract)한 원시 데이터를 우선 클라우드 데이터 웨어하우스(Snowflake, BigQuery, Redshift 등)에 먼저 올린 뒤, 클라우드 DW 내부의 대규모 병렬 처리(MPP) 엔진으로 SQL을 利用하여 변환(Transform)을 수행하는 方法론이다.
- 가치: ETL이 ETL 서버(단일 또는 소수 서버)의 제한된 사양으로 병목에 시달린 반면, ELT는 클라우드 DW의 수십~수백 대 노드가 동시에 분산 처리하여 수 테라바이트의 데이터를 수 분~수 십 분 내에 처리할 수 있다.
- 융합: ELT의 등장과 함께 dbt(Data Build Tool)가 등장하여, 데이터 변환 파이프라인을"코드(SCALA/Python)가 아닌 SQL"로 정의하고, 버전 관리(Git), 테스트 자동화, 문서화를 可能하게 하는 데이터 엔지니어링의 새 지평을 열었다.
Ⅰ. 개요 및 필요성 (Context & Necessity)
1. ETL의 치명적 병목: "ETL 서버라는 좁은 문"
ETL의 Transform 단계는 보통 1대의 강력한 ETL 서버(Scale-up)에서 수행되었습니다. 데이터가 수 테라바이트를 넘기면서 이 서버의 CPU/Memory가 한계에 도달하기 시작했습니다.
- 문제 상황: 야간 Batch 창구(예: 오후 11시~오전 6시) 내에 모든 데이터 처리를 완료해야 합니다. 하지만 ETL 서버의 처리 속도가 데이터 증가분을 따라가지 못하면서, Batch 창구가 끝나기도 전에 다음 날 Batch가 시작되는 Batch Collapse 현상이 발생하기 시작했습니다.
- 네트워크 이중 이동: ETL은 (1) 원본 DB → ETL 서버 → (2) ETL 서버 → DW, 총 두 번의 네트워크 이동이 필요합니다. 수 테라바이트의 데이터를 두 번 이동하는 것은 엄청난 비용입니다.
2. ELT의 탄생: "차라리 DW 내부에서 해결하자"
클라우드 데이터 웨어하우스의 등장으로 이러한 제약이 완전히改观되었습니다.
-
Snowflake 아키텍처: 컴퓨팅과 스토리지가 분리되어 있어, 분석용 클러스터(Virtual Warehouse)를 필요에 따라尺寸 조절(2XL, 3XL, 4XL)하여 수 초~수 분 내에 대규모 병렬 처리가 가능합니다.
-
ELT 핵심 아이디어: 원시 데이터를 원본 그대로 스토리지에 올린 뒤(Load), 분석가/엔지니어가 익숙한 SQL로 변환 처리(Transform)를 DW 내부에서 直接実行합니다. 이렇게 하면 네트워크 이동이 1회(원본 DB → DW)로 줄고, 변환은 수십 대의 MPP 노드가分担합니다.
-
📢 섹션 요약 비유: ETL服务器的 병목은"소독기 1대가 전국의 음식물을 처리해야 하는 상황"과 같습니다.消毒기(ETL服务器)의処理能力には限界があり、全国の食材(데이터)를処理하다 보면翌日の朝食에間に合いません. ELT는"각 지역 대형 물류 센터(클라우드 DW)에食材을 그대로配送한 뒤, 각 물류 센터의大型機器(MPP 엔진)로 소독과정을 처리"하는 것입니다. 중앙消毒기(ETL 서버)의処理能力という制約から解放され、物流速度と処理량이劇的に改善されます.
Ⅱ. 핵심 아키텍처 및 원리 (Architecture & Mechanism)
1. ELT 아키텍처: 원시 데이터 → Cloud DW (MPP 변환)
┌─────────────────────────────────────────────────────────────┐
│ [ ELT (Extract, Load, Transform) 아키텍처 ] │
│ │
│ [ Source Systems ] │
│ ┌──────┐ ┌──────┐ ┌──────┐ │
│ │ ERP │ │ CRM │ │ ... │ │
│ └──────┴──┴──────┴──┴──────┴── ... │
│ │ │
│ └──────────────┐ │
│ ▼ Extract (단순 복사, 원시 데이터) │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ CLOUD DATA WAREHOUSE │ │
│ │ ┌────────────────────────────────────────────────┐ │ │
│ │ │ STAGING LAYER (Raw Zone) │ │ │
│ │ │ - 원시 데이터 원본保存 (Parquet/JSON/CSV) │ │ │
│ │ │ - 스키마 온 리드 (Schema-on-Read) │ │ │
│ │ │ - 추출 시 소스 DB에 최소 부하 │ │ │
│ │ └────────────────────────────────────────────────┘ │ │
│ │ │ │ │
│ │ ▼ Transform (MPP 병렬 처리) │ │
│ │ ┌────────────────────────────────────────────────┐ │ │
│ │ │ TRANSFORMATION LAYER (dbt / SQL) │ │ │
│ │ │ │ │ │
│ │ │ SELECT CREATE TABLE │ │ │
│ │ │ customer_id, sales_summary AS │ │ │
│ │ │ SUM(amount) AS total AS ... │ │ │
│ │ │ FROM raw_orders (MPP Engine가 │ │ │
│ │ │ GROUP BY customer_id 수십 대 노드에서 │ │ │
│ │ │ 並列処理) │ │ │
│ │ └────────────────────────────────────────────────┘ │ │
│ │ │ │ │
│ │ ▼ │ │
│ │ ┌────────────────────────────────────────────────┐ │ │
│ │ │ ANALYTICS LAYER (Gold Zone) │ │ │
│ │ │ - 비즈니스 분석가 즉시 Query 가능 │ │ │
│ │ │ - BI 대시보드, ML 파이프라인 데이터 원천 │ │ │
│ │ └────────────────────────────────────────────────┘ │ │
│ └──────────────────────────────────────────────────────┘ │
│ │
│ ★ ELT vs ETL 핵심 Difference: │
│ ETL: 추출 → [별도 서버에서 변환] → 적재 │
│ ELT: 추출 → [Cloud DW에 원시 적재] → [DW 내부 MPP로 변환] │
└─────────────────────────────────────────────────────────────┘
2. dbt (Data Build Tool): ELT를 код처럼 관리하는 도구
dbt는 ELT 패러다임에서"변환(Transform) 단계"를コード화(버전 관리, 테스트, 문서화)할 수 있게 하는 오픈소스 도구입니다.
- 핵심 특징:
- SQL 만으로 데이터 변환 파이프라인을 정의
- Git과統合되어バージョン管理및コードレビュー 가능
- 각 변환 단계(モデル)에 대한 테스트 자동화 지원
- 실행 결과 문서 자동 생성
- dbt 모델 구조:
-- 모델 1: stg_orders.sql (Raw → Staging)
SELECT
order_id,
customer_id,
order_date,
amount
FROM raw.orders
-- 모델 2: dim_customers.sql (Staging → Dimension)
SELECT
customer_id,
MIN(order_date) AS first_order_date,
SUM(amount) AS total_lifetime_value
FROM stg_orders
GROUP BY customer_id
3. 메달리온 아키텍처 (Bronze, Silver, Gold)
dbt와 ELT를 결합한 전형적인 데이터 파이프라인 구조:
- Bronze (Raw Zone): 원시 데이터 원본保存. 소스 시스템의 데이터를 그대로 카피.
- Silver (Staging Zone): 소스별 정제 및 기본 변환. 중복 제거, NULL 처리, 컬럼名统一.
- Gold (Analytics Zone): 비즈니스 집계 및 분석 가능한 모델. 팩트/차원 테이블, ML 피처 등.
Ⅲ. 비교 및 기술적 트레이드오프 (Comparison & Trade-offs)
ELT vs ETL 핵심 비교
| 구분 | 전통적 ETL | ELT (클라우드 DW) |
|---|---|---|
| 변환 위치 | ETL 서버 (별도, Scale-up 한계) | 클라우드 DW 내부 (MPP 분산 처리) |
| 네트워크 이동 | 원본 → ETL 서버 → DW (2회) | 원본 → DW (1회) |
| 처리 속도 | 서버 사양에 좌우 (수 시간) | MPP 병렬 (수 십 분~수 시간) |
| 데이터 원본 보존 | ⚠️ ETL 서버에서 변형 후 적재 (원본 소실 가능) | ✅ DW에 원시 데이터 원본 보존 (随时 재처리 가능) |
| 스키마 관리 | 사전 정의 (Schema-on-Write) | 필요에 따라 적용 (Schema-on-Read) |
| 적합 시나리오 | 소규모 데이터, 복잡한 비지니스 룰 | 대규모 데이터, 반복적인 집계/병합 |
dbt 도입 시 고려사항
-
dbt Cloud vs dbt Core: dbt Core는 오픈소스(무료), dbt Cloud는 SaaS (호스팅 + 추가 기능). 팀 규모와 요구사항에 따라 선택.
-
미지원 기능: dbt는 현재 Streaming/Real-time 데이터 처리에는 적합하지 않습니다. 이는 Spark Structured Streaming이나 Kafka Streams가 담당합니다.
-
커뮤니티 패키지: dbt packages (еликие dbt-utils, dbt-date 등)를 통해 자주 사용되는 변환 로직을再利用 가능합니다.
-
📢 섹션 요약 비유: ELT와 ETL의 차이는"음식 배달 앱"과 같습니다. ETL은"중앙 中央厨房에서 모든 요리를 완료한 뒤, 조리된 음식을 매장에配送"합니다.中央厨房(ETL 서버)의処理能力가配送량을限制하여, 주문이殺到하면음식이 차가워지고 늦어집니다. ELT는"재료를 날것 그대로 매장에配送한 뒤, 매장의 주방(MPP 엔진)에서 실시간으로 조리"합니다. 매장 주방은中央厨房보다 훨씬 мощ한 оборудование를 갖추고 있어, 주문杀到에도음식을 빠르게 조리할 수 있습니다.
Ⅳ. 실무 판단 기준 (Decision Making)
| 고려 사항 | 세부 내용 | 주요 아키텍처 의사결정 |
|---|---|---|
| 데이터 규모 | 수십 테라바이트 이상 | ELT 우선 (MPP 필요) |
| 실시간 요구 | 배치 야간 처리 | ELT, 수 초 이내 필요 시 스트리밍 |
| 변환 복잡도 | 매우 복잡한 비즈니스 룰 (여러 단계 JOIN) | ETL + 비즈니스 로직 캡술화 |
| 팀 역량 | SQL 역량 높음 | dbt + ELT 궁합 최고 |
(추가 실무 적용 가이드 - ELT 파이프라인 설계 원칙)
-
원시 데이터 영속성(Persist Raw Data): 원시 추출 데이터는絶対に 삭제하지 마십시오. 변환 로직에 버그가 있거나, 새로운 분석 요구가 발생했을 때 **원시 데이터에서부터 재처리(Rerun)**할 수 있어야 합니다.
-
증분 변환(Incremental Transform): 전체 테이블을 재처리하지 말고, 마지막 실행 시점 이후 변경분(Incremental)만 처리하도록 설계합니다. dbt의
is_incremental설정 등을 활용합니다. -
테스트 자동화: dbt test 기능을활용하여"데이터 품질 검출"을 파이프라인에 내장합니다.
not_null,unique,accepted_values등 사전 정의된 테스트로 데이터 품질을 자동 검증합니다. -
📢 섹션 요약 비유: 실무 적용은"요리 연구소에서 새로운 레시피를 开发하는 과정"과 같습니다. 먼저 식재료를市場에서 새로운 것으로 fresh하게구를 채취하여 냉장고에保管합니다(원시 데이터 보존). 새로운 레시피가 실패해도 fresh 식재료는保管되어 있어, 언제든 새로운 레시피를再開発할 수 있습니다. 성공한 레시피는正式 레시피 노트(버전 관리)에記録되어, 다른 요리사(데이터 분석가)도 동일한 레시피를再利用하여 동일한結果를再現할 수 있습니다.
Ⅴ. 미래 전망 및 발전 방향 (Future Trend)
-
dbt Semantic Layer와 Metrics Layer의 등장 dbt Labs는 2023년 dbt Semantic Layer를 정식 발표했습니다. 이는"매출", "고객 수"와 같은 business metrics를 SQL 레벨이 아닌 추상화된 Metrics 정의로 관리하고, 이를 Looker, Hex, Mode 등의 BI 도구에서 直接参照하여 사용하는 Layer입니다. 이를 통해"같은 지표가 BI 도구마다 다른 값으로 나오는問題(Siloed Metrics)"를根源적으로 해결하며, 중앙집중적 metrics 관리가 실현됩니다.
-
ELT + Iceberg/Delta Lake:_OPEN TABLE FORMAT과의 융합 ELT의 원시 데이터 저장소가 Cloud DW( propriétaire) 위에서만 존재했던 과거와 달리, Iceberg/Delta Lake 등의_OPEN TABLE FORMAT_를 활용하면Cloud DW와 호환되는 개방형 스토리지에 원시 데이터를保管할 수 있게 되었습니다. 이를 통해"AWS Redshift에서 처리한 결과를 Databricks에서도 그대로 읽고 쓸 수 있는"베이터의 호환성이 확보됩니다. 이는 데이터 레이크하우스(Data Lakehouse) 패러다임의 핵심 기반 기술입니다.
- 📢 섹션 요약 비유: ELT의 미래는"전 세계 식재료가 하나의巨大的冷藏倉庫에统一보관되고, 어느 나라의 누구든 자신의厨房(BI 도구)에서 그 식재료를 가지고 요리하는"세상과 같습니다. 과거에는"한국 식재료는 한국冷蔵庫에만 저장"했지만, 이제는모든 식재료가 표준화된 容基に 쌓여 있어, 한국의Chef(Redshift)건美国的Chef(Spark)건 동일한 식재료를 가지고各자의 레시피(변환)를 적용할 수 있습니다. dbt Semantic Layer는"식재료의 '당도', '신선도' 같은統一規格화된 지표"를定義하여, 어떤 Chef가 재료를評価해도 동일한結果가 나오는 것을担保합니다.
🧠 지식 맵 (Knowledge Graph)
- ELT 핵심 개념
- Extract: 소스 → Cloud DW (단순 복사)
- Load: Cloud DW에 원시 데이터 적재 (Schema-on-Read)
- Transform: DW 내부 MPP 엔진으로 SQL 변환
- dbt (Data Build Tool) 핵심 개념
- Model (모델): SQL 변환 단위
- Materialization (실체화): 테이블/뷰 생성 전략
- Test (테스트): 데이터 품질 검증
- Documentation (문서화): 자동 문서 생성
- 메달리온 아키텍처 (Bronze, Silver, Gold)
- Bronze: 원시 데이터 (Raw Zone)
- Silver: 정제 데이터 (Staging Zone)
- Gold: 집계 데이터 (Analytics Zone)
👶 어린이를 위한 3줄 비유 설명
- ELT는 "냉장고에 식재료를 통째로 넣고, 요리할 때마다 냉장고에서 필요한 것만取り出す" 방식이에요.
- ETL은 "식재료를 미리 손질해서 냉장고에 넣어요."
- ELT가 더 유연해요. 왜냐하면"오늘 뭐 먹을까"를 later에 결정할 수 있거든요!
🛡️ 3.1 Pro Expert Verification: 본 문서는 구조적 무결성, 다이어그램 명확성, 그리고 기술사(PE) 수준의 심도 있는 통찰력을 기준으로
gemini-3.1-pro-preview모델 룰 기반 엔진에 의해 직접 검증 및 작성되었습니다. (Verified at: 2026-04-05)