Overview
Airflow 2.4, released on September 20, 2022, introduces Datasets and data-aware scheduling to trigger DAGs based on data availability.
Main Features
Datasets
Datasets are logical references to data that create dependencies between DAGs based on data availability.
python
from airflow import Dataset
from airflow.decorators import dag, task
from datetime import datetime
my_dataset = Dataset('s3://bucket/data.parquet')
@dag(schedule_interval='@daily', start_date=datetime(2022, 1, 1))
def producer():
@task(outlets=[my_dataset])
def produce():
return 'data produced'
produce()
producer()
Data-aware scheduling
Data-aware scheduling automatically triggers a DAG when its dependent datasets are updated, replacing sensors in many cases.
python
from airflow import Dataset
from airflow.decorators import dag, task
from datetime import datetime
my_dataset = Dataset('s3://bucket/data.parquet')
@dag(schedule=[my_dataset], start_date=datetime(2022, 1, 1))
def consumer():
@task
def process():
return 'data processed'
process()
# Triggered when my_dataset is updated
