홍카나의 공부방

[Airflow] 에어플로우 번역 책 오탈자 - 1) 스케쥴러 본문

Data Engineering/Airflow

[Airflow] 에어플로우 번역 책 오탈자 - 1) 스케쥴러

홍문관카페나무 2024. 3. 10. 17:27

 

 

에어플로우 한글 책 p.12에서 Airflow의 스케쥴러가 DAG 내용을 파싱해서 task간 예약 주기(schedule interval), 의존성(dependency)을 체크한다는 내용이 나옵니다.

 

그런데 해당 페이지 중간 부분에

 

3. 예약된 각 태스크에 대해 스케줄러는 해당 태스크의 의존성(=업스트림 태스크)을 확인합니다. 의존성 태스크가 완료되지 않았다면 실행 대기열에 추가합니다.

 

이런 문장이 나와있습니다.

그런데 p.13에 나온 그림1.9랑 확인해보면

스케쥴러가 태스크 의존성이 모두 해결되었을 때 실행할 태스크를 대기열에 추가한다고 나와 있습니다.

 

앞뒤 내용이 다르죠.

어느 내용이 정확한지 결론부터 말씀드리면 후자(의존성이 모두 해결되었을 때 Execution Queue에 추가)가 맞습니다.

 

 

(1) 그 이유로, 원서에는 다음과 같이 나와있어요.
3 For each scheduled task, the scheduler then checks whether the dependencies (= upstream tasks) of the task have been completed. If so, the task is added to the execution queue.
=> 이를 해석해보면, 의존성이 해결되었을 때 execution queue에 추가한다고 해석하는게 더 타당해보입니다.

 

(2) 그리고 상식적으로 생각해봅시다.. 만약 의존성이 해결되지 않은 채로 스케쥴러가 하위 task들을 실행 큐에 produce한다면... 워커는 단지 그냥 task를 실행할 뿐일텐데, task들의 순서가 대차게 꼬이겠죠. 상위 작업이 해결되지 않았는데 하위 task를 그냥 실행한다고!?

 

아무래도 번역이 잘못된 것 같습니다. 스케쥴러가 upstream task의 수행이 완벽히 끝난 것을 체크 한 뒤에, worker의 execution queue에 넣어야한다고 판단됩니다. 그래도 오탈자 '의심'이라고 써놓은 이유는 출판사에서 공식 오타라고 표기한 기록을 제가 찾지 못했고, 제가 틀렸을 수도 있기 때문입니다.

 

엉엉

에어플로우 책은 원서를 같이 껴두고 읽읍시다.

반응형