일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- 알고리즘
- sql
- redshift
- TCP
- 파이썬
- 데이터베이스
- dockerfile
- S3
- Docker
- 컴퓨터 네트워크
- UDP
- 가상환경
- 운영체제
- airflow
- TIL
- 정리
- Django
- AWS
- 데이터 엔지니어링
- 데이터 웨어하우스
- 종류
- 구조
- PYTHON
- HADOOP
- 데브코스
- http
- airflow.cfg
- 데이터엔지니어링
- 데이터 파이프라인
- 컴퓨터네트워크
- Today
- Total
목록2024/03 (3)
홍카나의 공부방
some_task = PythonOperator( task_id = "some_task", trigger_rule = "none_failed" ) 먼저 Airflow가 DAG 내에서 작업(task)을 실행하는 방법을 알아봅시다. Airflow는 DAG를 실행할 때, 각 task를 지속적으로 확인하여 실행 가능 여부를 확인합니다. task 실행이 가능하다고 판단하면, 스케쥴러가 작업을 선택한 후에 실행을 예약합니다. 그렇다면 task 실행이 가능한지는 어떻게 판단할 수 있을까요? 기본적으로 하나의 task는 업스트림(up-stream) task들이 모두 수행되면 다운스트림(down-stream) task들이 실행되는 선형적인 실행 구조를 가지고 있습니다. 이 구조는 기본적인 트리거 규칙(Trigger Ru..
airflow 2.4.0 버전 이후 airflow의 DummyOperator는 EmptyOperator로 대체되었습니다. from airflow.operators.empty import EmptyOperator EmptyOperator는 기존 팬아웃(Fan-Out) 방식의 DAG 구성 전략에 사용하던 DummyOperator랑 똑같이 사용하면 됩니다.
에어플로우 한글 책 p.12에서 Airflow의 스케쥴러가 DAG 내용을 파싱해서 task간 예약 주기(schedule interval), 의존성(dependency)을 체크한다는 내용이 나옵니다. 그런데 해당 페이지 중간 부분에 3. 예약된 각 태스크에 대해 스케줄러는 해당 태스크의 의존성(=업스트림 태스크)을 확인합니다. 의존성 태스크가 완료되지 않았다면 실행 대기열에 추가합니다. 이런 문장이 나와있습니다. 그런데 p.13에 나온 그림1.9랑 확인해보면 스케쥴러가 태스크 의존성이 모두 해결되었을 때 실행할 태스크를 대기열에 추가한다고 나와 있습니다. 앞뒤 내용이 다르죠. 어느 내용이 정확한지 결론부터 말씀드리면 후자(의존성이 모두 해결되었을 때 Execution Queue에 추가)가 맞습니다. (1)..