Расширить обязательную программу практикой полного цикла DWH #8

Open
opened 2026-09-22 16:35:09 +03:00 by ddmitry · 1 comment
Owner

Цель серии

Расширить обязательную программу практикой тех частей хранилища, которые сейчас в основном даны готовыми: прием источника, инкременты STG и ODS, сборка факта, физическая организация Greenplum и оркестрация с восстановлением.

Аудитория: студент хорошо изучил PostgreSQL, прошел 16-часовой курс Greenplum от Яндекса и теперь закрепляет знания на небольшом хранилище, похожем на хранилище компании. В предыдущей серии также указан опыт упражнений на отдельном стенде Airflow; нужные для новых работ предпосылки и помощь по UI следует назвать явно.

Основной документ — развитие лабораторных в solution. Учебная ветка — main. Готовый стенд запускается целиком, а выбранную часть студент разбирает и реализует заново во время задания. Допустимы эксперименты, поломки и пересборка стенда.

Статус и состав

Прием справочника через PXF уже принят в обязательную программу. Остальные работы — конкретные кандидаты для ее расширения. Все тикеты созданы с needs-triage: для каждого предстоит окончательно определить границу самостоятельной работы и воспроизводимые проверочные случаи; постановка тикетов не означает, что сценарии уже проверены на стенде.

STG и ODS разделены: получение новых строк источника и применение поступивших изменений требуют разных проверок. Существующие задания на снимки ODS, измерения и витрины сохраняются. DQ и повторяемость входят в работы как проверяемые навыки.

Учебный порядок и зависимости разработки

Предлагаемый маршрут: прием справочника → существующие снимки ODS → инкремент STG → применение изменений в ODS → существующие измерения → сборка факта → опыт Greenplum рядом с фактом или витринами → существующие DM → оркестрация и восстановление.

Это зависимости прохождения студентом. Жесткой цепочки блокировок между задачами разработки пока нет: готовая реализация позволяет независимо подготовить каждый опыт. Если при триаже обнаружится необходимость результата соседней задачи, добавить конкретный Blocked by: #N с объяснением. Место опыта Greenplum и размер итоговой цепочки Airflow еще нужно выбрать.

Границы серии

  • Авторские материалы и полный эталон находятся в solution; задания учащегося и необходимые общие средства — в main. Изменения переносятся выборочно, с учетом заглушек и различий веток.
  • Каждая работа дает самостоятельное инженерное решение и наблюдаемый результат. Помощь сокращается от готового образца и проверки к собственным проверкам и диагностике.
  • У каждого задания есть входное состояние, проверочные случаи и выход для продолжения. Полная пересборка допустима; адресное восстановление обязательно, когда оно является предметом работы.
  • Общая заметка хранит принципы и решения, каждое задание — свою инструкцию; README и карта ведут к ним ссылками.

Критерии завершения серии

  • По каждому кандидату принято решение о включении и месте; включенные работы выполнены и проверены, отклоненные закрыты с причиной.
  • Новые и существующие работы образуют проходящий маршрут без пропущенных предпосылок и неописанных состояний стенда.
  • Пройден практический маршрут на учебной ветке, включая предусмотренные ошибки, повторные запуски и восстановление; сохранены результаты.
  • Студент получает опыт по всем включенным направлениям; вход в задания, руководства и карта согласованы.
  • Изменения доставлены в соответствующие ветки, а действующие ссылки ведут к актуальным материалам.
## Цель серии Расширить обязательную программу практикой тех частей хранилища, которые сейчас в основном даны готовыми: прием источника, инкременты STG и ODS, сборка факта, физическая организация Greenplum и оркестрация с восстановлением. Аудитория: студент хорошо изучил PostgreSQL, прошел 16-часовой курс Greenplum от Яндекса и теперь закрепляет знания на небольшом хранилище, похожем на хранилище компании. В [предыдущей серии](https://git.dementev.space/ddmitry/airflow-greenplum/issues/1) также указан опыт упражнений на отдельном стенде Airflow; нужные для новых работ предпосылки и помощь по UI следует назвать явно. Основной документ — [развитие лабораторных в solution](https://git.dementev.space/ddmitry/airflow-greenplum/src/branch/solution/docs/design/labs_development.md). Учебная ветка — `main`. Готовый стенд запускается целиком, а выбранную часть студент разбирает и реализует заново во время задания. Допустимы эксперименты, поломки и пересборка стенда. ## Статус и состав Прием справочника через PXF уже принят в обязательную программу. Остальные работы — конкретные кандидаты для ее расширения. Все тикеты созданы с `needs-triage`: для каждого предстоит окончательно определить границу самостоятельной работы и воспроизводимые проверочные случаи; постановка тикетов не означает, что сценарии уже проверены на стенде. STG и ODS разделены: получение новых строк источника и применение поступивших изменений требуют разных проверок. Существующие задания на снимки ODS, измерения и витрины сохраняются. DQ и повторяемость входят в работы как проверяемые навыки. - [x] [#9 — Лабораторная: восстановить прием справочника через PXF в STG](https://git.dementev.space/ddmitry/airflow-greenplum/issues/9) - [ ] [#10 — Лабораторная: реализовать инкрементальную загрузку источника в STG](https://git.dementev.space/ddmitry/airflow-greenplum/issues/10) - [ ] [#11 — Лабораторная: применить новые и измененные строки из STG в ODS](https://git.dementev.space/ddmitry/airflow-greenplum/issues/11) - [ ] [#12 — Лабораторная: собрать факт продаж с ключами измерений](https://git.dementev.space/ddmitry/airflow-greenplum/issues/12) - [ ] [#13 — Лабораторная: проверить распределение данных и план запроса Greenplum](https://git.dementev.space/ddmitry/airflow-greenplum/issues/13) - [ ] [#14 — Лабораторная: собрать DAG загрузки и восстановиться после сбоя](https://git.dementev.space/ddmitry/airflow-greenplum/issues/14) ## Учебный порядок и зависимости разработки Предлагаемый маршрут: прием справочника → существующие снимки ODS → инкремент STG → применение изменений в ODS → существующие измерения → сборка факта → опыт Greenplum рядом с фактом или витринами → существующие DM → оркестрация и восстановление. Это зависимости прохождения студентом. Жесткой цепочки блокировок между задачами разработки пока нет: готовая реализация позволяет независимо подготовить каждый опыт. Если при триаже обнаружится необходимость результата соседней задачи, добавить конкретный `Blocked by: #N` с объяснением. Место опыта Greenplum и размер итоговой цепочки Airflow еще нужно выбрать. ## Границы серии - Авторские материалы и полный эталон находятся в `solution`; задания учащегося и необходимые общие средства — в `main`. Изменения переносятся выборочно, с учетом заглушек и различий веток. - Каждая работа дает самостоятельное инженерное решение и наблюдаемый результат. Помощь сокращается от готового образца и проверки к собственным проверкам и диагностике. - У каждого задания есть входное состояние, проверочные случаи и выход для продолжения. Полная пересборка допустима; адресное восстановление обязательно, когда оно является предметом работы. - Общая заметка хранит принципы и решения, каждое задание — свою инструкцию; README и карта ведут к ним ссылками. ## Критерии завершения серии - [ ] По каждому кандидату принято решение о включении и месте; включенные работы выполнены и проверены, отклоненные закрыты с причиной. - [ ] Новые и существующие работы образуют проходящий маршрут без пропущенных предпосылок и неописанных состояний стенда. - [ ] Пройден практический маршрут на учебной ветке, включая предусмотренные ошибки, повторные запуски и восстановление; сохранены результаты. - [ ] Студент получает опыт по всем включенным направлениям; вход в задания, руководства и карта согласованы. - [ ] Изменения доставлены в соответствующие ветки, а действующие ссылки ведут к актуальным материалам.
ddmitry added the needs-triage label 2026-09-22 16:35:09 +03:00
Author
Owner

Завершена #9: учебный PR #16 в main и авторский PR #15 в solution.

Первый участок маршрута теперь дает самостоятельное получение снимка airports через PXF. После опытов источник восстановлен, общий снимок принят ODS и используется существующими заданиями airplanes/seats. Задания #10–#14 остаются отдельными кандидатами; серия продолжается.

Для следующих работ сохранен принцип: требования приемки и подробный протокол находятся у автора, студент получает инженерную задачу, наблюдаемые опыты и помощь по инструментам. Принципы и состояние программы обновлены.

Завершена #9: [учебный PR #16](https://git.dementev.space/ddmitry/airflow-greenplum/pulls/16) в main и [авторский PR #15](https://git.dementev.space/ddmitry/airflow-greenplum/pulls/15) в solution. Первый участок маршрута теперь дает самостоятельное получение снимка airports через PXF. После опытов источник восстановлен, общий снимок принят ODS и используется существующими заданиями airplanes/seats. Задания #10–#14 остаются отдельными кандидатами; серия продолжается. Для следующих работ сохранен принцип: требования приемки и подробный протокол находятся у автора, студент получает инженерную задачу, наблюдаемые опыты и помощь по инструментам. [Принципы и состояние программы](https://git.dementev.space/ddmitry/airflow-greenplum/src/branch/solution/docs/design/labs_development.md) обновлены.
Sign in to join this conversation.