refactor(manual): упрощение архитектуры учебного пайплайна и документации

- Зачем:
  - сделать примеры более доступными для начинающих, убрав лишнюю архитектурную сложность (хелперы, внешние SQL файлы).
  - сфокусировать обучение на самом Airflow, а не на структуре Python-проекта.
- Что:
  - консолидирована логика: DDL и вспомогательные функции перенесены из helpers/ и sql/ напрямую в csv_to_postgres.py и csv_to_postgres_dq.py.
  - удалена избыточная инфраструктура: папки sql/, tests/, helpers/ и файл requirements.txt больше не содержат специфичных для этого пайплайна файлов.
  - упрощена работа с БД: использование PostgresHook напрямую в задачах вместо кастомных оберток.
  - исправлен порт PostgreSQL для метаданных Airflow (5433 → 5434) в README.md и educational-setup-plan.md.
  - изменен путь генерации CSV на /opt/airflow/data/output в csv_to_postgres.py.
  - добавлен шаблон data/*.csv в .gitignore.
  - обновлен комментарий в sql_basic_dag.py о создании соединения.
  - исправлено описание практического задания в educational-tasks.md.
  - добавлены переводы строк в конце файлов csv_to_postgres.py и educational-setup-plan.md.
- Проверка:
  - запуск DAG-ов csv_to_postgres и csv_to_postgres_dq в Airflow UI.
This commit is contained in:
2026-03-08 21:38:59 +03:00
parent 24ee9f65f0
commit af6b0a9fae
15 changed files with 144 additions and 572 deletions
+6 -10
View File
@@ -36,7 +36,7 @@ docker-compose up -d
- Пользователь: `student`
- Пароль: `student`
- **PostgreSQL для метаданных Airflow**: `localhost:5433`
- **PostgreSQL для метаданных Airflow**: `localhost:5434`
- База данных: `airflow`
- Пользователь: `airflow`
- Пароль: `airflow`
@@ -101,15 +101,9 @@ airflow-docker/
│ ├── data_processing_dag.py # Сложный ETL пайплайн
│ ├── branching_dag.py # Условная логика
│ └── error_handling_dag.py # Обработка ошибок
├── helpers/ # Вспомогательные скрипты
│ └── postgres.py # Функции для работы с БД и DQ
├── tests/ # Unit-тесты для хелперов
│ └── test_postgres_helpers.py # Тестирование DQ проверок
├── sql/ # SQL скрипты и DDL
│ └── base/ # Базовые DDL таблиц
├── data/ # Данные для упражнений
├── data/ # Данные и артефакты прогонов
│ ├── input/ # Входные данные
│ └── output/ # Результаты обработки
│ └── output/ # Сгенерированные CSV, отчеты и результаты обработки
├── logs/ # Логи Airflow
├── README.md # Эта инструкция
└── educational-tasks.md # Практические задания для студентов
@@ -199,12 +193,14 @@ airflow-docker/
docker-compose exec airflow-webserver airflow connections get postgres_training
```
`csv_to_postgres.py` по умолчанию складывает сгенерированные CSV в `/opt/airflow/data/output`, то есть в локальный каталог `airflow-docker/data/output/`.
### Порты
- `8080` - Airflow Webserver
- `5432` - PostgreSQL для тренировок
- `5433` - PostgreSQL для метаданных Airflow
- `5434` - PostgreSQL для метаданных Airflow
## 🛠️ Управление стендом