[Airflow 파먹기] 시작 !

1. 하려고 하는 것

앞으로 작성할 글들에서 Airflow 코드가 어떻게 구성되어 있고 어떻게 동작하는지 알아보려고 한다.
즉, Airflow가 어떤 것인지에 대해서는 다루지 않는다.

Airflow를 실행하면서 아래 사진처럼 찍히는 log가 어디서 튀어나온 것인지 궁금했던 순간들이 있을 것이다. 그러나 보통 중요한 것이 아니겠거니 하고 넘기게 된다. 현업에서는 바쁘기도 하고, 학습할 때는 배우는 것이 급급해서. 그래서 이번 시리즈에서는 천천히 Airflow의 (가능하면)모든 코드를 다 뜯어보고 그간의 궁금증을 해소해볼까 한다.

회사에서는 MWAA를 쓰기 때문에 거기서 오는 궁금증도 많았다. 왜 DAG의 log는 cloud watch에 찍히지 않는 것일까?, 기본 데이터 타입이 아닌 사용자가 생성한 데이터 타입은 jinja template로 변환되지 않는 것일까? - 할 수 있는 방법은 없을까?, 가끔 queue에 task가 걸려있는 경우가 있던데 이건 왜 그럴까? 등. 사소한 궁금증들을 해소하고 더 나아가 Airflow 프로젝트에 기여할 수 있으면 좋겠다.

저 중에 일부는 회사에서 티켓을 만들어 backlog에 넣어둔 것도 있고(회사에서는 바빠서 살펴볼 엄두도 못낸다.), Airflow에서 문제를 해결한 것도 있다. 앞으로 살펴볼 Airflow 코드가 기대가 된다.

테크리더님도 기술 하나를 아주 깊게 파보라고 하셨기에, 그 말을 들은지 6개월째인 지금 시작해볼까 한다. (너무 늦었다 ㅠ 그러니 열심히 달려가보자.)

Airflow에 대한 자세한 설명은 추후 다른 시리즈에서 진행하는 걸로 하고, 코드를 뜯으러 가보자

A. 목적

  1. 오픈 소스를 뜯어본다.
  2. 각 컴포넌트들이 어떻게 연결되는지에 대해 파악해본다.
  3. Airflow를 쓰면서 느낀 사소한 궁금증들에 대해 알아본다.
  4. 불편하다고 느낀 것을 개선해서 기여해볼까?

2. Code Download

https://github.com/apache/airflow

위 Github으로 이동해서 Repo를 clone한다.

git clone https://github.com/apache/airflow.git

clone을 받으면 repo 이름으로 된 디렉토리가 생성되었을텐데, 최신 커밋이 어떤 것인지 확인해보자.

 git log -1
commit d6051fd10a0949264098af23ce74c76129cfbcf4 (HEAD -> main, origin/main, origin/HEAD)
Author: Damon P. Cortesi <d.lifehacker@gmail.com>
Date:   Fri May 12 13:00:30 2023 -0700

    Add on_kill to EMR Serverless Job Operator (#31169)

    * Add support for cancelling jobs on EMR Serverless

나는 지금부터 d6051fd10a0949264098af23ce74c76129cfbcf4 버전을 기준으로 코드를 파먹어볼까 한다.

이 글이 도움이 되었나요?

신고하기
0분 전
작성된 댓글이 없습니다. 첫 댓글을 달아보세요!
    댓글을 작성하려면 로그인이 필요합니다.