Django가 고장날때까지

[Airflow 밋업] 250213 본문

카테고리 없음

[Airflow 밋업] 250213

Django가 고장날때까지 2025. 2. 14. 17:05
반응형

 

1. Airflow 에러 메시지 개선 및 모니터링 최적화

발표자는 Airflow에서 발생하는 에러 메시지를 개선하고 디버깅을 효율적으로 수행하는 방법을 공유했습니다.

주요 내용

  1. Airflow 콜백 시스템 개선
    • 테스크가 성공, 실패, 리트라이, 스킵될 때 콜백을 활용해 특정 액션을 자동 실행하도록 설정.
    • 예제 코드를 통해 콜백을 DAG 레벨 및 테스크 레벨에서 정의하는 방법 소개.
  2. Slack 알림 메시지 개선
    • 기존 Slack 알림은 제공하는 정보가 부족해 디버깅이 어려웠음.
    • 개선 내용:
      • DAG 및 Task 상세 링크 추가.
      • 실패한 오퍼레이터 종류 표시 (PythonOperator, SparkOperator 등).
      • Task 실행 시간(Duration) 포함 → 원인 분석 용이.
  3. Databricks 작업 실패 시 로그 접근성 향상
    • 기존: Airflow → Databricks 로그 링크 클릭 → Databricks 웹에서 오류 확인 (과정이 복잡).
    • 개선: Databricks API를 활용해 Airflow 알림에서 바로 오류 메시지를 확인할 수 있도록 개선.
    • 모바일에서도 오류를 쉽게 확인할 수 있도록 UI 최적화.
  4. KubernetesPodOperator 리소스 모니터링 추가
    • Airflow에서 실행되는 Kubernetes Pod 정보를 Grafana 링크와 연동하여 CPU, 메모리 사용량 모니터링 가능.
    • Pod이 실패했을 때 Slack 알림에서 바로 리소스 문제를 확인 가능.
  5. 에러 발생 패턴 분석 및 KPI 설정
    • 실패 및 리트라이 발생 횟수를 데이터로 저장하여 주기적으로 분석.
    • Sensor 기반 작업이 많아 리트라이가 빈번했으며, 스팟 인스턴스 문제로 인한 실패도 다수 발생.
    • 해결책: 지표를 기반으로 개선 작업 수행, 데이터 엔지니어 KPI로 설정.
  6. Splunk 연동을 통한 에러 로그 분석 자동화
    • Airflow 에러 로그를 Splunk와 연동하여 대시보드에서 에러 로그 집계 및 시각화.
    • DAG/Operator별 에러 발생 빈도를 분석하여 주요 원인을 파악.
  7. GPT를 활용한 위클리 리포트 생성
    • 최근 10일간의 에러 로그를 수집하여 GPT로 요약 및 리포트 자동 생성.
    • Slack에 자동 전송하여 팀원들이 에러 발생 패턴과 개선 방안을 쉽게 파악 가능.

2. DBT 기반 Airflow 운영 및 자동화된 배치 파이프라인

발표자는 DBT(Data Build Tool)와 Airflow를 활용한 배치 파이프라인 자동화 및 데이터 팀의 업무 효율성을 높이는 방법을 소개했습니다.

주요 내용

  1. 데이터 민주화 (Data Democratization)
    • 데이터 팀이 모든 데이터 요청을 처리하는 방식에서 벗어나, 각 팀이 직접 데이터를 활용할 수 있도록 셀프 서비스 환경을 구축.
    • "요청을 줄이는 것이 핵심" → 데이터 동기화 및 가공 요청 없이 직접 처리 가능하도록 시스템 설계.
  2. Airflow와 DBT의 통합
    • DBT: 데이터 변환(Transformation) 전용 도구, SQL 기반.
    • Airflow: 데이터 워크플로우 스케줄링 및 실행.
    • DBT를 Airflow에서 실행하여 ETL(Extract, Transform, Load) 자동화.
  3. 자동 데이터 동기화 시스템 구축
    • 기존: 데이터 연동을 요청해야 함.
    • 개선: 테이블 스키마, 데이터 동기화 방식 등을 입력하면 자동 동기화되는 툴 개발.
  4. Airflow DAG 설계 개선
    • 기존 방식: DAG 하나에 여러 개의 Task 포함 → 복잡하고 유지보수 어려움.
    • 개선 방식:
      • 각 DBT 모델을 하나의 DAG로 변환 (모델 단위로 독립 실행).
      • Airflow에서 DAG을 자동 생성하여 코드 중복 제거.
  5. DBT 모델 간 의존성 관리
    • DBT는 데이터 의존성, Airflow는 Task 의존성을 기반으로 DAG을 생성.
    • 기존에는 DAG이 너무 많아지고 파싱 시간이 길어지는 문제가 발생.
    • 해결책:
      • DBT의 manifest.json을 활용하여 DAG 간 관계를 자동 생성.
      • TriggerDagRunOperator를 사용하여 DAG 간 실행 순서를 조정.
  6. 마스터 DAG 생성
    • 기존 DAG 수가 급증하는 문제 해결을 위해 "마스터 DAG" 개념 도입.
    • TriggerDagRunOperator를 활용하여 DBT 모델 간 실행 순서를 조정.
    • DBT의 manifest.json을 분석하여 DAG 간 의존성을 자동으로 설정.
  7. 검색 및 유지보수 편의성 향상
    • DAG이 많아지면서 태그(Tag) 기반 검색 시스템 도입.
    • 모델별 실행 주기를 다르게 설정하여 최적의 성능 유지.

결과 및 효과

  • DAG 파싱 속도 5분 → 1분 내외로 단축.
  • 데이터 가공 및 동기화 요청 0건 → 각 팀이 직접 실행 가능.
  • DAG 유지보수 비용 절감, 운영 편의성 증가.

요약

  1. 첫 번째 발표Airflow 에러 메시지 개선 및 모니터링 최적화에 초점을 맞췄고, Slack 알림 개선, Databricks 로그 접근성 향상, Splunk 연동, GPT를 활용한 위클리 리포트 자동화 등이 핵심.
  2. 두 번째 발표DBT와 Airflow를 활용한 자동화된 배치 파이프라인 운영을 다루며, DBT 기반 DAG 자동 생성, 마스터 DAG 설계, 데이터 민주화 및 셀프 서비스 환경 구축 등을 소개.
반응형
Comments