feat: изменён режим загрузки данных по умолчанию — теперь все записи

- По умолчанию bash ./scripts/load_kafka_data.sh
Resetting topics: browser_events location_events device_events geo_events
Loading mode: full (LIMIT=unset)
Bootstrap (inside container): kafka:29092
Publishing: data/browser_events.jsonl -> browser_events (full)
Publishing: data/device_events.jsonl -> device_events (full)
Publishing: data/geo_events.jsonl -> geo_events (full)
Publishing: data/location_events.jsonl -> location_events (full)
Done. загружает все записи из файлов (вместо 50 строк)
- Для ограничения используется bash ./scripts/load_kafka_data.sh
- Удалён устаревший параметр

Изменённые файлы:
- scripts/load_kafka_data.sh — обновлена логика и документация
- plans/runbook.md — обновлены примеры использования
- plans/kafka_ingest_plan.md — обновлён план реализации

Теперь:
- bash ./scripts/load_kafka_data.sh
Resetting topics: browser_events location_events device_events geo_events
Loading mode: full (LIMIT=unset)
Bootstrap (inside container): kafka:29092
Publishing: data/browser_events.jsonl -> browser_events (full)
Publishing: data/device_events.jsonl -> device_events (full)
Publishing: data/geo_events.jsonl -> geo_events (full)
Publishing: data/location_events.jsonl -> location_events (full)
Done. — все записи (4000 сообщений)
- bash ./scripts/load_kafka_data.sh
Resetting topics: browser_events location_events device_events geo_events
Loading mode: slice (LIMIT=50)
Bootstrap (inside container): kafka:29092
Publishing: data/browser_events.jsonl -> browser_events (first 50 lines)
Publishing: data/device_events.jsonl -> device_events (first 50 lines)
Publishing: data/geo_events.jsonl -> geo_events (first 50 lines)
Publishing: data/location_events.jsonl -> location_events (first 50 lines)
Done. — 50 строк каждого типа (200 сообщений)
This commit is contained in:
2026-02-08 17:21:22 +03:00
parent 33f8172892
commit 4819e10cf8
3 changed files with 24 additions and 28 deletions
+8 -9
View File
@@ -72,14 +72,13 @@
Будут поддержаны:
- `RESET_TOPICS=1|0` — пересоздавать ли топики перед загрузкой (по умолчанию `1`).
- `LIMIT=<int>` — сколько строк брать из каждого файла в debug‑режиме (по умолчанию `50`).
- `FULL=1|0` — грузить ли весь файл (по умолчанию `0`). Если `FULL=1`, параметр `LIMIT` игнорируется.
- `LIMIT=<int>` — сколько строк брать из каждого файла. Если не указан — загружаются все записи.
- `BOOTSTRAP_SERVER=<host:port>` — bootstrap изнутри Kafka‑контейнера (по умолчанию `kafka:29092`).
Это обеспечивает:
- быстрый debug: `LIMIT=50 make data`;
- полная заливка осознанно: `FULL=1 make data`.
- полная загрузка по умолчанию: `make data` (все записи);
- быстрый debug: `LIMIT=50 make data`.
---
@@ -94,14 +93,14 @@
1) В начале скрипта зафиксирую defaults:
- `KAFKA_SERVICE=kafka`
- `BOOTSTRAP_SERVER=kafka:29092`
- `RESET_TOPICS=1`, `LIMIT=50`, `FULL=0`
- `RESET_TOPICS=1`, `LIMIT=` (пустое — все записи)
2) Добавлю проверку наличия исходных файлов `data/*_events.jsonl` и понятные ошибки.
3) Реализую обнаружение Kafka CLI внутри контейнера (через `command -v`), чтобы не завязываться на конкретный путь.
4) Реализую “reset” топиков:
- удалить (`--delete --if-exists`) 4 фиксированных топика;
- создать (`--create --if-not-exists`) эти же топики с `partitions=1`, `replication-factor=1`.
5) Реализую загрузку:
- если `FULL=1``cat file | producer`;
- если `LIMIT` не задан`cat file | producer` (весь файл);
- иначе → `head -n LIMIT file | producer`;
- один топик на файл по маппингу.
6) Добавлю минимальные, но полезные сообщения в stdout (что грузим, сколько строк, в какой топик) без лишнего шума.
@@ -149,9 +148,9 @@
- В Kafka UI (`localhost:8082`) видны 4 топика и в них появились сообщения.
- `make data`:
- работает без ClickHouse/DDL;
- по умолчанию грузит небольшой срез (не весь файл);
- в режиме `FULL=1` грузит весь файл;
- в режиме `RESET_TOPICS=1` даёт воспроизводимый чистый прогон.
- по умолчанию грузит все записи (весь файл);
- в режиме `LIMIT=50` грузит первые 50 строк (быстрый тест);
- в режиме `RESET_TOPICS=1` даёт воспроизводимый "чистый" прогон.
---
+9 -6
View File
@@ -56,19 +56,22 @@ make ddl
Параметры (env):
- `LIMIT` — сколько строк брать из каждого `.jsonl` (по умолчанию `50`). `LIMIT=0` трактуется как “весь файл.
- `FULL` — если `FULL=1`, грузит весь файл независимо от `LIMIT`.
- `LIMIT` — сколько строк брать из каждого `.jsonl`. По умолчанию загружаются все записи (весь файл).
Для ограничения используйте `LIMIT=50` или `LIMIT=100`.
- `RESET_TOPICS` — если `RESET_TOPICS=1` (по умолчанию), топики удаляются и создаются заново с теми же именами.
- `BOOTSTRAP_SERVER` — bootstrap для Kafka *изнутри kafka‑контейнера* (по умолчанию `kafka:29092`).
Примеры:
```bash
# 100 строк на поток
LIMIT=100 make data
# Загрузить все данные (по умолчанию)
make data
# Полная заливка всех строк
FULL=1 make data
# Быстрый тест — 50 строк на поток
LIMIT=50 make data
# Ограниченная загрузка — 100 строк на поток
LIMIT=100 make data
# Дозалить данные без пересоздания топиков
RESET_TOPICS=0 make data