본문 바로가기

data engineering/airflow

(4)
[Airflow] 로그 파일 관리 1. 필요성로그는 로그 폴더 내에 기록되며 디스크 용량은 한계가 있어 가득차면 에러를 발생시킨다. 또한 오래된 로그 파일에 민감한 정보가 담겨있다면 보안의 위험성이 있다. 따라서 이를 주기적으로 삭제하고 백업(s3)하는게 필요하다  2. Airflow 로그 위치일반적인 실행의 경우, logs 폴더는 다음 위치에 기록된다[logging]base_log_folder = /var/lib/airflow/logs[scheduler]child_process_log_directory = /var/lib/airflow/logs/scheduler docker compose로 실행된 경우, logs 폴더를 host volume 형태로 유지한다volumes:    -${AIRFLOW_PROJ_DIR:-.}/dags:/opt..
[Airflow] Python Operator과 Task Decorator Python Operator과 Task Decorator의 차이버전 차이Python Operator - Airflow 1.x부터 사용 가능한 전통적인 방식Task Decorator - Airflow 2.0에서 도입된 기능으로, 최신 기능과의 호환성을 고려할 때 유용한 방식코드 구조의 차이Python Operator - 함수를 정의한 후 'PythonOperator'을 통해 해당 함수를 실행해야함Task Decorator - 함수 정의에 바로 @Task(Decorator)을 사용해 생성하므로, 함수 정의 + Task 생성이 하나의 블록으로 결합됨  [예제 소개] NameGender csv 파일을 Redshift로 옮기는 코드1. Python Operator로 구현1-1) 라이브러리 소개DAGPythonOp..
[Airflow] DAG의 기본 구조 Airflow의 목표를 생각해보면, DAG의 기본 구조에 대해 잘 이해할 수 있다.[목표] 복잡한 데이터 파이프라인을 쉽게 정의하고, 일정에 맞춰 실행하며, 문제 발생 시 신속하게 대응할 수 있는 환경을 제공하는 것!   1. DAG를 대표하는 객체를 먼저 만듦이름, 실행 주기, 실행 날짜, 오너 등으로 이루어짐 DAG. Directed Acyclic Graph는 순회하지 않고 한 방향으로 흐르는 그래프를 뜻하는데, 이는 ETL workflow의 구조와 실행 방식이 DAG의 개념과 맞아 떨어지기 때문에 Airflow에서는 이를 DAG라고 부름  2. DAG를 구성하는 태스크들을 만듦순서태스크 별로 작업 유형을 파악하고 적절한 오퍼레이터를 선택함태스크 ID를 부여하고, 해야할 작업의 세부 사항을 지정*모든..
[Airflow] Airflow는 왜 등장했을까? + 구성 요소 10명의 데이터 엔지니어가 500개의 ETL 파이프라인을 짜서 돌린다고 해보자. 각 파이프라인은 실행되는 시간과 주기가 다를 것이고 이에 필요한 리소스가 다를 것이다. 또한, 어떤 파이프라인을 누가 짰는지 구분하기 어려울테니 관리하기도 힘들 것이다. 이런 대량의 파이프라인들을 어떻게 스케줄에 맞춰 실행하고 관리할 수 있을까? 약 10년 전, Airbnb는 점점 복잡해지는 workflow를 관리하기 위해 Airflow를 개발하고 오픈 소스로 공개했다. 복잡한 workflow를 관리하는 문제는, 많은 회사에서도 맞닦뜨린 문제였기에 널리 쓰이는 플랫폼이 되었다. 그렇게 Airflow는 현재 데이터 파이프라인 관리, ETL(Extract, Transform, Load) 작업, 데이터 처리 및 분석 등의 다양한 ..