Зачем: помочь учащемуся понять путь данных и работу служб перед выполнением заданий. Что: вычитаны оглавление и пять глав, пояснены термины, убраны внутренние метафоры и повторы. Уточнены пояснения к SQL и показателям мониторинга. Проверка: 62 локальные ссылки и 6 входящих ссылок на разделы проверены; 8 блоков SQL и схем сохранены. git diff --cached --check прошел.
4.8 KiB
Генератор: откуда берутся данные
Генератор имитирует работу двух систем интернет-магазина. Счетчик
на сайте отправляет записи о действиях посетителей в топик 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/ и в справочнике его
устройства. Теперь можно переходить
к учебным заданиям.