MLOps/Airflow

[Airflow]Python Operator

monkeykim 2024. 10. 26. 00:14

Airflow의 python operator는 파이썬 함수를 직접적으로 실행할 수 있도록 해주는 오퍼레이터이다.

이를 통해 특정 로직을 처리하거나 데이터를 가공하는 파이썬 함수를 작성한 뒤, ETL 파이프라인을 통해 작업을 간편하게 실행할 수 있다.

PythonOperator 예제

1. Airflow DAG 설정

from airflow import DAG
from airflow.operators.python_operator import PythonOperator
from datetime import datetime

# 간단한 Python 함수 정의
def my_python_function():
    print("Hello from Python Operator!")

# Airflow DAG 정의
with DAG(
    'python_operator_example',
    default_args={
        'owner': 'airflow',
        'retries': 1,
    },
    description='A simple example of Python Operator',
    schedule_interval='@daily', # DAG이 매일 실행
    start_date=datetime(2024, 10, 25),  # DAG의 시작일
    catchup=False  # DAG이 처음 시작될 때 과거 실행을 생략하도록 설정
) as dag:

    # PythonOperator 사용
    task1 = PythonOperator(
        task_id='python_task',  # Airflow UI에서 이 task의 이름을 나타냄
        python_callable=my_python_function  # 오퍼레이터가 실행할 Python 함수를 지정
    )

    task1

 

 

2. 파라미터 전달하기

def greet(name, age):
    print(f"Hello, my name is {name} and I am {age} years old.")

task2 = PythonOperator(
    task_id='greet_task',
    python_callable=greet,
    op_args=['John', 30]  # 함수에 전달할 인자
)