Apache Airflow 소개 및 기본 개념: 데이터 파이프라인의 주역
Data Analyst

빅데이터 관련 자료

Apache Airflow 소개 및 기본 개념: 데이터 파이프라인의 주역

carpe08 2024. 1. 23. 18:11
320x100
320x100

데이터 과학 및 엔지니어링 분야에서 Apache Airflow는 데이터 파이프라인을 효과적으로 관리하고 예약하며 모니터링하는 데 필수적인 오픈 소스 도구로 자리 잡고 있습니다. 이 글에서는 Apache Airflow의 기본 개념과 왜 데이터 전문가들이 이를 사용하는지에 대해 알아보겠습니다.


1. Apache Airflow의 핵심 개념:

1.1 Directed Acyclic Graphs (DAGs):

  • Airflow에서 작업들은 Directed Acyclic Graphs (DAGs)로 표현됩니다. DAG는 여러 작업들이 의존성을 가지며 비순환적인 구조를 갖는 데이터 흐름을 나타냅니다.

1.2 작업과 Operator:

  • DAG 내에서 실행되는 개별 작업들을 Operator라고 부릅니다. Operator는 특정 작업을 수행하는데 사용되며, BashOperator, PythonOperator, SQLOperator 등 다양한 유형이 있습니다.

1.3 스케줄러와 실행자:

  • Airflow는 작업들을 예약하고 실행하는데 사용되는 스케줄러를 내장하고 있습니다. 실행자(Executor)는 실제로 작업을 실행하는 역할을 합니다.

1.4 환경 설정과 메타 데이터 베이스:

  • Airflow는 설정 파일을 사용하여 시스템의 동작을 정의하며, 작업 상태와 메타 데이터는 백엔드 데이터베이스에 저장됩니다.

2. DAG 작성과 예약:

2.1 DAG 정의:

  • DAG를 정의하기 위해 Python 스크립트를 작성합니다. 각 작업은 DAG 객체에 추가되며, 작업 간의 의존성은 set_downstream(), set_upstream() 등을 사용하여 설정합니다.
from airflow import DAG
from airflow.operators.python_operator import PythonOperator
from datetime import datetime, timedelta

# DAG 정의
dag = DAG(
    'my_dag',
    default_args={
        'owner': 'user',
        'start_date': datetime(2022, 1, 1),
        'retries': 1,
        'retry_delay': timedelta(minutes=5),
    },
    schedule_interval='@daily',
)

# 작업 정의
def my_python_function():
    print("Hello, Airflow!")

task1 = PythonOperator(
    task_id='task1',
    python_callable=my_python_function,
    dag=dag,
)

2.2 작업 예약:

  • 작업들은 cron 표현식을 사용하여 스케줄링됩니다. schedule_interval 매개 변수를 통해 예약 주기를 설정할 수 있습니다.
dag = DAG(
    'my_dag',
    # ...
    schedule_interval='0 0 * * *',  # 매일 자정에 실행
)

3. 결론

Apache Airflow는 데이터 파이프라인을 효율적으로 관리하고 예약하기 위한 강력한 툴입니다. Directed Acyclic Graphs를 기반으로 한 구조와 다양한 Operator들을 통해 데이터 엔지니어 및 데이터 과학자들은 복잡한 작업 흐름을 간편하게 정의하고 관리할 수 있습니다. Airflow를 사용함으로써 시간에 따른 작업 실행, 실패 시 재시도 등의 기능을 자동화하여 데이터 파이프라인의 안정성과 신뢰성을 높일 수 있습니다.

320x100
320x100