이 글은 Data Engineering Zoomcamp의 Module 5: Data Platforms 를 바탕으로
Bruin CLI를 활용해 NYC Taxi 데이터를 ingestion → staging → reporting 단계로 구성한
End-to-End ELT 파이프라인을 정리한 글입니다.
목차
- Data Platform이란 무엇인가
- Bruin의 핵심 개념
- NYC Taxi ELT Pipeline 구조
- Materialization 전략 이해
- Data Quality & Lineage
- 참고자료/출처
1. Data Platform이란 무엇인가
데이터 플랫폼은 단순히 데이터를 저장하는 시스템이 아닌 데이터를 수집하고, 변환하고, 검증하고, 의존성을 관리하는 전체 워크플로를 운영하는 구조를 의미합니다.
Modern Data Stack에서는 다음 핵심 구성 요소가 있습니다.
- 데이터 적재(Ingestion)
- 데이터 변환(Transformation)
- 실행 관리(Orchestration)
- 데이터 품질(Data Quality)
- 메타데이터 및 계보(Lineage)
Module 5에서는 이러한 개념을 하나의 CLI 도구인 Bruin으로 통합 실습합니다.
2. Bruin의 핵심 개념
Bruin은 “파이프라인 중심” 사고를 기반으로 설계된 CLI 도구입니다.
2-1. Asset
Asset은 데이터 가공의 최소 단위입니다.
- SQL 파일
- Python 파일
- Seed(CSV)
각 파일은 하나의 독립 실행 단위가 됩니다.
2-2. Pipeline
Pipeline은 Asset들의 실행 순서를 정의합니다.
의존성을 자동으로 분석하여 DAG(Directed Acyclic Graph) 형태로 실행됩니다.
- ingestion → staging → reporting
2-3. Environment & Connection
.bruin.yml에서 실행 환경을 정의합니다.
default_environment: default
environments:
default:
connections:
duckdb:
- name: duckdb-default
path: duckdb.db
3. NYC Taxi ELT Pipeline 구조
이번 실습에서는 NYC TLC 데이터를 기반으로 다음 구조를 구성했습니다.
ingestion.payment_lookup
ingestion.trips
↓
staging.trips
↓
reports.trips_report
3-1. Ingestion Layer
- Python asset으로 parquet 파일 다운로드
- payment_lookup은 seed asset으로 적재
- 전략: append
대용량 데이터를 처리하기 때문에 기간을 지정하여 실행합니다.
bruin run ./pipeline/pipeline.yml \
--start-date 2022-01-01 \
--end-date 2022-02-01 \
--full-refresh
3-2. Staging Layer
- 중복 제거
- payment lookup join
- Incremental 적용
3-3. Reporting Layer
- 날짜 / taxi_type / payment_type 기준 집계
- COUNT, SUM, AVG 계산
→ 최종 분석 테이블 생성 단계
4. Materialization 전략 이해
데이터 파이프라인에서 가장 중요한 설계 요소 중 하나는 어떤 Materialization 전략을 사용할 것인가입니다.
| 전략 | 설명 |
| table | 전체 재생성 |
| append | 기존 데이터 유지 + 추가 |
| merge | upsert |
| time_interval | 특정 기간 삭제 후 재삽입 |
NYC Taxi 데이터는 pickup_datetime 기준 월 단위로 구성됩니다.
따라서 특정 월만 재처리할 수 있도록 time_interval 전략을 사용하는 것이 적절합니다.
5. Data Quality & Lineage
5-1. Data Quality
Column 단위 품질 검증을 설정합니다.
checks:
- name: not_null
pickup_datetime은 NULL이 허용되지 않도록 설정했습니다.
5-2. Lineage
bruin lineage
위 명령을 통해 Asset 간 의존성을 시각적으로 확인할 수 있습니다.
- ingestion → staging → reporting
6. 참고자료/출처
- Data Engineering Zoomcamp Repo: https://github.com/DataTalksClub/data-engineering-zoomcamp
- Bruin 공식 문서: https://getbruin.com/docs/bruin/
'대외활동 > DateEngineering Zoom Camp' 카테고리의 다른 글
| [DE-Zoomcamp] 6-2. Apache Spark 구조와 동작 원리 (0) | 2026.03.01 |
|---|---|
| [DE-Zoomcamp] 6-1. Batch Processing 소개 (0) | 2026.03.01 |
| [DE-Zoomcamp] 4. Analytics Engineering (dbt): Analytics Engineering 개념과 설계 흐름 (0) | 2026.02.16 |
| [DE-Zoomcamp] 3. Data Warehouse: BigQuery로 OLAP 분석하기 (Partitioning/Clustering/Best Practice/BQML) (0) | 2026.02.09 |
| [DE-Zoomcamp] 2-2. Kestra vs Airflow - 워크플로 오케스트레이션 도구 비교 (0) | 2026.01.31 |