Slipp) Airflow 2.0 스터디 후기_22기
airflow 스터디가 끝나서 후기를 작성해보려고 해요
(MBTI 극J인 조장을 만나서 고생하신 팀원들께 다시 감사합니다)
3개월 동안 진행했던 'Airflow 2.0' 을 통해 얻은 것을 정리했어요
스터디를 통해 저희가 무엇을 배웠는지를 이야기해보려 해요
이 포스팅의 독자는 아래와 같아요
- airflow 스터디가 어떻게 진행되는지 궁금하신 분
- 책 내용이 궁금하지만 직접 보기는 망설여지시는 분들
구성
- 스터디 소개
- 스터디 회고
- 실무 적용
- 마무리
1. 스터디 소개
'slipp X 우아한 스터디'를 통해 스터디원을 모집했고, 어마어마한 선배님들이 신청을 해주셨어요.
- 주제: Airflow 2.0에 익숙해지고 상황별 사례 공유하기
- 목표: 배워서 실무에 적용해보기
- 산출물: 챕터별 스터디 내용 + Q&A 모음
- 자료: Apache Airflow 기반의 데이터 파이프라인 읽고 공유하기
- 기간: 2022.04.13 ~ 2022.06.30 (3개월)
- 인원: 5명
2. 스터디 회고
11회 중에 9회를 진행했었어요. 참석률 진짜 감동입니다. (97.7%)
(갑작스러운 장애를 제외하고 모두 참석해 주셨어요)
회고를 하기 전에, 간단하게 Airflow가 무엇인지에 대해 설명하려고 해요.
Airflow란?
- CronTab과 다른 이쁜 UI (Status)
장점은?
- yaml이 아닌 Python으로 코드 작성 -> 개발자/분석가 접근성 높음
- 다양한 operator들 있음 -> spark, s3, kubernetes
- jinja template으로 동적 batch 가능 -> insert into XX where dt = {{execution_dt}}
스터디는 3월간 총 9회 진행했어요.
OT 때 목표를 정하고, 마지막날 리뷰를 했어요.
모두 생각했던 것 이상으로 얻어간다고 만족했답니다.
- OT 때 목표
- 마지막날 리뷰
- 김학건: best practice에 따라서, 잘못 사용되고 있는 dag를 수정할 수 있었어요
- 김미하: test가 안되는줄 알았는데 된다..! 테스트 하자 !
- 강대권:
- Airflow 책 스터디를 접하기 전에는 막연하게 어렵다는 두려움이 있었는데 스터디 리더 학건님의 열정과 스터디 팀원분들의 열의가 더해져서 Airflow를 제대로 알게해준 스터디였습니다.
- 특히 막연하게 Crontab 으로만 알고 쓰던 Airflow를 데이터 엔지니어링 파이프라인을 위한 워크플로 관리 플랫폼이라는 사실을 알 수 있었던 스터디였습니다.
- 이제 그동안 잘 몰라서 힘들게 유지보수해왔던 DAG들을 멱등성을 지키면서 좋은 코드로 변화시켜 나갈 수 있는 자신감을 얻은 점이 특히 큰 수확이네요!
- 한진욱: airflow execution_date 개념, 전반적인 airflow 구조
- 이고운:
- airflow 실무에서 어떻게 쓰는지, airflow 동작 원리. "이렇게 쓰면 안돼요! - 날짜에 현재시간 함수 쓰지 않기, 멱등성 지키기 등등 ... " "DAG 작성 시 유의 사항 - 멱등성 원자성"책에 있는 내용보다 질문, 토론 한 내용이 더 기억에 잘 남네요다들 너무 잘 사용하고 계셔서 막상 업무에 사용하면 저렇게 잘 쓸 수 있을까? 하는 걱정도 들지만하다가 모르는거 있으면 언제든지 물어 볼게요 감사합니다 (꾸벅)ㅋㅋㅋ
- 이렇게만 안쓰면 돼! 를 기억하면서 한번 열심히 삽질 해 보고자 합니다
- "멱등성" / "원자성" 잊지 않겠습니다 ㅎㅎ
- 실무에서 어떻게 사용하는지, 특히 "이렇게 하면 안돼요!" 에 대해서 잘 배울 수 있었던 것 같습니다 ㅎㅎ
3. 실무 적용
개인적으로는 스터디를 통해 배우고 실무에 3가지를 적용했어요
Task 적절히 분리하기(멱등성/ 원자성)
https://mightytedkim.tistory.com/121?category=928713
'Custom Operator' 서용하기 (Operator/Hook)
https://mightytedkim.tistory.com/150
Airflow답게 사용하기 (jinja, connection, test) - 정리중
서로 겹치는 부분들이 있지만, Astronomer의 Best Practice 내용들 대부분을 적용했어요
https://www.astronomer.io/guides/dag-best-practices/
가장 도움이 되었던 부분은 타회사 사용사례를 들은 거였어요
- 나만 이상하게 사용하는 게 아니구나 (전역변수, 멱등성 지키지 않는 부분)
- 아 저렇게 사용하면 되겠구나 (Custom Operator만 사용, 업무별로 operator/hook 관리)
책 내용도 너무 좋았지만 실행되지 않는 예시들도 있어서, 함께 공유한 덕분에 끝까지 볼 수 있었어요
이외에도 업무 내외적인 고민을 털어놓을 수 있는 것도 좋았고요
4. 마무리
3개월간 빡센 스터디였지만, 많이 배웠고 덕분에 dag를 고도화할 수 있었어요.
특히 업무에 어떻게 적용할까 고민하면 진행해서 그런지 재미있었어요
너무 좋은 책이니 고민하시는 분들은 꼭 보세요ㅎ
다음 스터디는 어떤 걸 할지 벌써부터 설레네요 :)