본문 바로가기

반응형

Data Mining & Distributed/Airflow

(23)
[ Airflow ] Dag 간에 작업 순서 연결하기 🌱TriggerDagRunOperator와 ExternalTaskSensorAirflow에서 DAG 간의 실행 순서나 의존성을 간접적으로 연결하기 위해 사용하는 도구들입니다.둘 다 DAG와 DAG 사이를 이어주는 역할을 하지만, 의도와 쓰임새가 완전히 다릅니다.1. 두 연산자의 목적과 차이항목TriggerDagRunOperatorExternalTaskSensor주 목적다른 DAG을 실행시키는 것다른 DAG의 Task 상태를 기다리는 것실행 여부직접 다른 DAG을 실행함스스로는 실행하지 않고, 기다림의존 방식능동적(Trigger): A DAG → B DAG 실행수동적(Sensor): B DAG ← A DAG 완료 대기사용 예"A DAG이 끝나면 B DAG을 시작해라""B DAG은 A DAG이 끝났는지 확..
[ Airflow ] task 실패처리를 위한 예외 처리하기 🌱Airflow 예외 처리를 위해서 raise 사용하기Airflow에서 예외 처리를 할 때 Python의 기본 예외 처리 문법인 raise 키워드를 사용합니다. Airflow 자체도 Python 기반이기 때문에, 일반적인 Python 예외 처리 방식을 그대로 따릅니다.raise는 특정 조건에서 예외를 강제로 발생시켜 작업의 흐름을 멈추거나, 상위 시스템(예: Airflow 스케줄러)에게 문제가 발생했음을 알Airflow 예외 처리를 위해서 raise 사용하기리는 용도로 사용됩니다.1. raise 기본 설명raise는 예외(Exception)를 강제로 발생시킵니다.일반적으로 try-except 블록과 함께 사용되며, 특정 상황에서 에러를 발생시키거나 다시 던질 수 있습니다.기본 사용 예시def divid..
[ Airflow ] Ubuntu + Airflow + Postgresql + Dask - 설치하기 Ubuntu에서 Apache Airflow를 설치하는 방법을 단계별로 안내하겠습니다. Airflow는 워크플로우 자동화 및 스케줄링 도구로, 여러 방법으로 설치할 수 있습니다. 가장 일반적인 방법은 pip 패키지 관리자를 사용하는 것입니다. 1. Ubuntu 업데이트 및 기본 패키지 설치먼저 시스템 패키지를 업데이트하고 필요한 도구를 설치합니다:sudo apt updatesudo apt upgrade -ysudo apt install -y python3 python3-pip 2. Python 가상환경 설정 (권장)가상환경을 사용하여 Airflow와 그 종속성을 관리하는 것이 좋습니다.sudo apt install -y python3-venvpython3 -m venv airflow-venvsource a..
[ Airflow ] 3가지 방법으로 동시 실행 제한하기 Airflow에서 하나의 DAG 내에서 동시에 실행되는 작업의 수를 제한하려면 여러 가지 방법을 사용할 수 있습니다. 주요 방법으로는 DAG 수준과 Task 수준에서 동시 실행 수를 제한하는 설정이 있습니다.1. DAG 수준에서 동시 실행 제한max_active_runs 파라미터를 사용하여 하나의 DAG 내에서 동시에 실행될 수 있는 DAG 인스턴스의 수를 제한할 수 있습니다.max_active_runs: 이 파라미터는 DAG가 동시에 실행할 수 있는 최대 인스턴스 수를 제한합니다. 예를 들어, 이 값을 1로 설정하면 하나의 DAG 인스턴스만 실행됩니다.from airflow import DAGfrom datetime import datetimedag = DAG( 'my_dag', start_..
[ Airflow ] max_active_runs - 동시 작업 개수 제한하기 max_active_runs는 Airflow에서 하나의 DAG가 동시에 실행할 수 있는 최대 인스턴스 수를 제한하는 파라미터입니다. 이 설정을 사용하면 여러 DAG 인스턴스가 동시에 실행되는 것을 방지하고, 시스템에 과부하가 걸리는 것을 방지할 수 있습니다. 1. max_active_runs 설정 방법max_active_runs는 기본적으로 16으로 설정되어 있습니다. 즉, 기본적으로 한 DAG에서 동시에 16개의 인스턴스가 실행될 수 있습니다. 이를 더 낮거나 높게 설정할 수 있습니다.예를 들어, 이 값을 1로 설정하면, DAG가 동시에 한 번만 실행되도록 제한할 수 있습니다.예제 1: max_active_runs 설정을 사용한 간단한 DAGfrom airflow import DAGfrom airflo..
[ Airflow ] concurrency - 동시 작업 개수 제한하기 Airflow에서 concurrency는 하나의 DAG 내에서 동시에 실행될 수 있는 작업(Task)의 수를 제한하는 파라미터입니다. 즉, concurrency는 DAG 수준에서 실행되는 작업의 수를 제한하여 시스템 리소스를 효율적으로 관리할 수 있도록 도와줍니다.1. concurrency 사용 방법concurrency는 DAG 객체의 파라미터로 설정하며, 해당 DAG 내에서 동시에 실행할 수 있는 최대 작업 수를 지정합니다. 이를 통해 DAG 내에서 실행되는 작업의 수를 제어할 수 있습니다.예제: concurrency를 사용하는 기본적인 DAGfrom airflow import DAGfrom airflow.operators.dummy_operator import DummyOperatorfrom date..
[ Airflow ] task_concurrency - 동일 작업 개수 제한하기 task_concurrency는 Airflow에서 개별 Task가 동시에 실행될 수 있는 최대 인스턴스 수를 제한하는 파라미터입니다. 이를 통해, 특정 작업에 대해 병렬 실행 수를 제어하고, 리소스를 효율적으로 사용할 수 있습니다.task_concurrency는 주로 리소스 소모가 많은 작업이나 외부 시스템과의 통신을 포함하는 작업에서 유용합니다. 예를 들어, 외부 API에 요청을 보내거나, 파일 시스템에서 데이터를 읽고 쓸 때, 이 값은 동시에 실행되는 작업 수를 제한하여 시스템 과부하를 방지할 수 있습니다.1. task_concurrency 사용법task_concurrency는 개별 Task에 대해 설정할 수 있으며, 해당 Task가 동시에 실행될 수 있는 최대 수를 정의합니다. DAG 내의 다른 T..
[ Airflow ] RestAPI 사용하기 Apache Airflow에서 REST API를 인증된 사용자와 비밀번호를 통해 사용할 수 있게 설정하려면 다음 단계를 따르세요: 1. 사용자 계정 생성Airflow의 CLI를 사용하여 사용자 계정을 생성합니다.airflow users create \ --username admin \ --firstname Admin \ --lastname User \ --role Admin \ --email admin@example.com \ --password yourpassword이 명령은 admin이라는 이름의 사용자 계정을 생성합니다. REST API에 접근하려면 이 사용자 계정을 사용합니다. 2. REST API 활성화Airflow는 기본적으로 REST API가 활성화되어 있습니..

반응형