from airflow import DAG
from airflow.operators.bash import BashOperator
from datetime import datetime, timedelta
default_args = {
'owner': 'airflow',
'depends_on_past': False,
'start_date': datetime(2024, 6, 1),
'retries': 1,
'retry_delay': timedelta(minutes=5),
}
dag = DAG(
'example_pipeline',
default_args=default_args,
description='A simple example DAG showing task dependencies',
schedule_interval=timedelta(days=1),
catchup=False,
)
task1 = BashOperator(
task_id='extract_data',
bash_command='echo Extracting data',
dag=dag,
)
task2 = BashOperator(
task_id='transform_data',
bash_command='echo Transforming data',
dag=dag,
)
task3 = BashOperator(
task_id='load_data',
bash_command='echo Loading data',
dag=dag,
)
# Define task order: extract_data -> transform_data -> load_data
task1 >> task2 >> task3
This DAG file defines a simple pipeline with three tasks: extract, transform, and load data.
default_args sets common settings like retries and start date.
Each BashOperator runs a simple shell command.
The last line sets the order tasks run: first extract, then transform, then load.