refactor(generator): история batch в Kafka вместо ClickHouse

- Зачем:
  - ревью rev5: ClickHouse-интеграция была проблемной (порт 9000 native vs HTTP,
    неработающий fallback, отсутствие DDL для базы meta)
  - архитектурно чище: генератор остаётся pure Kafka producer,
    история доступна для аналитики через стандартный ingestion
- Что:
  - удален ClickHouseBatchHistory, clickhouse-connect зависимость
  - добавлен KafkaBatchHistory с записью в топик generator_batch_history
  - добавлен BatchRecord.to_dict() для JSON-сериализации
  - добавлен рабочий fallback: Kafka → InMemory при недоступности
  - удален pytest-asyncio (не использовался)
  - добавлены тесты test_kafka_history.py (15 тестов) и test_service.py (6 тестов)
  - обновлена документация: топик вместо таблицы ClickHouse
- Проверка:
  - make generator-test: 44/44 тестов пройдено
  - docker-compose валиден, генератор не зависит от clickhouse
This commit is contained in:
2026-06-09 17:27:16 +03:00
committed by Dmitry Dementiev
parent 36ecbc62b1
commit 731d991f94
9 changed files with 483 additions and 145 deletions
-3
View File
@@ -300,8 +300,6 @@ services:
GEN_DATA_DIR: /data
GEN_ENABLED: "true"
GEN_METRICS_PORT: "9109"
CLICKHOUSE_HOST: clickhouse
CLICKHOUSE_PORT: "9000"
# PYTHONUNBUFFERED для сразу видеть логи
PYTHONUNBUFFERED: "1"
ports:
@@ -312,7 +310,6 @@ services:
- cs_dwh
depends_on:
- kafka
- clickhouse
restart: unless-stopped
healthcheck:
test: ["CMD", "python", "-c", "import sys; sys.exit(0)"]