728x90
반응형
반응형
Airflow는 워크플로우 관리를 위한 강력한 오픈소스 플랫폼으로, 주로 데이터 파이프라인 작업에 사용됩니다. 아래는 Airflow 워크플로우를 이해하는 데 핵심이 되는 5가지 포인트를 자세히 설명한 내용입니다.
1. DAG (Directed Acyclic Graph) 구조
- 설명:
- Airflow에서 워크플로우는 DAG(방향성이 있는 비순환 그래프)로 표현됩니다. DAG는 작업(task) 간의 순서를 정의하고, 데이터 파이프라인의 흐름을 나타냅니다.
- DAG는 비순환적이어야 하므로, 작업 간 의존성이 순환하지 않도록 보장됩니다.
- 핵심 포인트:
- 정의 방식: Python 코드로 작성되며, 작업 간의 순서와 의존성을 명확히 정의합니다.
- 스케줄링: 특정 시간 또는 주기에 맞춰 자동 실행됩니다.
- DAG는 워크플로우의 "청사진" 역할을 합니다.
2. Task 및 Operator
- 설명:
- Task는 Airflow에서 실행되는 개별 작업을 의미하며, Operator를 사용해 정의됩니다.
- Operator는 특정 작업 유형을 수행하는 Airflow의 빌딩 블록입니다.
- 핵심 포인트:
- Operator 유형:
- PythonOperator: Python 함수 실행.
- BashOperator: Bash 명령 실행.
- Sensor: 특정 조건(파일 존재, API 응답 등)이 충족될 때까지 대기.
- 작업 연결: >> 또는 << 연산자를 사용해 작업 간의 의존성을 설정합니다.
- 작업 재사용: Operator를 매개변수화하여 여러 작업에서 재사용할 수 있습니다.
- Operator 유형:
3. 스케줄러와 실행
- 설명:
- Airflow의 스케줄러는 DAG를 실행할 시점을 결정하며, 워크플로우 실행을 자동화합니다.
- 핵심 포인트:
- 스케줄링 표현식: cron 표현식 또는 timedelta를 사용하여 실행 주기를 설정할 수 있습니다.
- Catchup: DAG 실행 주기 동안 누락된 기간의 작업을 백필링(backfilling)할지 여부를 결정합니다.
- Parallelism: 여러 작업을 병렬로 실행할 수 있으며, 작업 우선순위를 설정할 수 있습니다.
4. XCom (Cross Communication)
- 설명:
- XCom은 작업 간 데이터를 공유하기 위한 Airflow의 메커니즘입니다.
- 한 작업에서 생성된 데이터를 다른 작업이 사용할 수 있도록 전달합니다.
- 핵심 포인트:
- Push & Pull: 데이터를 XCom으로 전달(push)하거나 가져오기(pull) 위한 메서드를 제공합니다.
- 사용 사례: API 응답, 경로 정보, 파일명 등의 데이터 공유.
- 주의 사항: XCom에 저장되는 데이터는 JSON 직렬화 가능해야 합니다.
5. 확장성과 모니터링
- 설명:
- Airflow는 확장 가능한 설계와 직관적인 모니터링 도구를 제공합니다.
- 핵심 포인트:
- 확장성: 작업자(Worker)와 큐(Queue)를 확장하여 대규모 데이터 파이프라인을 처리할 수 있습니다.
- 모니터링:
- 웹 UI를 통해 DAG 상태, 작업 성공/실패, 로그 등을 실시간으로 확인할 수 있습니다.
- SLA(Specific Level Agreement)를 설정하여 작업이 지정된 시간 내에 완료되지 않으면 경고를 트리거할 수 있습니다.
- 통합성: 다양한 외부 시스템(S3, BigQuery, Hive 등)과의 통합을 지원합니다.
>> 결론
Airflow 워크플로우를 이해하려면 DAG 구조, Task와 Operator, 스케줄링, XCom 데이터 전달, 확장성과 모니터링의 다섯 가지 핵심 요소를 숙지해야 합니다. 이를 통해 Airflow를 활용한 효율적이고 자동화된 데이터 파이프라인 관리가 가능합니다.
728x90
반응형
'※ IT관련' 카테고리의 다른 글
"Google BigQuery에서 데이터 생성 및 ETL 프로세스 간소화하기" (0) | 2025.01.11 |
---|---|
"Google Cloud 서비스 - 데이터 분석 및 AI/ML 및 네트워킹 그리고 보안" (0) | 2025.01.11 |
"Google Cloud 서비스 - 컴퓨팅 & 데이터 저장 및 관리" (2) | 2025.01.11 |
"MLOps 도입이 필요한 5가지 이유" (1) | 2025.01.10 |
"AI가 이해하는 질문 만들기: 프롬프트 엔지니어링의 기본" (2) | 2025.01.10 |