'데이터 엔지니어'로 성장하기

정리하는 걸 좋아하고, 남이 읽으면 더 좋아함

Data/Airflow

Slipp) Airflow 2.0 스터디 후기_22기

MightyTedKim 2022. 7. 29. 08:04
728x90
반응형

 

airflow 스터디가 끝나서 후기를 작성해보려고 해요
(MBTI 극J인 조장을 만나서 고생하신 팀원들께 다시 감사합니다)

3개월 동안 진행했던 'Airflow 2.0' 을 통해 얻은 것을 정리했어요

스터디를 통해 저희가 무엇을 배웠는지를 이야기해보려 해요

 

이 포스팅의 독자는 아래와 같아요

  • airflow 스터디가 어떻게 진행되는지 궁금하신 분
  • 책 내용이 궁금하지만 직접 보기는 망설여지시는 분들

 

구성

  1. 스터디 소개
  2. 스터디 회고
  3. 실무 적용
  4. 마무리

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란?

  1. CronTab과 다른 이쁜 UI (Status)

장점은?

  1. yaml이 아닌 Python으로 코드 작성 -> 개발자/분석가 접근성 높음
  2. 다양한 operator들 있음 -> spark, s3, kubernetes
  3. 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 

 

Airflow) 'Task 분리' 실무 적용하기 _k8s/spark

2022.05~07, 3달동안 진행한 airflow 스터디를 끝내고 실무에 적용한 내용 일부를 정리햇어요 airflow를 운영하면서 가장 불편했던 부분은 'Task가 분리되지 않은 것' 이었어요 어디서 문제가 생겼는지

mightytedkim.tistory.com

'Custom Operator' 서용하기 (Operator/Hook)

https://mightytedkim.tistory.com/150

 

Airflow) 'Custom Operator' 실무 적용하기_s3,hook

스터디를 통해 배운 내용을 실무에 정리한 글이에요 책의 8장 내용 custom operator를 참고했습니다. airflow를 운영하면서 가장 불안했던 부분은 '관리가 힘든 것' 이었어요 Python을 사용해서 개발자/

mightytedkim.tistory.com

Airflow답게 사용하기 (jinja, connection, test) - 정리중

 

서로 겹치는 부분들이 있지만, Astronomer의 Best Practice 내용들 대부분을 적용했어요

https://www.astronomer.io/guides/dag-best-practices/


가장 도움이 되었던 부분은 회사 사용사례를 들은 거였어요

  • 나만 이상하게 사용하는 게 아니구나 (전역변수, 멱등성 지키지 않는 부분)
  • 아 저렇게 사용하면 되겠구나 (Custom Operator만 사용, 업무별로 operator/hook 관리)

책 내용도 너무 좋았지만 실행되지 않는 예시들도 있어서, 함께 공유한 덕분에 끝까지 볼 수 있었어요

이외에도 업무 내외적인 고민을 털어놓을 수 있는 것도 좋았고요

 

4. 마무리

3개월간 빡센 스터디였지만, 많이 배웠고 덕분에 dag를 고도화할 수 있었어요.

특히 업무에 어떻게 적용할까 고민하면 진행해서 그런지 재미있었어요

너무 좋은 책이니 고민하시는 분들은 꼭 보세요ㅎ

다음 스터디는 어떤 걸 할지 벌써부터 설레네요 :) 

728x90
반응형