Только 2% людей на планете знают об этом!
Если вы знаете об этой фишке, прошу только дополнить. Многим людям, кто с 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 с нужными датами и все обновиться. Ну и надо уточнить, чтобы ваш пайплайн не плодил дублей, а перезаписывал данные в хранилище. Это я так, просто уточнить.