Data/Airflow
Slipp) Airflow2.0 스터디_2주차(3장) Airflow의 스케줄링
MightyTedKim
2022. 4. 28. 22:01
728x90
반응형
링크 : https://www.slipp.net/wiki/pages/viewpage.action?pageId=3276808650825
2번째 스터디가 시작했는데, 발표자 분이 피피티를 준비해오셨어요.
3장은 간단하지만 중요한 멱등성, 원자성의 개념이 있었고
각자 회사에서 이 원칙이 잘 지켜지는지 이야기하는 시간을 가졌습니다.
요약
1. 3장 발표
2. 3장 내용 관련 썰 풀기
설명
1. 3장 발표
- 일정한 실행
- scheduler_interval : @daily, 0 0 * * MON-FRI, dt.timedelta(days=3)
- 동적 DAG 구성
- 실행 날짜를 사용 → 이건 4장에서 더 자세히
- {{ds}}.json, {{next_ds}}
- 시점 기반(cron), 간격기반(airflow)
- 실행 날짜를 사용 → 이건 4장에서 더 자세히
- 과거 데이터 재처리
- backfill
- catchup=True
- backfill
- 모범사례
- 원자성 → transaction 지켜져야함(적절한 분리 필요)
- 멱등성 → 또 실행해도 똑같아야됨
2. 3장 내용 관련 썰 풀기
- 일정한 실행
- - end_date 쓰는 회사 있나? → 다들 start_date만 쓰고 있음
- end_date 넣고 실행하는 작업이 아직은 저도 없는 것 같아요
- 동적 DAG 구성
-
- 내장 변수들을 사용해서 파일명이나 폴덩명을 적요 →dt={{ds}}
- cron(간격 기반), airflow(시점 기반) -> execution_date이 중요함
cron과 비교해서 생각해보지 않았는데, airflow 이해에 더 도움이 되었어요
-
- 과거 데이터 재처리
-
backfill은 어떻게 하는건가? → UI에는 따로 실행하지 않고 dag 삭제해서 진행함
scheduler 다운되면 갑자기 과거 작업들이 실행됨 → 그럴 때는 catchup=False하면됨
catchup=false 하면되는데, 왜 latestOperator가 있는지 의문이 드네요
-
- 모범사례
- 원자성 멱등성 잘 지켜지는지? → 잘 관리 안됨 ㅜㅜ (유지보수 힘듦)
예를 들면, 'spark 잡'과 '파일 경로를 mv' task를 분리해야지 리소스 많이 사용되는 잡이 끝나고 뒤에 간단한 작업을 retries=3 을 주면서 작업 할 수 있음
잘안지켜지고 있고, 운영 중에 바꾸기 쉽지 않다는 이야기를 하며 눈물을 흘렸네요
- 원자성 멱등성 잘 지켜지는지? → 잘 관리 안됨 ㅜㅜ (유지보수 힘듦)
다음 스터디는 4,5장 같이 진행하기로 했어요
3번째 스터디인데 벌써 파트 1이 끝나가네요ㅎㅎ
+ k8s 환경에서 airflow가 어떻게 설치되고 운영되는지 이야기하는 시간도 가졌습니다
728x90
반응형