Помочь менти связать знакомые таблицы и слои в одну модель хранилища авиаперевозок, сохраняя общую картину при изучении деталей. SQL, Greenplum, Airflow и назначение слоев считаем знакомыми.
Что сделать
Использовать исходники карты Clickstream как основу интерактивности и адаптировать содержание к Bookings/Greenplum.
Охватить источник, STG, ODS, DDS и DM. Общий вид показывает расположение объектов, а подробности раскрываются по выбору таблицы или связи. При выделении источников и потребителей расположение объектов сохраняется.
В карточке объекта объяснить назначение, смысл одной строки, логические ключи, важные поля, способ наполнения и дальнейшее использование. Дать ссылки на существующие DDL, SQL загрузки, проверки и соответствующий пункт задания, где они есть.
Для связи объяснить ее смысл и участвующие поля. Для соединения указать, какие сведения добавляются и что происходит при отсутствии подходящей строки. Связь данных и зависимость задач Airflow должны различаться. Логические ключи не выдавать за ограничения, физически объявленные в БД.
Отмечать готовые реализации и учебные заглушки на main. Для заглушек описывать ожидаемый результат по ТЗ, без готового решения.
Существенно переписать docs/design/db_schema.md: объяснить бронирование, билет, сегмент, рейс и маршрут на небольшом примере, затем провести через карту к факту и витрине. Примерные строки явно назвать учебным примером, если они не взяты из стенда.
Обновить вход из корневого README и docs/README.md. Объяснить, как открыть HTML из локальной копии: просмотр HTML как исходного текста в Gitea не является просмотром карты.
Границы
Карта и объяснение модели принимаются вместе. Поля и связи проверять по действующим DDL/SQL; для студенческих объектов использовать DDL и актуальные требования задания. Старые дизайн-планы не считать достоверным описанием реализации без сверки.
Не требуется вводный учебник по слоям, изменение учебных загрузок, новый веб-сервис или переписывание всех технических документов. Исходники карты и способ ее сборки должны быть доступны в репозитории; готовый HTML должен открываться локально без запуска дополнительного сервиса. Существующие полезные ссылки и якоря сохранить либо обновить их потребителей.
Критерии готовности
Объекты всех слоев доступны для исследования, без вывода всех полей и SQL на общий экран.
Выбор таблицы выделяет ее источники и потребителей, повторный выбор или явная команда возвращает общий вид.
Карточки объясняют смысл строки и ключи; карточки связей объясняют преобразование или соединение.
Для fact_flight_sales корректно показаны зерно (ticket_no, flight_id), две роли dim_airports, получение аэропортов через ods.routes и выбор версии dim_routes по дате рейса.
Состояние учебной ветки видно на карте, включая заглушки и ожидаемые незаполненные ключи факта до выполнения заданий.
На небольшой сквозной цепочке проверено, что переключение вида связей сохраняет выбранный объект и ориентацию в общей карте.
Есть адресуемый выбор объекта, которым смогут пользоваться ссылки из руководств и заданий.
Переписанное руководство и карта согласованы; повторяющиеся каталоги объектов не поддерживаются вручную в нескольких местах.
Проверены сборка карты, имена объектов, ссылки и браузерные действия: выбор объекта и связи, снятие выделения, открытие объекта по ссылке.
В отчете есть результат проверки интерфейса и отдельный перечень статических проверок; изменения SQL/DAG отсутствуют.
Part of #1
## Учебная цель
Помочь менти связать знакомые таблицы и слои в одну модель хранилища авиаперевозок, сохраняя общую картину при изучении деталей. SQL, Greenplum, Airflow и назначение слоев считаем знакомыми.
## Что сделать
1. Использовать исходники карты Clickstream как основу интерактивности и адаптировать содержание к Bookings/Greenplum.
2. Охватить источник, STG, ODS, DDS и DM. Общий вид показывает расположение объектов, а подробности раскрываются по выбору таблицы или связи. При выделении источников и потребителей расположение объектов сохраняется.
3. В карточке объекта объяснить назначение, смысл одной строки, логические ключи, важные поля, способ наполнения и дальнейшее использование. Дать ссылки на существующие DDL, SQL загрузки, проверки и соответствующий пункт задания, где они есть.
4. Для связи объяснить ее смысл и участвующие поля. Для соединения указать, какие сведения добавляются и что происходит при отсутствии подходящей строки. Связь данных и зависимость задач Airflow должны различаться. Логические ключи не выдавать за ограничения, физически объявленные в БД.
5. Отмечать готовые реализации и учебные заглушки на `main`. Для заглушек описывать ожидаемый результат по ТЗ, без готового решения.
6. Существенно переписать `docs/design/db_schema.md`: объяснить бронирование, билет, сегмент, рейс и маршрут на небольшом примере, затем провести через карту к факту и витрине. Примерные строки явно назвать учебным примером, если они не взяты из стенда.
7. Обновить вход из корневого README и `docs/README.md`. Объяснить, как открыть HTML из локальной копии: просмотр HTML как исходного текста в Gitea не является просмотром карты.
## Границы
Карта и объяснение модели принимаются вместе. Поля и связи проверять по действующим DDL/SQL; для студенческих объектов использовать DDL и актуальные требования задания. Старые дизайн-планы не считать достоверным описанием реализации без сверки.
Не требуется вводный учебник по слоям, изменение учебных загрузок, новый веб-сервис или переписывание всех технических документов. Исходники карты и способ ее сборки должны быть доступны в репозитории; готовый HTML должен открываться локально без запуска дополнительного сервиса. Существующие полезные ссылки и якоря сохранить либо обновить их потребителей.
## Критерии готовности
- [x] Объекты всех слоев доступны для исследования, без вывода всех полей и SQL на общий экран.
- [x] Выбор таблицы выделяет ее источники и потребителей, повторный выбор или явная команда возвращает общий вид.
- [x] Карточки объясняют смысл строки и ключи; карточки связей объясняют преобразование или соединение.
- [x] Для `fact_flight_sales` корректно показаны зерно `(ticket_no, flight_id)`, две роли `dim_airports`, получение аэропортов через `ods.routes` и выбор версии `dim_routes` по дате рейса.
- [x] Состояние учебной ветки видно на карте, включая заглушки и ожидаемые незаполненные ключи факта до выполнения заданий.
- [x] На небольшой сквозной цепочке проверено, что переключение вида связей сохраняет выбранный объект и ориентацию в общей карте.
- [x] Есть адресуемый выбор объекта, которым смогут пользоваться ссылки из руководств и заданий.
- [x] Переписанное руководство и карта согласованы; повторяющиеся каталоги объектов не поддерживаются вручную в нескольких местах.
- [x] Проверены сборка карты, имена объектов, ссылки и браузерные действия: выбор объекта и связи, снятие выделения, открытие объекта по ссылке.
- [x] В отчете есть результат проверки интерфейса и отдельный перечень статических проверок; изменения SQL/DAG отсутствуют.
## Сначала прочитать
- [Схема БД](https://git.dementev.space/ddmitry/airflow-greenplum/src/branch/main/docs/design/db_schema.md), [ТЗ](https://git.dementev.space/ddmitry/airflow-greenplum/src/branch/main/docs/assignment/analyst_spec.md), [нейминг](https://git.dementev.space/ddmitry/airflow-greenplum/src/branch/main/docs/design/naming_conventions.md).
- [Сборка факта](https://git.dementev.space/ddmitry/airflow-greenplum/src/branch/main/sql/dds/fact_flight_sales_load.sql) и DDL/загрузки представленных объектов.
- [Исходники карты Clickstream](https://git.dementev.space/ddmitry/clickstream-data-platform/src/branch/main/docs/handbook/architecture-map/README.md), `map.yaml`, `template.html`, `render.py` рядом с ним.
Принято после просмотра мейнтейнером. PR #5 влит в main, коммит слияния b6e950f.
Результат
Руководство проводит через учебный пример бронирования, билетов и сегментов к факту и витрине. Карта раскрывает 39 объектов и 90 связей всех пяти слоев, смысл строки, ключи, поля и способы наполнения.
Отмечены готовые реализации и учебные заглушки; показаны две роли аэропорта, получение кодов через ods.routes и выбор версии dim_routes по дате рейса.
Исправлены заголовки, в легенду добавлены образцы стрелок и оформления таблиц.
SQL, DAG, задание и руководство открываются в Gitea по адресам без имени ветки и коммита. Сама карта и адресный выбор таблиц работают локально без сервера и сети.
Статические проверки
render.py --check: 39 объектов, 90 связей, 208 ссылок; имена и поля сверены с DDL/PXF, входы готовых SQL — со стрелками карты, статусы загрузок/DQ — с реализацией. Проверены 68 локальных ссылок Markdown и сохраненные якоря. make lint, Black/isort сборщика и git diff --check прошли. make test: 4 passed, 14 skipped.
Проверка в браузере
Chromium через Playwright: все 39 карточек, выбор таблиц и SVG-связей, источники и потребители, снятие выделения, клавиатура, адреса объектов, reload и назад/вперед. Переключение вида на сквозной цепочке сохраняет выбор, расположение и прокрутку. Проверены роли аэропортов, SCD2, самолеты и места; легенда и узкий экран 390px. Ошибок JavaScript нет.
Реальные переходы в Gitea показывают Markdown с форматированием и код с подсветкой; ссылка на задание прокручивает к разделу. После слияния отдельно проверено, что ссылка из локальной карты открывает новую редакцию руководства на main.
Границы проверки
13 DAG smoke-тестов пропущены предусловием доступности Airflow в тестовом окружении; интеграционный ODS-тест требует RUN_ODS_INTEGRATION=1. Живые загрузки Airflow/Greenplum не запускались. Встроенный preview был недоступен, браузерные проверки выполнены локальным Chromium. Пример строк в руководстве явно учебный.
SQL, DDL, DAG, конфигурация и данные стенда не изменены. Критерии этой задачи выполнены; дальнейшая интеграция с заданиями и руководствами остается в #3 и #4.
Принято после просмотра мейнтейнером. [PR #5](https://git.dementev.space/ddmitry/airflow-greenplum/pulls/5) влит в `main`, коммит слияния `b6e950f`.
### Результат
- Руководство проводит через учебный пример бронирования, билетов и сегментов к факту и витрине. Карта раскрывает 39 объектов и 90 связей всех пяти слоев, смысл строки, ключи, поля и способы наполнения.
- Отмечены готовые реализации и учебные заглушки; показаны две роли аэропорта, получение кодов через `ods.routes` и выбор версии `dim_routes` по дате рейса.
- Исправлены заголовки, в легенду добавлены образцы стрелок и оформления таблиц.
- SQL, DAG, задание и руководство открываются в Gitea по адресам без имени ветки и коммита. Сама карта и адресный выбор таблиц работают локально без сервера и сети.
### Статические проверки
`render.py --check`: 39 объектов, 90 связей, 208 ссылок; имена и поля сверены с DDL/PXF, входы готовых SQL — со стрелками карты, статусы загрузок/DQ — с реализацией. Проверены 68 локальных ссылок Markdown и сохраненные якоря. `make lint`, Black/isort сборщика и `git diff --check` прошли. `make test`: 4 passed, 14 skipped.
### Проверка в браузере
Chromium через Playwright: все 39 карточек, выбор таблиц и SVG-связей, источники и потребители, снятие выделения, клавиатура, адреса объектов, reload и назад/вперед. Переключение вида на сквозной цепочке сохраняет выбор, расположение и прокрутку. Проверены роли аэропортов, SCD2, самолеты и места; легенда и узкий экран 390px. Ошибок JavaScript нет.
Реальные переходы в Gitea показывают Markdown с форматированием и код с подсветкой; ссылка на задание прокручивает к разделу. После слияния отдельно проверено, что ссылка из локальной карты открывает новую редакцию руководства на `main`.
### Границы проверки
13 DAG smoke-тестов пропущены предусловием доступности Airflow в тестовом окружении; интеграционный ODS-тест требует `RUN_ODS_INTEGRATION=1`. Живые загрузки Airflow/Greenplum не запускались. Встроенный preview был недоступен, браузерные проверки выполнены локальным Chromium. Пример строк в руководстве явно учебный.
SQL, DDL, DAG, конфигурация и данные стенда не изменены. Критерии этой задачи выполнены; дальнейшая интеграция с заданиями и руководствами остается в #3 и #4.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Part of #1
Учебная цель
Помочь менти связать знакомые таблицы и слои в одну модель хранилища авиаперевозок, сохраняя общую картину при изучении деталей. SQL, Greenplum, Airflow и назначение слоев считаем знакомыми.
Что сделать
main. Для заглушек описывать ожидаемый результат по ТЗ, без готового решения.docs/design/db_schema.md: объяснить бронирование, билет, сегмент, рейс и маршрут на небольшом примере, затем провести через карту к факту и витрине. Примерные строки явно назвать учебным примером, если они не взяты из стенда.docs/README.md. Объяснить, как открыть HTML из локальной копии: просмотр HTML как исходного текста в Gitea не является просмотром карты.Границы
Карта и объяснение модели принимаются вместе. Поля и связи проверять по действующим DDL/SQL; для студенческих объектов использовать DDL и актуальные требования задания. Старые дизайн-планы не считать достоверным описанием реализации без сверки.
Не требуется вводный учебник по слоям, изменение учебных загрузок, новый веб-сервис или переписывание всех технических документов. Исходники карты и способ ее сборки должны быть доступны в репозитории; готовый HTML должен открываться локально без запуска дополнительного сервиса. Существующие полезные ссылки и якоря сохранить либо обновить их потребителей.
Критерии готовности
fact_flight_salesкорректно показаны зерно(ticket_no, flight_id), две ролиdim_airports, получение аэропортов черезods.routesи выбор версииdim_routesпо дате рейса.Сначала прочитать
map.yaml,template.html,render.pyрядом с ним.Принято после просмотра мейнтейнером. PR #5 влит в
main, коммит слиянияb6e950f.Результат
ods.routesи выбор версииdim_routesпо дате рейса.Статические проверки
render.py --check: 39 объектов, 90 связей, 208 ссылок; имена и поля сверены с DDL/PXF, входы готовых SQL — со стрелками карты, статусы загрузок/DQ — с реализацией. Проверены 68 локальных ссылок Markdown и сохраненные якоря.make lint, Black/isort сборщика иgit diff --checkпрошли.make test: 4 passed, 14 skipped.Проверка в браузере
Chromium через Playwright: все 39 карточек, выбор таблиц и SVG-связей, источники и потребители, снятие выделения, клавиатура, адреса объектов, reload и назад/вперед. Переключение вида на сквозной цепочке сохраняет выбор, расположение и прокрутку. Проверены роли аэропортов, SCD2, самолеты и места; легенда и узкий экран 390px. Ошибок JavaScript нет.
Реальные переходы в Gitea показывают Markdown с форматированием и код с подсветкой; ссылка на задание прокручивает к разделу. После слияния отдельно проверено, что ссылка из локальной карты открывает новую редакцию руководства на
main.Границы проверки
13 DAG smoke-тестов пропущены предусловием доступности Airflow в тестовом окружении; интеграционный ODS-тест требует
RUN_ODS_INTEGRATION=1. Живые загрузки Airflow/Greenplum не запускались. Встроенный preview был недоступен, браузерные проверки выполнены локальным Chromium. Пример строк в руководстве явно учебный.SQL, DDL, DAG, конфигурация и данные стенда не изменены. Критерии этой задачи выполнены; дальнейшая интеграция с заданиями и руководствами остается в #3 и #4.