docs(specs): спека уточнена после проверки свежим взглядом
- Зачем:
- три обещания спеки расходились с фактами кода и замеров HITL.
- Что:
- в путь менти возвращён шаг make superset-init; критерий «терминал
только make up» поправлен честно.
- критерий стоимости world_next_day сужен до генерации+manifest:
ETL full_refresh растёт с миром — явно вынесен в «чего не делаем».
- проверка профиля ×1 уточнена: runtime-seam уже на daily-wave,
проверять надо дефолты launch.py и автотесты.
- Проверка:
- сверка с scripts/run_generated_history_runtime_check.sh, Makefile
и замерами HITL (ETL 30 с на 110k событий).
This commit is contained in:
@@ -50,8 +50,9 @@
|
||||
3. Airflow UI: `world_init` — Trigger с пустой формой. Дефолтная операция —
|
||||
`import`, путь к артефакту — дефолтом на эталонный мир. DAG сам заливает
|
||||
Kafka, запускает ETL и сверяет витрины.
|
||||
4. Superset — готовый трёхдневный мир.
|
||||
5. Дальше по выбору лабы: `world_next_day` (кнопка без параметров) или
|
||||
4. `make superset-init` — разовая инициализация дашборда (терминал).
|
||||
5. Superset — готовый трёхдневный мир.
|
||||
6. Дальше по выбору лабы: `world_next_day` (кнопка без параметров) или
|
||||
`make generator-continue` (живой поток).
|
||||
|
||||
### Решения
|
||||
@@ -82,8 +83,9 @@
|
||||
становится ~постоянной (сейчас день 2 — 638 с и растёт), риск OOM
|
||||
снимается. Разбор по коду — hitl-findings, F9.
|
||||
5. **Один учебный профиль**: `daily-wave` (волна, ×60). `ci` (×1, плоско,
|
||||
6h) — служебный для автотестов, менти не предлагается. Перед слиянием
|
||||
проверить, что runtime-seam-тест не завязан на скорость ×1.
|
||||
6h) — служебный для автотестов, менти не предлагается. Runtime-seam-
|
||||
проверка уже идёт на `daily-wave`; перед слиянием проверить остальных
|
||||
потребителей `ci` — дефолты `launch.py` и автотесты, где профиль зашит.
|
||||
|
||||
## Чего здесь не делаем
|
||||
|
||||
@@ -97,6 +99,10 @@
|
||||
(JS-ошибка Grid) — отдельные issues вне фичи.
|
||||
- **Не включаем расписание по умолчанию** и не занимаемся retention сверх
|
||||
инкрементальных счётчиков.
|
||||
- **Не делаем инкрементальный ETL**: `world_next_day` по-прежнему зовёт
|
||||
`full_refresh`, его стоимость растёт с миром (на текущих объёмах —
|
||||
десятки секунд). Известная цена; исторический план —
|
||||
`plans/incremental-etl-v2.md` (legacy).
|
||||
|
||||
## Форма работ
|
||||
|
||||
@@ -118,13 +124,14 @@
|
||||
## Проверка
|
||||
|
||||
- Чистый стенд: путь менти из раздела UX проходится пустыми формами;
|
||||
от `make up` до дашборда — без документации и без терминала (кроме
|
||||
`make up`).
|
||||
терминал — только `make up` и `make superset-init`.
|
||||
- `import` эталонного мира — секунды-минуты, не десятки минут.
|
||||
- После `import` у любого менти совпадают manifest-числа эталонного мира
|
||||
(события, визиты, пользователи, контрольная сумма).
|
||||
- `world_next_day` на дне N по времени ~равен дню 1;
|
||||
`make generated-history-chain-check` зелёный на стыках.
|
||||
- Задача генерации+manifest в `world_next_day` на дне N по времени
|
||||
~равна дню 1 (ETL `full_refresh` растёт с миром — это вне скоупа,
|
||||
см. «Чего не делаем»); `make generated-history-chain-check` зелёный
|
||||
на стыках.
|
||||
- `make test` / `make lint` зелёные; профиль `ci` продолжает обслуживать
|
||||
автотесты.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user