Добавить интерактивную карту и переписать руководство о структуре DWH #2

Closed
opened 2026-09-20 19:07:19 +03:00 by ddmitry · 1 comment
Owner

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 должен открываться локально без запуска дополнительного сервиса. Существующие полезные ссылки и якоря сохранить либо обновить их потребителей.

Критерии готовности

  • Объекты всех слоев доступны для исследования, без вывода всех полей и 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` рядом с ним.
ddmitry added the needs-triage label 2026-09-20 19:07:19 +03:00
ddmitry self-assigned this 2026-09-20 19:35:49 +03:00
Author
Owner

Принято после просмотра мейнтейнером. 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.
Sign in to join this conversation.