feat(labs): прием справочника через PXF в учебном маршруте #16

Merged
ddmitry merged 1 commits from docs/9-pxf-airports into main 2026-09-22 18:29:18 +03:00
Owner

Добавлена первая лабораторная: студент восстанавливает внешнюю таблицу PXF и загрузку снимка airports, испытывает повтор и изменение источника, затем передает данные в ODS. Задание встроено перед существующими работами на снимки ODS. Вопросы сопровождают опыты; команды и помощь по Airflow раскрываются по месту.

Новый готовый DAG lab_pxf_airports выполняет восемь задач загрузки/DQ четырех справочников с общим Run ID. Используются существующие SQL; генератор транзакционных дней не участвует в опытах. Независимая сверка читает Postgres напрямую и сравнивает ключи, бизнес-поля и метки STG/ODS.

Проверки:

  • make lint, git diff --check, ссылки, карта и Markdown-рендер Gitea прошли.
  • make test: 14 passed, 15 skipped (14 smoke-тестов из-за существующих заглушек Airflow, один opt-in интеграционный тест ODS). Настоящий DagBag проверен отдельно.
  • На стенде: все 5501 аэропорт, повтор A, изменение имени в B при сохранении A, отказ на старой копии, общий B принят действующим resolver ODS, источник восстановлен и цепочка дошла до DM.
  • Независимое ревью: Standards — замечаний нет; Spec — исправлена и воспроизведена ветка восстановления уже записанных дублей. Оставшихся замечаний нет.

Выдержка лога задачи нового DAG:

[2026-09-22T17:42:17.505+0300] {taskinstance.py:1206} INFO - Marking task as SUCCESS. dag_id=lab_pxf_airports, task_id=check_airports_dq, run_id=lab9-A-stage, execution_date=20260922T144212, start_date=20260922T144216, end_date=20260922T144217
[2026-09-22T17:42:17.586+0300] {local_task_job_runner.py:240} INFO - Task exited with return code 0

Авторские материалы и протокол прогона влиты в solution через PR #15. Полный учебный прогон выполнен до редакционной перестройки текста; после нее отдельно проверены подсказки, сверка восстановленных STG/ODS и восстановление ошибочного батча.

Closes #9
Part of #8

Добавлена первая лабораторная: студент восстанавливает внешнюю таблицу PXF и загрузку снимка airports, испытывает повтор и изменение источника, затем передает данные в ODS. Задание встроено перед существующими работами на снимки ODS. Вопросы сопровождают опыты; команды и помощь по Airflow раскрываются по месту. Новый готовый DAG `lab_pxf_airports` выполняет восемь задач загрузки/DQ четырех справочников с общим Run ID. Используются существующие SQL; генератор транзакционных дней не участвует в опытах. Независимая сверка читает Postgres напрямую и сравнивает ключи, бизнес-поля и метки STG/ODS. Проверки: - `make lint`, `git diff --check`, ссылки, карта и Markdown-рендер Gitea прошли. - `make test`: 14 passed, 15 skipped (14 smoke-тестов из-за существующих заглушек Airflow, один opt-in интеграционный тест ODS). Настоящий DagBag проверен отдельно. - На стенде: все 5501 аэропорт, повтор A, изменение имени в B при сохранении A, отказ на старой копии, общий B принят действующим resolver ODS, источник восстановлен и цепочка дошла до DM. - Независимое ревью: Standards — замечаний нет; Spec — исправлена и воспроизведена ветка восстановления уже записанных дублей. Оставшихся замечаний нет. Выдержка лога задачи нового DAG: ```text [2026-09-22T17:42:17.505+0300] {taskinstance.py:1206} INFO - Marking task as SUCCESS. dag_id=lab_pxf_airports, task_id=check_airports_dq, run_id=lab9-A-stage, execution_date=20260922T144212, start_date=20260922T144216, end_date=20260922T144217 [2026-09-22T17:42:17.586+0300] {local_task_job_runner.py:240} INFO - Task exited with return code 0 ``` Авторские материалы и [протокол прогона](https://git.dementev.space/ddmitry/airflow-greenplum/src/branch/solution/docs/reports/2026-09-22-pxf-airports.md) влиты в solution через [PR #15](https://git.dementev.space/ddmitry/airflow-greenplum/pulls/15). Полный учебный прогон выполнен до редакционной перестройки текста; после нее отдельно проверены подсказки, сверка восстановленных STG/ODS и восстановление ошибочного батча. Closes #9 Part of #8
ddmitry added 1 commit 2026-09-22 18:27:49 +03:00
ddmitry merged commit 6658a3b1aa into main 2026-09-22 18:29:18 +03:00
Sign in to join this conversation.