Зачем: владелец прочел главы и нашел неестественные фразы: дашборды «спрашивают», даги «двигают ось», заказ «ездит в слепках», Superset — «витрины глазами», объекты «приезжают из файлов». Читателю такие образы надо расшифровывать, а урок в них не прячется. Что: в четырех главах олицетворения заменены прямыми формулировками, «позиция мира» и «шаговый даг» раскрыты через world_position и имена дагов, паспорт мира описан по составу и назначению, окно слепка заказов объяснено словами, режимы генератора и правило импорта Superset сказаны прямо. Тире и стрелки оставлены: это домашний стиль. Проверка: проверки тикета #220 на битые ссылки и запретные слова пусты, строки прозы не длиннее 80 знаков, git diff --check чист. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
4.1 KiB
Генератор: откуда берутся данные
Генератор изображает две системы интернет-магазина. Первая — счетчик на сайте,
он шлет события в топик hits. Вторая — бэкенд магазина, он раз в модельные
сутки выгружает слепок заказов в топик orders.
Что он производит
Событие — широкая строка по образцу выгрузки Яндекс Метрики. Генератор создает три вида событий: просмотр страницы, корзину и покупку. Все колонки перечислены в описании выгрузки.
Заказ — та же покупка, но записанная бэкендом магазина, с суммами в деньгах. Семь модельных дней после оформления заказ еще может измениться, поэтому каждый дневной слепок несет заказы за последние семь дней в их текущем состоянии. Устройство и форма слепка разобраны в отдельном справочнике.
Почему данные всегда одни и те же
Генератор не берет случайность извне. Все его случайные решения выводятся из
зерна — одного числа в настройках — и из
номера дня. То же зерно и тот же номер дня дают ровно те же события, поэтому
стартовый мир одинаков при каждом make up.
Рядом лежит паспорт мира, data/world-inventory.json: зерно, версия генератора
и по строке на каждый день с числом событий и контрольной суммой. По нему
проверяют, что генератор собрал тот же мир, что и раньше, и что в ODS все
доехало без потерь. Паспорт описывает только восемь дней стартового мира.
Кто его запускает
На стенде генератором управляют даги модельного времени. Его можно запустить и напрямую. Команды собраны в справочнике мира.
У генератора два режима. Пакетный отправляет весь день разом. Живой шлет события по ходу модельных суток; сутки идут ускоренно и занимают около двадцати четырех минут.
Посмотрите сами
Подключитесь из DBeaver по инструкции и выполните запрос:
SELECT EventDate, count() AS events
FROM ods.event_v
GROUP BY EventDate
ORDER BY EventDate;
Сравните первые восемь дней с восемью строками в паспорте мира: числа совпадут. Дни, сыгранные после стартового мира, в паспорте не записаны. Так и задумано.
Куда дальше
Подробнее генератор разобран в README папки
generator/ и в справочнике его
устройства. На этом путеводитель
заканчивается: дальше справочники и учебные задания.