- Зачем:
- сделать примеры более доступными для начинающих, убрав лишнюю архитектурную сложность (хелперы, внешние 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.
- Зачем:
- адаптация пайплайна для работы с чистым PostgreSQL вместо Greenplum
- обеспечение совместимости с учебным стендом на базе Docker Compose
- Что:
- переименованы файлы (greenplum -> postgres)
- обновлены DAG-файлы: замена get_gp_conn на get_postgres_conn, адаптация DDL под PostgreSQL
- обновлён helpers/postgres.py: замена функций и переменных окружения
- добавлен pytest в requirements.txt для запуска тестов
- создан tests/conftest.py с функцией patch_postgres_hook
- обновлён tests/test_postgres_helpers.py: исправлены импорты
- добавлено монтирование папки tests в docker-compose.yml
- адаптирован sql/base/orders_ddl.sql под PostgreSQL
- Проверка:
- docker-compose exec airflow-webserver pytest /opt/airflow/tests/test_postgres_helpers.py