feat(generator): эталонный мир в git и import по умолчанию
- Зачем:
- менти собирал мир генерацией (минуты и десятки минут CPU); теперь
готовый трёхдневный мир загружается импортом за ~2 минуты, и числа
у всех менти совпадают число-в-число (issue #3).
- Что:
- артефакт data/startup_history/reference-world.json.xz в git:
3 модельных дня daily-wave, ~850 МБ JSON → 32 МБ xz;
- чтение и запись артефакта понимают .xz потоково (lzma); пустое поле
artifact_path в пульте и make startup-history-import читают эталон;
- длительность профиля daily-wave стала 3d — в тон эталонному миру;
- предпроверка чистого стенда ставит зависимости генератора через uv;
экспорт и импорт разведены отдельными переменными Makefile;
- доки и runbook обновлены; новые контрактные тесты: xz round-trip
и дефолтные пути артефакта.
- Проверка:
- make test (210 + 31) и make lint зелёные; импорт на чистом стенде
за 2м03с, manifest совпал (280437 событий), Superset-проверка
зелёная; независимое ревью — APPROVED.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -26,7 +26,8 @@ fi
|
||||
if [[ "${CHECK_MODE}" == "clean" ]]; then
|
||||
echo "Предпроверка: live-генератор не должен быть запущен."
|
||||
PYTHONPATH="${REPO_ROOT}/generator/src" \
|
||||
uv run python -m clickstream_generator.stand_clean \
|
||||
uv run --with-requirements generator/requirements.txt \
|
||||
python -m clickstream_generator.stand_clean \
|
||||
--mode live \
|
||||
--live-metrics-url "${GENERATOR_METRICS_URL_HOST}"
|
||||
fi
|
||||
@@ -54,7 +55,8 @@ fi
|
||||
KAFKA_BOOTSTRAP_SERVERS="${KAFKA_BOOTSTRAP_SERVERS_HOST}" \
|
||||
GEN_DATA_DIR="${REPO_ROOT}/data" \
|
||||
PYTHONPATH="${REPO_ROOT}/generator/src" \
|
||||
uv run python -m clickstream_generator.stand_clean \
|
||||
uv run --with-requirements generator/requirements.txt \
|
||||
python -m clickstream_generator.stand_clean \
|
||||
--mode "${CHECK_MODE}" \
|
||||
--kafka-bootstrap-servers "${KAFKA_BOOTSTRAP_SERVERS_HOST}" \
|
||||
--stg-counts "${stg_counts}"
|
||||
|
||||
@@ -27,7 +27,7 @@ clickhouse_datetime_literal() {
|
||||
|
||||
[[ -s "${ARTIFACT}" ]] || fail "артефакт не найден или пуст: ${ARTIFACT}"
|
||||
|
||||
ARTIFACT_DIR="$(dirname "${ARTIFACT}")"
|
||||
ARTIFACT_DIR="$(cd "$(dirname "${ARTIFACT}")" && pwd)"
|
||||
ARTIFACT_FILE="$(basename "${ARTIFACT}")"
|
||||
|
||||
manifest_summary="$(${COMPOSE_BIN} run --rm --no-deps \
|
||||
|
||||
@@ -8,7 +8,7 @@ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
REPO_ROOT="$(cd "${SCRIPT_DIR}/.." && pwd)"
|
||||
|
||||
COMPOSE_BIN="${COMPOSE_BIN:-docker compose}"
|
||||
ARTIFACT="${ARTIFACT:-/tmp/clickstream-startup-history.json}"
|
||||
ARTIFACT="${ARTIFACT:-data/startup_history/reference-world.json.xz}"
|
||||
PROFILE="${PROFILE:-${GEN_LAUNCH_PROFILE:-daily-wave}}"
|
||||
duration_args=()
|
||||
if [[ -n "${GEN_HISTORY_DURATION:-}" ]]; then
|
||||
@@ -31,7 +31,7 @@ if [[ ! -s "${ARTIFACT}" ]]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
ARTIFACT_DIR="$(dirname "${ARTIFACT}")"
|
||||
ARTIFACT_DIR="$(cd "$(dirname "${ARTIFACT}")" && pwd)"
|
||||
ARTIFACT_FILE="$(basename "${ARTIFACT}")"
|
||||
|
||||
echo "=== Импорт стартовой истории ==="
|
||||
|
||||
Reference in New Issue
Block a user