refactor(csv): удален легаси CSV-пайплайн и связанные с ним файлы

- Зачем:
  - Пример базовой загрузки CSV перенесен в отдельный репозиторий `airflow-manual` для разделения учебных треков.
- Что:
  - удалены DAG-файлы `csv_to_greenplum` и вспомогательные скрипты `helpers/greenplum.py`, `orders_ddl.sql`.
  - из `docker-compose.yml` и `.env.example` удалены переменные и тома (`airflow_data`), необходимые для CSV.
  - очищена документация (`README.md`, `TESTING.md`, `educational-tasks.md`) и тесты (`test_dags_smoke.py`, `conftest.py`).
  - отмечен выполненным 'Этап 1' в `TODO.md`.
- Проверка:
  - `make test` проходит успешно (smoke-тесты оставшихся DAG-ов не затронуты).
This commit is contained in:
2026-03-08 19:13:19 +03:00
parent 45c1d37da5
commit a6a3559ab9
19 changed files with 21 additions and 866 deletions
-47
View File
@@ -41,53 +41,6 @@ def _assert_reachable(dag, upstream_task_id: str, downstream_task_id: str) -> No
), f"Expected {downstream_task_id} to be downstream of {upstream_task_id}"
def test_csv_to_greenplum_dag_structure():
dag = _load_dag("airflow.dags.csv_to_greenplum")
# tasks
expected_tasks = {
"create_orders_table",
"generate_csv",
"preview_csv",
"load_csv_to_greenplum",
}
assert expected_tasks.issubset(dag.task_dict.keys())
# linear dependencies
t1 = dag.get_task("create_orders_table")
t2 = dag.get_task("generate_csv")
t3 = dag.get_task("preview_csv")
t4 = dag.get_task("load_csv_to_greenplum")
assert t2 in t1.get_direct_relatives(upstream=False)
assert t3 in t2.get_direct_relatives(upstream=False)
assert t4 in t3.get_direct_relatives(upstream=False)
def test_csv_to_greenplum_dq_dag_structure():
dag = _load_dag("airflow.dags.csv_to_greenplum_dq")
expected_tasks = {
"check_orders_table_exists",
"check_orders_schema",
"check_orders_has_rows",
"check_order_duplicates",
"data_quality_summary",
}
assert expected_tasks.issubset(dag.task_dict.keys())
e = dag.get_task("check_orders_table_exists")
s = dag.get_task("check_orders_schema")
h = dag.get_task("check_orders_has_rows")
d = dag.get_task("check_order_duplicates")
q = dag.get_task("data_quality_summary")
assert s in e.get_direct_relatives(upstream=False)
assert h in s.get_direct_relatives(upstream=False)
assert d in h.get_direct_relatives(upstream=False)
assert q in d.get_direct_relatives(upstream=False)
def test_bookings_stg_ddl_dag_structure():
"""Проверка структуры DAG bookings_stg_ddl."""
dag = _load_dag("airflow.dags.bookings_stg_ddl")