Files
clickstream-data-platform/docs/handbook/generator.md
T
ddadminandClaude Fable 5.1 ac21399fe4 docs(handbook): написаны четыре главы путеводителя
Зачем: после главы о хранилище путеводитель обещал еще четыре главы, а
вместо них стояли заглушки «Пока главы нет…». Без них читатель не видит,
кто двигает мир и раскладывает данные по слоям, куда смотреть в Grafana,
как витрина становится графиком и откуда берутся данные.

Что: docs/handbook/airflow-dags.md, monitoring.md, superset.md,
generator.md — по скелетам тикета #220, форма — как у главы о хранилище.
Сквозная линия трех глав: ход мира на день D везет слепок заказов дня D−1,
поэтому выручка всегда на день позади кликстрима. README путеводителя
ведет заголовками в файлы глав, заглушки убраны; «Куда дальше» главы о
хранилище ведет прямо в главу об Airflow.

Проверка: три SELECT из глав прогнаны на живом стенде от analyst — трафик
получил сыгранный день, выручка только предыдущий, счетчики первых восьми
дней совпали с паспортом мира. Скрипт проверки ссылок и запретных слов из
тикета пуст. Постановка отревьюена Opus (18 находок внесены); главы прошли
саморевью Sol и два слепых ревью Opus — факты и проза (ai-text-lint плюс
оптика литературного русского): 25 находок внесены, 1 отклонена.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-02 17:14:43 -04:00

3.3 KiB

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

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

Что он производит

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

Заказ — вторая проекция той же покупки, с деньгами магазина. Заказ ездит в слепках, пока может измениться, — семь модельных дней. Устройство и форму слепка разбирает отдельный справочник.

Почему данные всегда одни и те же

Модельный день зависит от зерна — числа, из которого генератор разворачивает всю свою случайность, — и от номера дня. Одна и та же пара дает те же события, поэтому стартовый мир одинаков при каждом make up.

Паспорт data/world-inventory.json отвечает на один вопрос: тот ли это мир. Он охватывает только восемь дней стартового мира.

Кто его запускает

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

У генератора два режима. Пакетный отправляет день пачкой. Живой проигрывает модельные сутки в ускоренном темпе.

Посмотрите сами

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

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

Сравните первые восемь дней с восемью строками в паспорте мира: числа совпадут. Дни, сыгранные после стартового мира, в паспорте не записаны. Это ожидаемо.

Куда дальше

Глубже генератор разобран в generator/ и в справочнике его устройства. Тропа путеводителя закончена: дальше идут справочники и учебные задания.