본문 바로가기

Data Mining/Airflow

[ Airflow ] Task Status 상태의 종류와 의미

반응형

Apache Airflow에서 Task의 상태(Task Status)는 작업의 진행 상황을 추적하는 데 매우 중요한 요소입니다. Airflow의 Task 상태는 여러 가지로 나뉘며, 각 상태는 특정한 의미를 지닙니다. 아래는 Airflow의 주요 Task 상태와 그 의미에 대한 설명입니다.

1. Success (success)

  • 설명: Task가 정상적으로 완료된 상태입니다. 모든 작업이 오류 없이 실행되었고, 정의된 모든 조건을 충족한 경우입니다.
  • 의미: Task가 성공적으로 실행되었으며, DAG 내에서 다음 단계로 진행할 수 있습니다.

2. Running (running)

  • 설명: Task가 현재 실행 중인 상태입니다.
  • 의미: Worker에서 Task가 할당되어 실행되고 있으며, 아직 종료되지 않은 상태입니다.

3. Failed (failed)

  • 설명: Task가 실행 도중 오류가 발생하여 실패한 상태입니다.
  • 의미: Task가 정상적으로 완료되지 않았고, 재시도하거나 다른 조치가 필요할 수 있습니다.

4. Skipped (skipped)

  • 설명: Task가 조건에 따라 건너뛰어진 상태입니다. BranchPythonOperator와 같은 연산자가 특정 분기를 선택하는 경우나, 다른 Task의 상태에 따라 실행이 생략된 경우에 발생합니다.
  • 의미: Task가 실행되지 않고 건너뛰었습니다. DAG의 흐름에서 특정 경로로 가지 않도록 설계된 경우입니다.

5. Upstream Failed (upstream_failed)

  • 설명: Task 자체는 실행되지 않았지만, 앞선 Task 중 하나가 실패했기 때문에 실행되지 않은 상태입니다.
  • 의미: DAG 내에서 이전 단계의 Task가 실패했기 때문에 이 Task는 실행되지 않았습니다.

6. Queued (queued)

  • 설명: Task가 Worker에서 실행되기를 기다리고 있는 상태입니다. Task는 실행할 준비가 되었지만, 아직 Worker에 할당되지 않았습니다.
  • 의미: Task가 실행 대기 중이며, Worker의 리소스가 할당되면 실행이 시작됩니다.

7. None (none)

  • 설명: Task가 아직 실행되지 않았으며, 상태가 정의되지 않은 상태입니다.
  • 의미: Task가 예약되지 않았거나 실행 여부가 결정되지 않은 상태입니다.

8. Shut Down (shutdown)

  • 설명: Airflow가 중단된 상태에서 Task의 실행이 중지된 경우입니다.
  • 의미: Task가 외부적으로 중단되었거나 시스템에서 강제로 종료된 상태입니다.

9. Up for Retry (up_for_retry)

  • 설명: Task가 실패했으나, 재시도를 위해 대기 중인 상태입니다.
  • 의미: Task가 실패했지만, 설정된 재시도 횟수에 따라 다시 시도될 것입니다.

10. Up for Reschedule (up_for_reschedule)

  • 설명: Sensors와 같은 연산자가 일정한 주기 동안 특정 조건을 만족하지 못했을 때, 다시 스케줄을 잡고 실행 대기 중인 상태입니다.
  • 의미: 특정 조건이 충족될 때까지 Task가 재스케줄됩니다.

11. Removed (removed)

  • 설명: DAG 또는 Task 정의가 변경되거나 삭제된 경우의 상태입니다.
  • 의미: Task가 더 이상 DAG의 일부가 아니며, DAG 내에서 Task가 삭제되었습니다.

12. Deferred (deferred)

  • 설명: 이벤트 기반의 작업에서 Task가 어떤 조건이 충족되기를 기다리는 상태입니다. 예를 들어, 외부 이벤트가 발생하면 작업이 이어서 진행될 수 있습니다.
  • 의미: 특정 이벤트가 발생할 때까지 Task가 대기 중입니다.

13. Scheduled (scheduled)

  • 설명: Task가 실행될 시간으로 예약된 상태입니다.
  • 의미: 실행 시간이 예약되었고, 지정된 시간에 실행될 것입니다.

14. Removed State (removed)

  • 설명: DAG 또는 Task가 삭제된 상태입니다.
  • 의미: 이 상태에서는 더 이상 DAG에서 Task를 찾을 수 없으며, 재실행할 수 없습니다.

Task 상태 전환 예시

  • Success로 완료된 Task는 다음 Task의 실행을 촉발할 수 있습니다.
  • Failed로 끝난 Task는 재시도가 설정되어 있다면 Up for Retry 상태로 전환될 수 있습니다.
  • Skipped된 Task는 다음 Task가 실행되지 않도록 DAG의 흐름을 변경할 수 있습니다.

이 상태들은 DAG가 실행되면서 작업이 어떻게 진행되고 있는지 모니터링하는 데 필수적입니다. Airflow 웹 UI에서 각 Task의 상태를 시각적으로 확인할 수 있으며, 문제 발생 시 적절한 조치를 취하는 데 도움이 됩니다.

반응형