Data Engineering

Data Engineering/Airflow

[Airflow] LocalExecutor Parallelism 개념 및 설정 방법

Local Executor - ParallelismParallelism 이란? Airflow에서 Parallelism은 실행되는 태스크의 병렬 처리 개수를 제어하는 개념이다. 이는 LocalExecutor 클래스의 self.parallelism 값에 따라 달라지며, 그 값에 따라 프로세스 생성 방식을 결정한다.변수 정보Type : StringDefault : 32Env : AIRFLOW__CORE__PARALLELISM self.parallelism == 0 (Unlimited Parallelism)시스템의 리소스 한계 내에서 제한 없이 프로세스 생성리소스가 부족할 경우 성능이 저하될 수 있음self.parallelism > 0 (Limited Parallelism)설정된 parallelism 값까지만 ..

Data Engineering/Airflow

[Airflow] Executor 실행 준비 과정 (SchedulerJobRunner._execute())

SchedulerJobRunner의 _executor 메서드 작동 과정실제로 Executor가 실행되는 부분은 airflow/jobs/scheduler_job_runner.py에 작성된 SchedulerJobRunner의 _execute 메서드이다. 해당 메서드는 DAG가 생성되거나 트리고 될 때 실행되며, 실행할 DAG가 있다면 airflow.cfg에 설정된 Executor로 실행을 준비하도록 하는 역할이다. _execute의 코드를 순차적으로 살펴보며, Executor가 어떻게 동작하는 것인지 확인해 볼 것이다.참고 : _execute 함수의 코드는 생략되는 부분 없이 모두 적음_execute 메서드 전체 코드 (공식 github)설정된 Executor 확인 및 직렬화, 비동기 모드 여부 결정시작 l..

Data Engineering/Airflow

[Airflow] AWS Ubuntu EC2 Airflow 환경 구축 (feat. Dockerfile)

AWS Ubuntu EC2 Airflow 환경 구축생성한 EC2 인스턴스 정보는 다음과 같다. Airflow와 Docker는 결코 가벼운 서비스가 아니기 때문에 메모리가 6~8GB 정도는 돼야 정상적으로 작동하기 때문에 여유롭게 t3.large를 사용하였다.OS : Ubuntu Server 24.04 LTSinstance : t3.large (2 vCPU, 8 GiB Mem)(24.10.17 기준) 1 hour : $0.1041 day : $2.4961 week : $17.472docker-compose를 사용한 Airflow 환경 구축 과정docker-compose 만으로도 Airflow 환경 구축이 가능하다. 그러나 Dockerfile을 활용해 build 하면, 더 유연하게 docker-compose..

Data Engineering/자동화

[자동화] ICT 학점연계 인턴십 결과 확인 with Slack

이번에 ICT 학점연계 인턴십으로 총 3개의 회사에 지원하였다. 그래서 10일에 코딩테스트를 응시하고, 서류 결과와 면접 일정이 나오는 것을 기다리고 있다. 12 ~ 26일 사이에 서류 결과와 면접을 진행하게 되는데, 확인할 때마다 페이지에 접속해서 확인하기가 귀찮았다. 그래서 일정 시간마다 Slack으로 인턴십 페이지의 업데이트 유무를 알려주도록 자동화를 진행해 보았다.ICT 학점연계 인턴십 결과 확인 자동화우선 간단하고 빠르게 만들려고 한 것이기 때문에 환경 변수 지정이나 예외 처리는 따로 진행하지 않았고, 기능 구현을 목표로 진행하였다.사용한 기술 및 프레임워크Server : Amazon EC2 (Ubuntu Server 24.04 LTS - Free Tier) Scraping : Python (3..