728x90
반응형
SMALL
DAG
DAG는 AirFlow에서 실행할 작업들을 순서에 맞게 구성한 워크플로우 (workflow)를 의미하는 방향성 있는 비순환 그래프라고 불린다. 여러 Task가 의존 관계를 통해 연결되어 있으며, 의존 관계는 순환되지 않고 한 방향으로 연결된다.
DAG 개발
DAG는 1개 이상의 오퍼레이터로 정의되며 오퍼레이터는 하고자 하는 기능에 대한 설계도라 할 수있다. Task는 오퍼레이터 (클래스)를 통해 생성된 객체로 실제 job을 수행하는 대상이 된다. EC2서버의 /home/ubuntu/dags 디렉토리에 DAG 파일을 다음과 정의한다.
/home/ubuntu/ | 홈 디렉토리 |
dags/ |
|
plugins/ | dag에서 참조할 공통 모듈이나 추가 모듈을 모아 놓은 디렉토리 |
logs/ | dag 수행 결과가 저장되는 디렉토리 |
config/ | 설정 정보 등을 저장하는 디렉토리 |
Bash Operator 작성
Airflow에서 기본 제공해 주는오퍼레이터 중 하나로 Bash 명령을 수행해주는 오퍼레이터이다.
from airflow import DAG
import datetime
import pendulum
from airflow.operators.bash import BashOperator
with DAG(
dag_id="dags_bash_operator",
schedule="0 0 * * *",
start_date=pendulum.datetime(2024, 6, 1, tz="Asia/Seoul"),
catchup=False
) as dag:
bash_t1 = BashOperator(
task_id="bash_t1",
bash_command="echo whoami",
)
bash_t2 = BashOperator(
task_id="bash_t2",
bash_command="echo $HOSTNAME",
)
bash_t1 >> bash_t2
Bash Operator 수행 결과
스케줄러 |
|
워커 | 워커 :실제 작업수행 |
728x90
반응형
LIST
'App Programming > Apache Airflow' 카테고리의 다른 글
[Apache Airflow] Python 오퍼레이터 (0) | 2024.06.17 |
---|---|
[Apache Airflow] Email 오퍼레이터 (0) | 2024.06.17 |
[Apache Airflow] Cron Schedule (0) | 2024.06.17 |
[Apache Airflow] 개발 환경 구성 (0) | 2024.06.14 |
Apache Airflow (0) | 2024.06.14 |