데이터 전처리: 워크플로우 및 파이프라인 – Prefect

ㅁ 워크플로우 및 파이프라인

ㅇ 정의:
데이터 처리, 분석, 모델 학습 등의 작업 단계를 순차적 또는 병렬적으로 실행하고 관리하기 위한 프로세스 자동화 구조.

ㅇ 특징:
– 여러 데이터 처리 작업을 의존성에 따라 연결.
– 스케줄링, 모니터링, 실패 시 재시도 기능 제공.
– 코드 기반으로 파이프라인을 정의하여 재사용성과 유지보수성 향상.

ㅇ 적합한 경우:
– 데이터 수집부터 분석·모델링까지 반복적이고 복잡한 작업을 자동화할 때.
– 작업 실행 순서와 의존성을 엄격히 관리해야 할 때.

ㅇ 시험 함정:
– 단순 ETL 스크립트와 워크플로우 오케스트레이션의 차이를 혼동.
– 파이프라인 도구의 기능을 스케줄러(예: cron)와 동일시하는 오류.

ㅇ 시험 대비 “패턴 보기” 예시:
O: “여러 데이터 처리 작업의 의존성을 관리하고 자동 실행하는 구조를 워크플로우라 한다.”
X: “워크플로우는 단일 데이터 변환 작업만을 의미한다.”

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

1. Prefect

ㅇ 정의:
Python 기반의 워크플로우 오케스트레이션 도구로, 데이터 파이프라인을 코드 형태로 정의하고 실행·모니터링·관리할 수 있게 해줌.

ㅇ 특징:
– Python 함수와 데코레이터 기반으로 작업(Task)과 흐름(Flow)을 정의.
– 로컬 실행과 클라우드/서버 실행 지원.
– 실패 시 재시도, 매개변수화, 동적 매핑 등 고급 제어 기능 제공.
– UI 대시보드를 통한 상태 모니터링과 로그 확인 가능.

ㅇ 적합한 경우:
– Python 환경에서 유연하게 데이터 파이프라인을 구성하고 싶은 경우.
– Airflow보다 가벼운 설정과 빠른 개발 주기를 원하는 경우.
– 실험적 데이터 처리 흐름을 빠르게 배포·관리해야 하는 경우.

ㅇ 시험 함정:
– Prefect는 전용 DSL이 아닌 Python 코드로만 정의된다는 점을 간과.
– Airflow와 비교 시 DAG 개념은 유사하지만 실행 방식과 아키텍처가 다름.
– Prefect Cloud와 Prefect Server의 차이를 혼동.

ㅇ 시험 대비 “패턴 보기” 예시:
O: “Prefect는 Python 기반으로 Task와 Flow를 정의하여 데이터 파이프라인을 관리한다.”
X: “Prefect는 전용 GUI에서만 파이프라인을 구성할 수 있다.”

ㅁ 추가 학습 내용

Prefect 핵심 개념
– Task: 워크플로우의 최소 실행 단위로, 특정 기능이나 연산을 수행하는 함수 또는 작업.
– Flow: 여러 Task를 연결하여 전체 데이터 파이프라인을 구성하는 실행 단위.
– Parameter: Flow 실행 시 외부에서 주입하는 값으로, 유연한 실행 환경을 제공.
– Mapping: 동일한 Task를 여러 입력 값에 대해 병렬로 실행하는 기능.
– Retry 메커니즘: Task 실패 시 지정된 횟수와 간격으로 재시도하는 기능.

Prefect Orion(2.0) 변경점
– 기존 DAG 기반에서 동적 워크플로우 실행 지원으로 유연성 향상.
– API 중심 아키텍처로 설계되어 구성 요소 간 통신 및 확장이 용이.

Prefect Cloud vs Prefect Server
– Prefect Cloud: 관리형 서비스로, 호스팅·모니터링·UI 제공, 유지보수 부담이 적음.
– Prefect Server: 오픈소스 자가 호스팅 버전으로, 직접 인프라 관리 필요.

에이전트(Agent)와 워커(Worker)
– Agent: Prefect 서버와 통신하며 실행 대기 중인 Flow를 감지하고 실행 환경에 전달.
– Worker: 실제 Task를 실행하는 프로세스 또는 환경에서의 실행 주체.

스케줄링 방식
– cron: cron 표현식을 통한 주기적 실행.
– interval: 일정 간격마다 실행.
– RRule: 반복 규칙(Recurrence Rule)을 통한 유연한 일정 설정.

다른 오케스트레이션 도구와 비교
– Airflow: 설치와 설정이 복잡하고 DAG 기반, 강력한 UI와 스케줄링 기능 제공.
– Luigi: 비교적 단순하지만 UI 기능이 제한적, 파이썬 코드 기반 파이프라인 정의.
– Prefect: 설치가 간단하고 동적 워크플로우 지원, 의존성 관리가 유연하며 현대적인 UI 제공.

답글 남기기

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

*
*