Airflow Configuration

Dongmin Lee·2023년 6월 26일
0

Airflow

목록 보기
2/2

1. Airflow Level

parallelism

  • 단일 Airflow 환경 내에서 동시에 실행될 수 있는 최대 task의 수
  • 이 설정을 32로 설정하면 모든 DAG에서 한 번에 32개 이하의 task를 실행할 수 있다.
  • Task가 오랫동안 queuing 상태라면 이 값을 늘려야 한다.
  • 기본값은 32

max_active_tasks_per_dag

  • 1개의 DAG 마다 한 번에 스케줄링 될 수 있는 최대 task의 수
  • 이 설정을 너무 높게 설정하면, 하나의 DAG가 병렬 처리 또는 풀에서 사용 가능한 slot을 너무 많이 독점하여 다른 DAG의 task가 대기 상태에 빠질 수 있다.
  • DAG 레벨에서 concurrency와 동일
  • 기본값은 16

max_active_runs_per_dag

  • 1개의 DAG에서 동시에 실행될 수 있는 최대 DAG 실행의 수
  • DAG의 schedule interval이 1시간이고, 완료하는 데 1시간 이상 걸리는 경우, 이 설정이 없으면 이전 실행이 아직 완료되지 않았더라도 새 실행이 시작된다.
  • 하지만 depends_on_past 옵션을 true로 주게되면 과거에 실행되어야 하는 것들이 실행되고 난 다음에 실행되어야 해서 새 실행을 막을 수 있다. (depends_on_past 옵션이 더 우위에 있음)
  • 기본값은 16

2. DAG Level

concurrency

max_active_tasks

  • 1개의 DAG에서 동시에 실행될 수 있는 최대 task의 수
  • 이 설정이 정의되지 않은 경우 Airflow 환경 설정값인 max_active_tasks_per_dag가 적용된다.

max_active_runs

  • 1개의 DAG에서 동시에 실행될 수 있는 최대 DAG 실행의 수
  • 이 설정이 정의되지 않은 경우 Airflow 환경 설정값인 max_active_runs_per_dag가 적용된다.

3. Task Level

max_active_tis_per_dag

  • 1개의 DAG에서 동일한 task를 모든 DAG 실행에서 동시에 실행될 수 있는 최대 횟수
  • 한 번에 여러 task에서 수정해서는 안되는 경우 이 값을 1로 설정 (e.g., 데이터를 테이블에 추가하는 task)

pool

  • Task에 사용할 수 있는 pool의 사이즈
  • 임의의 task group의 동시 인스턴스의 수를 제한한다.

4. DAG & Task Level

depends_on_past

  • 이전 날짜의 task 인스턴스 중에서 동일한 task 인스턴스가 실패한 경우 실행되지 않고 대기한다.
  • Upstream의 task 인스턴스가 이전 날짜에서 성공한 경우 그대로 실행된다.

wait_for_downstream

  • 이전 날짜의 task 인스턴스 중 하나라도 실패한 경우 해당 DAG는 실행되지 않고 대기한다.
  • depends_on_past 옵션을 포함하는 더 엄격한 옵션
  • 이전 날짜의 그 어떤 task일지라도 실패한 경우 실행되지 않는다.

0개의 댓글