Files
airflow-greenplum/docs/design/architecture-map/README.md
T
ddadmin b9bcfe7230 docs(map): добавлены карта и руководство по структуре DWH
Объяснены зерно таблиц, связи и путь бронирования до витрины.
Добавлена автономная карта с двумя видами связей и адресами объектов.
Состояние заглушек сверено с DDL и ТЗ; SQL и DAG не изменялись.

Проверки: сборка и ссылки, make lint, pytest (4 passed, 14 skipped),
Chromium file:// offline: выбор, связи, сброс, история и узкий экран.

Refs #2
2026-09-20 13:01:57 -04:00

61 lines
4.5 KiB
Markdown

# Исходники карты DWH
Готовый файл - [../architecture-map.html](../architecture-map.html).
Откройте его локально в браузере. Сервер и интернет не требуются;
SQL и Markdown открываются из соседних каталогов репозитория.
Учебный маршрут находится в [руководстве о структуре](../db_schema.md).
## Редактирование и сборка
- `map.json` - единственный каталог объектов, полей, связей и текстов карточек.
- `template.html` - интерфейс. SVG, карточки, постоянная раскладка и выделение
адаптированы из `clickstream-data-platform/docs/handbook/architecture-map/template.html`.
- `render.py` - сборка автономного HTML и статические проверки. Нужны uv и Python
3.11 или новее; пакеты Python и JavaScript не требуются. JSON заменяет YAML
образца, чтобы сборка обходилась стандартной библиотекой.
Из корня репозитория:
```bash
uv run docs/design/architecture-map/render.py
uv run docs/design/architecture-map/render.py --check
```
Правьте исходники, затем пересобирайте HTML. `--check` сверяет:
имена объектов с DDL/PXF, важные поля и поля связей, статусы загрузок и DQ,
входы готовых SQL со стрелками потока, файлы и разделы по ссылкам,
уникальность идентификаторов и позиций, свежесть HTML.
Проверка входов учитывает именованные таблицы в FROM/JOIN;
смысл соединений нужно сверять при изменении SQL вручную.
Внешние `stg.*_ext` представлены в карточках STG, поскольку это входы чтения,
а не еще одна копия данных. Поля источника сверяются с контрактом PXF.
Для заглушек используются DDL и `docs/assignment/analyst_spec.md`.
Новые предположения о поведении загрузок в карточки не добавляйте.
## Адреса объектов
`../architecture-map.html#node=ods.airplanes` выбирает таблицу.
Дополнение `&view=keys` включает связи по ключам; без него показан поток данных.
Идентификатор равен полному имени таблицы и не зависит от позиции в карте.
Неизвестный адрес возвращает обзор с сообщением. Назад/вперед в браузере
восстанавливают предыдущий выбор и вид связей.
## Проверка в браузере
Статические проверки не заменяют этот проход:
1. Откройте готовый HTML с диска. Убедитесь, что видны пять слоев,
имена таблиц и пометки заданий; ошибок JavaScript нет.
2. Выберите `bookings.tickets`, затем `ods.segments` и `dds.fact_flight_sales`.
Проверьте источники, потребителей и карточки связей. Снимите выделение
повторным выбором, кнопкой "Общий вид" и клавишей Esc.
3. Для выбранных билета, факта и `dds.dim_airplanes` переключите оба вида:
выбор, позиции и прокрутка карты должны сохраниться.
4. У факта откройте обе роли `dim_airports`, путь через `ods.routes`
и выбор версии `dim_routes`. Проверьте отдельные карточки связей.
5. Откройте адрес объекта, обновите страницу, проверьте назад/вперед.
Откройте DDL, загрузку, DQ и пункт задания из карточки.
6. Проверьте выбор клавишами Enter/пробел и вид на узком экране.
На узком экране карта прокручивается, карточка находится под ней.