- Зачем:
- спека разрослась до 1058 строк, а журнал решений в разделе 9 читался
только целиком; агентам и людям нужен дешевый адресный заход к
основаниям решений генератора.
- Что:
- заведены ADR 0015 (пояс счетчика), 0016 (паспорт куки) и 0017 (номер
заказа); четыре адресные ссылки на «раздел 9» перешиты на них.
- раздел 9 пересобран в 11 тематических подразделов с датами и тикетами
у каждого решения и закрыт пометкой о заморозке; устаревшие
промежуточные замеры свернуты до указателей на актуальные.
- строка статуса в шапке отмечает закрытие спеки как документа этапа 2.
- Проверка:
- wc -l docs/specs/2026-08-01-generator.md (951, было 1058);
rg -n 'раздел[а-яё]* 9|разделы 8 и 9' docs -g '*.md' — 18 попаданий,
все классифицированы; разделы 1-8 нетронуты (сверка хешем).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2.7 KiB
Время модельного дня
Этот документ отвечает на вопрос, почему дата модельных суток не обязана совпадать с UTC-датой события.
В коде встречаются три координаты времени:
- D — номер дня на оси модельного времени;
EventDate— дата D в поясе счетчика;UTCEventTime— абсолютная метка события.
Местное время гостя задает форму активности внутри суток, а границу дня задает пояс счетчика.
world.ORIGIN — D0
календарной оси: он переводит номер D в конкретную дату. Это не механизм
часового пояса. Механизм —
world.COUNTER_TIMEZONE_MINUTES,
смещение пояса счетчика от UTC.
В day._columns
EventDate получается как ORIGIN + D. Чтобы получить абсолютную полночь
тех же суток, код вычитает смещение счетчика, а затем прибавляет секунды
события внутри дня. Поэтому сутки 2026-06-01 в UTC+4 начинаются в
2026-05-31 20:00:00Z: у первых четырех часов
toDate(UTCEventTime) != EventDate.
day._starts сначала
выбирает час из городской строки весов, собранной
day._hour_cumulative,
а затем равномерно выбирает секунду внутри часа. Строка поворачивает суточную
волну на разницу между поясом гостя и поясом счетчика. Так вечерний пик гостя
попадает в нужные часы внутри дня, но граница суток и EventDate остаются
счетчиковыми.
Как часовой пояс меняет представление времени в ClickHouse, описано в разделе «Часовые пояса» документа о хранилище. Типы и публичный смысл полей записаны в описании события. Выбор модели времени объясняет ADR 0015.