Если вы знаете об этой фишке, прошу только дополнить. Многим людям, кто с Airflow только знакомятся, эта инфа будет полезна.
О чем я?
Вот у вас есть DAG в Airflow, который запускает код по расписанию. Просто грузит данные за вчера или за прошлую неделю.
Но что если вам надо прогрузить РЕТРО данные, например за прошлый месяц или с 2026-01-10 по 2026-04-02?
Иногда это требуется, когда данные в источнике (например в Postgres) могли обновиться, а Стриминг для этой задачи излишен.
Короче, в Airflow можно добавить пару строчек и запускать ваш DAG с вашими параметрами вручную. Причем это может делать любой человек, даже без знания КОДА! Не надо идти в Jupyter Hub и запускать спарк джобу с конифгами. Любой аналитик зашел, вбил нужные даты и нажал кнопку PLAY
Понятное дело, что вы наверняка знали про это еще 15 лет назад и у вас даже сосед по лестничной клетке шарит за это и вообще тетя Люда на даче этим пользовалась во времена Петра Первого.. но дайте шанс новичкам, кто только знакомится с инструментом.
Че писать в коде?
Чтобы удобно было запускать DAG с параметрами, надо дописать параметр params
dag = DAG(
dag_id="DEMO__API_to_S3_to_CH__weather_temp_rain_pipeline",
default_args=default_args,
schedule_interval="0 10 * * *",
catchup=False,
params={
"start_date": Param(
"",
type="string",
pattern=r"^$|^\d{4}-\d{2}-\d{2}$",
description="Начальная дата ретро-загрузки в формате YYYY-MM-DD. Пусто = ds.",
),
"end_date": Param(
"",
type="string",
pattern=r"^$|^\d{4}-\d{2}-\d{2}$",
description="Конечная дата ретро-загрузки в формате YYYY-MM-DD. Пусто = start_date.",
),
},
description="API weather to S3 and ClickHouse pipeline",
tags=["demo", "weather", "temp", "rain", "api", "s3", "clickhouse", "pipeline"],
)
Кстати можно добавить еще и валидацию дат, чтобы нельзя было вбить случайно неправильно.
А ну еще придумал кейс. Вот представьте у вас работает витрина и там добавилось поле или чуть поменяли подсчет метрики.
Вы выкатили в прод изменения, а данные-то старые не обновлены. В этом случае можно просто запустить прям в Airflow с нужными датами и все обновиться. Ну и надо уточнить, чтобы ваш пайплайн не плодил дублей, а перезаписывал данные в хранилище. Это я так, просто уточнить.
