Files
ddadmin 453a1d6ddf docs(handbook): упрощен язык путеводителя
Зачем: начинающим ученикам трудно читать главы без пояснений терминов
и ожидаемого результата примеров.

Что: уточнены заголовки и объяснения в пяти главах и вводной, добавлена
сверка графика с SQL, обновлены ссылки из заданий и документации генератора.

Проверка: SQL и команды сохранены, локальные ссылки проверены;
git diff --check пройден. Ревью смысла Sol 6.1 high замечаний не выявило,
новые пояснения дополнительно сверены с кодом и настройками.
2026-10-18 19:59:21 +02:00

4.9 KiB
Raw Permalink Blame History

Генератор: откуда берутся данные

Генератор имитирует работу двух систем интернет-магазина. Счетчик на сайте отправляет записи о действиях посетителей в топик hits. Серверная часть магазина раз в модельные сутки выгружает состояние заказов в топик orders. Эта дневная выгрузка называется слепком.

События сайта и заказы

Событие содержит сведения о действии посетителя: например, время, адрес страницы и идентификатор посетителя. Формат соответствует образцу выгрузки Яндекс Метрики. Генератор создает три вида событий: просмотр страницы, добавление в корзину и покупку. Все колонки перечислены в описании выгрузки.

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

Почему начальные данные повторяются

Случайные решения генератора зависят от заданного числа — зерна генерации — и номера дня. При неизменных коде, каталоге товаров и настройках одинаковые зерно и день дают одинаковые события. Поэтому при создании стенда вы каждый раз получаете те же начальные данные. Повторный make up на работающем стенде сохраняет уже загруженные данные.

В файле data/world-inventory.json записаны зерно, версия генератора, число событий и контрольная сумма за каждый из восьми начальных дней. В документации этот файл называется паспортом мира. С ним можно сверить результат генерации и проверить, все ли события загрузились в ODS.

Запуск генератора

На стенде генератором управляют даги модельного времени. Его можно запустить и напрямую. Команды собраны в справочнике генератора и модельного времени.

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

Сверка с паспортом мира

Подключитесь из DBeaver по инструкции и выполните запрос:

SELECT EventDate, count() AS events
FROM ods.event_v
GROUP BY EventDate
ORDER BY EventDate;

Сравните число событий за каждый из первых восьми дней со значением events за ту же дату в паспорте мира. Числа должны совпасть. Если вы уже генерировали следующие дни, в результате запроса будут дополнительные даты; в паспорте их нет.

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

Подробнее генератор разобран в README папки generator/ и в справочнике его устройства. Теперь можно переходить к учебным заданиям.