일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Django
- TCP
- 데브코스
- 컴퓨터 네트워크
- 가상환경
- linux
- 정리
- 데이터엔지니어링
- Docker
- 데이터 파이프라인
- 종류
- 운영체제
- 파이썬
- HADOOP
- 데이터베이스
- TIL
- S3
- AWS
- sql
- 데이터 웨어하우스
- dockerfile
- http
- redshift
- 데이터 엔지니어링
- airflow.cfg
- 자료구조
- 컴퓨터네트워크
- Go
- airflow
- PYTHON
- Today
- Total
목록airflow (19)
홍카나의 공부방
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)..
1. 컨테이너의 IP docker container들은 기본적으로 유동 IP를 가지고 있다. 즉, 컨테이너 재기동시 IP가 바뀔 수 있다는 것이다. 그래서 고정 IP를 할당하려면 networks 만들어서 할당해야 한다. Airflow를 구성할 때 postgresDB에 고정IP를 할당시켜서 DB에 접속하는 경우를 살펴보자. 먼저 airflow가 만드는 여러 기본적인 container들이 있는데 이 컨테이너들은 네트워크 지정이 되어있지 않다. 그러면 default network에 모두 소속된다. 그런데 docker에서 컨테이너 간의 네트워크가 다르면 통신할 수 없다! 따라서 동일 네트워크로 할당하는 과정이 필요하다. 2. docker-compose.yaml 파일 수정하기 docker-compose.yaml ..