Практика знакомства с Airflow 2.9.x: восемь блоков, 16 основных упражнений и 18 по желанию. Изменения основных заданий сохраняются внутри блока; перед следующим указано исходное состояние. Дополнительные упражнения не нужны для продолжения.
Главы учебника → нужный раздел теории → готовый DAG
→ изменение кода или настройки
→ результат в графе, логах, файле или таблице
→ следующий блок
↳ усложнения по желанию с условиями возврата
Задания перенесены в корень. Ветвление и ошибки управляются Variables; SQL оставляет данные для проверки; ETL читает результаты Extract; DQ сохраняет отказ. Добавлен пример пулов и XCom. Главы 2, 7 и 9 согласованы со стендом, исправлены привязки задач и TaskGroup к DAG.
Evidence
Before:greeting_dag и пример шаблонов падали при создании зависимостей; другой пример создавал пустой DAG, итоговый пример главы 9 падал при создании TaskGroup. Ошибки воспроизведены в Airflow 2.9.2. After: пять исправленных примеров прошли шесть запусков через DAG.test(), включая два SQL-запуска на отдельной PostgreSQL. Протокол перепроверки.
Before: SQL-пример очищал таблицу после выполнения; Transform обходил файлы Extract; случайность затрудняла повторение опыта с ошибкой. After: основной маршрут и дополнительные упражнения с восстановлением пройдены в изолированном стенде Airflow 2.9.2. Проверены девять DAG без Import Errors, данные, состояния и ожидаемые отказы; сохранены 70 контрольных и диагностических запусков и протокол практики.
В UI проверены граф, логи попыток, XCom, Rendered Templates, TaskGroup и Pools. После правок теории проверены 63 локальные ссылки и якоря в отрисованном Markdown; git diff --check проходит.
Границы проверки: SMTP проверен локальным приемником; внешний провайдер, TLS и Windows отдельно не проверялись. Последняя проверка примеров глав выполнена через DAG.test(), без повторного прогона UI. Время и трудность прохождения на студентах не измерялись.
Merge Danger
Door: two-way
Код и документы можно откатить; уже выполненные изменения учебных данных откат Git не отменяет. SQL-пример очищает public.students_sample перед вставкой трех строк.
Blast Radius: стенд
Меняются графы и некоторые task_id в SQL, ETL, ветвлении и обработке ошибок: перед обновлением существующего стенда следует завершить активные запуски и сохранить собственные правки DAG. Старые внешние ссылки на airflow-docker/educational-tasks.md потребуют замены на корневой путь. Compose, версии зависимостей и схема томов не меняются.
## Summary
Практика знакомства с Airflow 2.9.x: восемь блоков, 16 основных упражнений и 18 по желанию. Изменения основных заданий сохраняются внутри блока; перед следующим указано исходное состояние. Дополнительные упражнения не нужны для продолжения.
```text
Главы учебника → нужный раздел теории → готовый DAG
→ изменение кода или настройки
→ результат в графе, логах, файле или таблице
→ следующий блок
↳ усложнения по желанию с условиями возврата
```
[Задания](https://git.dementev.space/ddmitry/airflow-manual/src/commit/26730c648357712a4074207f148fb513549ecb49/educational-tasks.md) перенесены в корень. Ветвление и ошибки управляются Variables; SQL оставляет данные для проверки; ETL читает результаты Extract; DQ сохраняет отказ. Добавлен пример пулов и XCom. Главы 2, 7 и 9 согласованы со стендом, исправлены привязки задач и TaskGroup к DAG.
## Evidence
- **Before:** `greeting_dag` и пример шаблонов падали при создании зависимостей; другой пример создавал пустой DAG, итоговый пример главы 9 падал при создании TaskGroup. Ошибки воспроизведены в Airflow 2.9.2.
**After:** пять исправленных примеров прошли шесть запусков через `DAG.test()`, включая два SQL-запуска на отдельной PostgreSQL. [Протокол перепроверки](https://git.dementev.space/ddmitry/airflow-manual/src/commit/26730c648357712a4074207f148fb513549ecb49/docs/validation/2026-09-28-theory-review.md).
- **Before:** SQL-пример очищал таблицу после выполнения; Transform обходил файлы Extract; случайность затрудняла повторение опыта с ошибкой.
**After:** основной маршрут и дополнительные упражнения с восстановлением пройдены в изолированном стенде Airflow 2.9.2. Проверены девять DAG без Import Errors, данные, состояния и ожидаемые отказы; сохранены [70 контрольных и диагностических запусков](https://git.dementev.space/ddmitry/airflow-manual/src/commit/26730c648357712a4074207f148fb513549ecb49/docs/validation/2026-09-28-practice-runs.jsonl) и [протокол практики](https://git.dementev.space/ddmitry/airflow-manual/src/commit/26730c648357712a4074207f148fb513549ecb49/docs/validation/2026-09-28-practice.md).
В UI проверены граф, логи попыток, XCom, Rendered Templates, TaskGroup и Pools. После правок теории проверены 63 локальные ссылки и якоря в отрисованном Markdown; `git diff --check` проходит.

Границы проверки: SMTP проверен локальным приемником; внешний провайдер, TLS и Windows отдельно не проверялись. Последняя проверка примеров глав выполнена через `DAG.test()`, без повторного прогона UI. Время и трудность прохождения на студентах не измерялись.
## Merge Danger
**Door:** two-way
Код и документы можно откатить; уже выполненные изменения учебных данных откат Git не отменяет. SQL-пример очищает `public.students_sample` перед вставкой трех строк.
**Blast Radius:** стенд
Меняются графы и некоторые `task_id` в SQL, ETL, ветвлении и обработке ошибок: перед обновлением существующего стенда следует завершить активные запуски и сохранить собственные правки DAG. Старые внешние ссылки на `airflow-docker/educational-tasks.md` потребуют замены на корневой путь. Compose, версии зависимостей и схема томов не меняются.
Управляемые ветки и ошибки, зависимости общих обработчиков, сохранение SQL-результата и фактическое чтение результатов Extract. Добавлен пример пулов и XCom; DQ-сводка сохраняет отказ при all_done.
Проверено на Airflow 2.9.2: импорт и запуск девяти исходных DAG, выбор веток, повтор и окончательные отказы обеих рабочих задач, отрицательный DQ-сценарий и восстановление, фильтрация Extract и ожидание слотов.
Восемь блоков с явным началом, последовательными изменениями и наблюдаемыми результатами. Дополнительные упражнения имеют отдельные зависимости и условия возврата. Обновлены README, справочник DAG и пример уведомлений.
Проверены ссылки, якоря, отрисовка Markdown и основные сценарии в Airflow 2.9.2. Проверки дополнительных упражнений продолжаются и фиксируются в плане.
Уточнены порядок CSV/COPY, расположение логов callbacks, шаблонов и управления TaskGroup. Сохранены условия проверки, результаты 69 контрольных запусков и одного диагностического, SHA-256 DAG и снимки UI. Все этапы плана закрыты.
Основной и дополнительный маршруты проверены на Airflow 2.9.2. SMTP проверен локальным приемником, включая отказ доставки; внешняя почта и Windows отдельно не проверялись. Тестовые контейнеры и тома удалены.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
Практика знакомства с Airflow 2.9.x: восемь блоков, 16 основных упражнений и 18 по желанию. Изменения основных заданий сохраняются внутри блока; перед следующим указано исходное состояние. Дополнительные упражнения не нужны для продолжения.
Задания перенесены в корень. Ветвление и ошибки управляются Variables; SQL оставляет данные для проверки; ETL читает результаты Extract; DQ сохраняет отказ. Добавлен пример пулов и XCom. Главы 2, 7 и 9 согласованы со стендом, исправлены привязки задач и TaskGroup к DAG.
Evidence
greeting_dagи пример шаблонов падали при создании зависимостей; другой пример создавал пустой DAG, итоговый пример главы 9 падал при создании TaskGroup. Ошибки воспроизведены в Airflow 2.9.2.After: пять исправленных примеров прошли шесть запусков через
DAG.test(), включая два SQL-запуска на отдельной PostgreSQL. Протокол перепроверки.After: основной маршрут и дополнительные упражнения с восстановлением пройдены в изолированном стенде Airflow 2.9.2. Проверены девять DAG без Import Errors, данные, состояния и ожидаемые отказы; сохранены 70 контрольных и диагностических запусков и протокол практики.
В UI проверены граф, логи попыток, XCom, Rendered Templates, TaskGroup и Pools. После правок теории проверены 63 локальные ссылки и якоря в отрисованном Markdown;
git diff --checkпроходит.Границы проверки: SMTP проверен локальным приемником; внешний провайдер, TLS и Windows отдельно не проверялись. Последняя проверка примеров глав выполнена через
DAG.test(), без повторного прогона UI. Время и трудность прохождения на студентах не измерялись.Merge Danger
Door: two-way
Код и документы можно откатить; уже выполненные изменения учебных данных откат Git не отменяет. SQL-пример очищает
public.students_sampleперед вставкой трех строк.Blast Radius: стенд
Меняются графы и некоторые
task_idв SQL, ETL, ветвлении и обработке ошибок: перед обновлением существующего стенда следует завершить активные запуски и сохранить собственные правки DAG. Старые внешние ссылки наairflow-docker/educational-tasks.mdпотребуют замены на корневой путь. Compose, версии зависимостей и схема томов не меняются.