docs(practice): уточнить инструкции по результатам прохождения

Уточнены порядок CSV/COPY, расположение логов callbacks, шаблонов и управления TaskGroup. Сохранены условия проверки, результаты 69 контрольных запусков и одного диагностического, SHA-256 DAG и снимки UI. Все этапы плана закрыты.

Основной и дополнительный маршруты проверены на Airflow 2.9.2. SMTP проверен локальным приемником, включая отказ доставки; внешняя почта и Windows отдельно не проверялись. Тестовые контейнеры и тома удалены.
This commit is contained in:
ddadmin committed 2026-09-28 09:10:09 -04:00
1 parent d8dfe83651
commit 1277bff690
10 files changed
+240 -51

No files matched your search

+3 -1
View File
@@ -16,7 +16,9 @@ def choose_format():
file_format = Variable.get("branch_format", default_var="csv")
branches = {"csv": "process_csv_branch", "json": "process_json_branch"}
if file_format not in branches:
raise ValueError(f"branch_format должен быть csv или json, получено: {file_format}")
raise ValueError(
f"branch_format должен быть csv или json, получено: {file_format}"
)
logging.info("Выбран формат: %s", file_format)
return branches[file_format]
+2
View File
@@ -121,6 +121,8 @@ def _load_csv(csv_path: str) -> None:
cur.execute(
"CREATE TEMP TABLE tmp_orders (LIKE public.orders INCLUDING DEFAULTS) ON COMMIT DROP;"
)
# Порядок полей CSV должен совпадать со списком COPY.
# HEADER пропускает заголовок, а не сопоставляет имена колонок.
cur.copy_expert(
"COPY tmp_orders (order_id, order_ts, customer_id, amount) FROM STDIN WITH CSV HEADER",
f,