Files
clickstream-data-platform/docs/handbook/generator.md
T
ddadmin 915e976fc2 docs(handbook): упрощен язык путеводителя по стенду
Зачем: помочь учащемуся понять путь данных и работу служб перед выполнением заданий.

Что: вычитаны оглавление и пять глав, пояснены термины, убраны внутренние метафоры и повторы. Уточнены пояснения к SQL и показателям мониторинга.

Проверка: 62 локальные ссылки и 6 входящих ссылок на разделы проверены; 8 блоков SQL и схем сохранены. git diff --cached --check прошел.
2026-09-13 13:02:40 -04:00

4.8 KiB
Raw 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/ и в справочнике его устройства. Теперь можно переходить к учебным заданиям.