fix(generator): исключено смешение миров при запуске
- Зачем: - старый state и ручной live-генератор могли тихо писать события в новый мир данных. - Что: - добавлена общая проверка чистого стенда для Airflow и host-путей. - защищены backfill, import, continue и clean-start сценарии live-generator. - описан миграционный отказ старого state. - Проверка: - make generator-test; docker compose config --quiet; py_compile; bash -n.
This commit is contained in:
@@ -219,6 +219,9 @@ Kafka-топики данных, state и manifest генератора. `make g
|
||||
PROFILE=daily-wave make generator-backfill
|
||||
```
|
||||
|
||||
Перед записью команда проверяет с хоста, что Kafka data-топики и STG пустые.
|
||||
Если там уже есть данные, она останавливается с подсказкой `make clean`.
|
||||
|
||||
Старый способ через `GEN_RUN_MODE`, `GEN_STATE_RESET` и `GEN_MODEL_T_END`
|
||||
остаётся низкоуровневым путём для отладки прямого `docker compose run`. В обычной
|
||||
проверке используйте `make generated-history-analytics`, чтобы не забыть
|
||||
@@ -237,6 +240,9 @@ docker compose exec -T kafka /opt/kafka/bin/kafka-console-consumer.sh \
|
||||
|
||||
Live-продолжение стартует с этого state. Используйте тот же профиль или ту же
|
||||
длительность, что были у backfill. Команда сама выставит `GEN_STATE_RESET=false`.
|
||||
Если state записан старой версией генератора, запуск теперь падает громко:
|
||||
сначала очистите стенд через `make clean` и пересоздайте историю либо явно
|
||||
начните новый мир через `make generator-reset`.
|
||||
|
||||
```bash
|
||||
PROFILE=daily-wave make generator-continue
|
||||
|
||||
@@ -59,8 +59,9 @@
|
||||
Для `import` — что читать; пусто — `/opt/airflow/data/startup-history-import.json`.
|
||||
|
||||
Backfill и import работают только на чистом стенде. Если Kafka-топики данных или
|
||||
STG уже непустые, DAG упадёт до записи и подскажет `make clean`. Это защита от
|
||||
смешивания разных миров.
|
||||
STG уже непустые, DAG упадёт до записи и подскажет `make clean`. Консольные
|
||||
команды `make generator-backfill` и `make startup-history-import` делают такую же
|
||||
предпроверку с хоста. Это защита от смешивания разных миров.
|
||||
|
||||
Границы пульта:
|
||||
|
||||
@@ -145,6 +146,12 @@ PROFILE=daily-wave make generator-continue
|
||||
полей. Это защита от смешения разных миров. Для намеренного нового мира
|
||||
используйте `make generator-reset` или `make clean`.
|
||||
|
||||
После обновления кода старый state может оказаться в старом формате. При
|
||||
`GEN_STATE_RESET=false` это теперь громкий отказ, а не тихий старт с нуля поверх
|
||||
старой истории. Оператору нужно выбрать одно из двух: очистить стенд через
|
||||
`make clean` и заново создать стартовую историю, либо осознанно начать новый мир
|
||||
через `GEN_STATE_RESET=true` / `make generator-reset`.
|
||||
|
||||
После нестандартного мира `make generator-continue` нужно запускать с теми же
|
||||
настройками, что были у backfill/import. При расхождении генератор громко
|
||||
покажет поля, которые не совпали.
|
||||
|
||||
Reference in New Issue
Block a user