데이터 전처리: 워크플로우 관리

ㅁ 워크플로우 관리

ㅇ 정의:
데이터 수집, 처리, 적재 등의 전처리 과정을 자동화하고 순서를 제어하는 시스템을 관리하는 활동.

ㅇ 특징:
– DAG(Directed Acyclic Graph) 기반으로 작업 순서 정의
– 스케줄링, 모니터링, 재시도 로직 제공
– 다양한 데이터 소스 및 처리 엔진과 연동 가능

ㅇ 적합한 경우:
– 반복적이고 의존성이 있는 데이터 처리 작업이 많은 경우
– 대규모 데이터 파이프라인 운영이 필요한 경우

ㅇ 시험 함정:
– 단순 스크립트 실행과 워크플로우 관리 시스템의 차이를 혼동
– DAG와 일반 그래프의 차이 구분 필요

ㅇ 시험 대비 “패턴 보기” 예시:
O: DAG 기반으로 작업 순서를 정의하고 스케줄링할 수 있다.
X: DAG는 순환 그래프 구조를 가진다.

================================

1. Airflow

ㅇ 정의:
Apache에서 개발한 오픈소스 워크플로우 스케줄러로, DAG를 코드(Python)로 정의하여 데이터 파이프라인을 관리.

ㅇ 특징:
– Python 코드 기반 DAG 정의
– 웹 UI를 통한 모니터링 및 관리
– 다양한 Operator 제공 (BashOperator, PythonOperator 등)
– 스케줄링 및 의존성 관리 강점

ㅇ 적합한 경우:
– 복잡한 의존성을 가진 정기적 배치 작업
– Python 친화적 환경에서의 파이프라인 운영

ㅇ 시험 함정:
– 실시간 이벤트 처리에는 적합하지 않음
– DAG 변경 시 반영을 위해 재배포 필요

ㅇ 시험 대비 “패턴 보기” 예시:
O: Airflow는 DAG를 Python 코드로 정의한다.
X: Airflow는 실시간 스트리밍 처리에 최적화되어 있다.

================================

2. Prefect

ㅇ 정의:
Python 기반의 워크플로우 관리 및 오케스트레이션 도구로, 코드 중심의 파이프라인 정의와 클라우드/온프레미스 실행 지원.

ㅇ 특징:
– Task와 Flow 개념 사용
– 동적 파라미터 처리 및 조건부 실행 지원
– Prefect Cloud를 통한 중앙 모니터링 가능

ㅇ 적합한 경우:
– 유연한 조건 분기와 동적 파이프라인 구성 필요 시
– 클라우드 네이티브 환경에서의 배포

ㅇ 시험 함정:
– Airflow와 달리 DAG라는 용어 대신 Flow를 사용
– Prefect는 서버리스 실행도 가능함을 간과

ㅇ 시험 대비 “패턴 보기” 예시:
O: Prefect는 Task와 Flow 개념으로 워크플로우를 정의한다.
X: Prefect는 DAG 기반으로만 동작한다.

================================

3. Dagster

ㅇ 정의:
데이터 자산 중심의 파이프라인 오케스트레이션 도구로, 타입 안정성과 테스트 가능성을 강조.

ㅇ 특징:
– 데이터 자산(asset)과 파이프라인 정의 분리
– 강한 타입 힌트와 검증 지원
– 로컬 개발 및 CI/CD 통합 용이

ㅇ 적합한 경우:
– 데이터 품질 검증이 중요한 환경
– 소프트웨어 엔지니어링 관점의 데이터 파이프라인 개발

ㅇ 시험 함정:
– Airflow, Prefect와의 개념 차이(자산 중심 vs 작업 중심)
– Dagster는 단순 스케줄러가 아님

ㅇ 시험 대비 “패턴 보기” 예시:
O: Dagster는 데이터 자산 중심으로 파이프라인을 정의한다.
X: Dagster는 오직 스케줄링 기능만 제공한다.

================================

4. CI/CD for Data

ㅇ 정의:
데이터 파이프라인 개발, 테스트, 배포 과정을 자동화하는 지속적 통합/지속적 배포 개념을 데이터 엔지니어링에 적용.

ㅇ 특징:
– 데이터 스키마 및 품질 테스트 자동화
– 파이프라인 코드 변경 시 자동 빌드/배포
– 환경별 설정 및 데이터 마이그레이션 지원

ㅇ 적합한 경우:
– 데이터 파이프라인 변경이 잦은 조직
– 데이터 품질 보증이 중요한 서비스

ㅇ 시험 함정:
– 애플리케이션 CI/CD와 동일하게 취급하는 오류
– 데이터 볼륨과 품질 검증 단계를 누락

ㅇ 시험 대비 “패턴 보기” 예시:
O: 데이터 파이프라인에도 CI/CD 개념을 적용할 수 있다.
X: CI/CD는 애플리케이션 코드에만 적용 가능하다.

ㅁ 추가 학습 내용

[학습 정리]
Airflow / Prefect / Dagster 비교
– Airflow: DAG(Directed Acyclic Graph) 기반 워크플로우, 주로 배치 처리, 실시간 처리 제한적, 변경 반영은 코드 배포 후 스케줄러 재시작 필요, 타입 안정성 기본 지원 없음
– Prefect: Flow 개념 사용, 배치/준실시간 처리 가능, 변경 반영은 에이전트가 즉시 반영 가능, 타입 안정성 일부 지원
– Dagster: Asset 중심 개념(데이터 중심 파이프라인), 배치/실시간 일부 지원, 변경 반영은 코드 배포 후 빠른 반영 가능, 타입 안정성 강하게 지원

DAG vs Flow vs Asset
– DAG: 작업 간의 의존성을 방향성 있는 비순환 그래프로 명시
– Flow: 작업 흐름을 함수 호출처럼 구성, 유연한 실행 제어
– Asset: 데이터 산출물 자체를 1급 객체로 관리하며 파이프라인 구성

실시간 처리 가능 여부
– Airflow: 제한적 (주로 스케줄 기반)
– Prefect: 가능 (이벤트 기반 트리거 지원)
– Dagster: 일부 가능 (센서, 이벤트 기반 처리)

배포/변경 반영 방식
– Airflow: 코드 수정 후 재배포 및 스케줄러 재시작 필요
– Prefect: 변경 사항 즉시 반영 가능(클라우드/에이전트 구조)
– Dagster: 코드 배포 후 빠른 반영 가능, 일부 핫리로드 가능

타입 안정성 지원
– Airflow: 없음
– Prefect: 일부 지원
– Dagster: 강력한 지원 (Python 타입 힌트 적극 활용)

CI/CD for Data 주요 포인트
– 데이터 품질 테스트: DBT, Great Expectations 등과 연계
– 환경별 데이터베이스 마이그레이션 전략: 개발/스테이징/운영 환경 분리 및 마이그레이션 절차 관리
– 데이터 버전 관리: DVC, LakeFS 등으로 데이터셋 버전 추적 및 재현성 확보

배치 처리 vs 스트리밍 처리
– 배치 처리: 일정 주기로 한 번에 데이터 처리, 지연 허용
– 스트리밍 처리: 데이터 발생 즉시 처리, 실시간성 요구
– 시험 함정: 워크플로우 관리 도구(Airflow, Prefect, Dagster)는 주로 배치 중심이며, 데이터 스트리밍 처리 플랫폼(Kafka, Flink 등)과 혼동하지 않도록 주의

[시험 대비 체크리스트]
1. Airflow, Prefect, Dagster의 핵심 개념(DAG/Flow/Asset) 구분 가능 여부
2. 각 도구의 실시간 처리 가능 여부 숙지
3. 배포/변경 반영 방식 차이 암기
4. 타입 안정성 지원 여부 구분
5. CI/CD for Data에서 데이터 품질 테스트 도구(DBT, Great Expectations) 이해
6. 환경별 DB 마이그레이션 전략 설명 가능
7. 데이터 버전 관리 도구(DVC, LakeFS) 특징 숙지
8. 배치 처리와 스트리밍 처리의 차이 명확히 설명 가능
9. 워크플로우 관리와 스트리밍 처리 플랫폼의 역할 구분
10. 시험 문제에서 혼동을 유발할 수 있는 개념 짝짓기 연습

답글 남기기

Your email address will not be published. Required fields are marked *.

*
*